[uClibc] semctl's last argument
Atsushi Nemoto
anemo at mba.ocn.ne.jp
Tue Sep 28 12:27:36 UTC 2004
>>>>> On Tue, 28 Sep 2004 13:29:59 +0200, "Joakim Tjernlund" <joakim.tjernlund at lumentis.se> said:
joakim> hmm, I can't find where __NR_semctl is defined. Is it defined at all?
__NR_semctl is defined in kernel header on some archs.
include/asm-alpha/unistd.h:#define __NR_semctl 204
include/asm-ia64/unistd.h:#define __NR_semctl 1108
include/asm-mips/unistd.h:#define __NR_semctl (__NR_Linux + 64)
include/asm-mips/unistd.h:#define __NR_semctl (__NR_Linux + 64)
include/asm-parisc/unistd.h:#define __NR_semctl (__NR_Linux + 187)
include/asm-sh64/unistd.h:#define __NR_semctl 239
include/asm-x86_64/unistd.h:#define __NR_semctl 66
joakim> Can't you write:
joakim> static inline _syscall4(int, __semctl, int, semid, int, semnum, int, cmd, union semun, arg);
joakim> return __semctl(semid, semnum, cmd, arg);
joakim> instead?
The _syscallN macro casts its argument to long (or something integer).
Gcc will complain if you cast an union variable to long directly.
---
Atsushi Nemoto
More information about the uClibc
mailing list