From: Garrett C. <yan...@gm...> - 2009-11-26 11:19:14
|
On Thu, Nov 19, 2009 at 3:11 PM, Henry Yei <hy...@mv...> wrote: >> > I checked the value of (1024 / (8 * sizeof (unsigned long int))) and >> it is 32 >> > on both our mips, mips64, and x86 targets. Calling ppoll fails with >> invalid >> > argument error in all of these cases. I don't see a >> > user/include/sigset/bits.h header in our userland, but _SIGSET_NWORDS >> macro >> > also returns 32 when printed out. >> >> My mistake, the last size argument is sizeof(sigset_t) but not the >> userspace >> one but the kernel sigset_t (that is defined as bitfield big enough for >> all >> signals). Glibc pases _NSIG/8 here which seems to be correct (as _NSIG >> is >> defined as 128 on mips). >> >> -- >> Cyril Hrubis >> ch...@su... > > Cyril, > > Thanks, changing hardcoded/defined values to _NSIG/8 does the trick for the following tests: ppoll01, rt_sigprocmask01, rt_sigprocmask02, rt_sigsuspend01, signalfd4_01, signalfd4_02. I'll go ahead and fix all these. Thanks, -Garrett |