On Tue, 2006-08-15 at 13:31 +0100, Chris Elsworth wrote: > root@media:~# grep -r syscall0 /usr/include/* > root@media:~# grep -r gettid /usr/include/* > /usr/include/asm-i386/unistd.h:#define __NR_gettid 224 > /usr/include/asm-x86_64/unistd.h:#define __NR_gettid 186 > /usr/include/asm-x86_64/unistd.h:__SYSCALL(__NR_gettid, sys_gettid) > /usr/include/bits/syscall.h:#define SYS_gettid __NR_gettid > /usr/include/directfb/direct/system.h:pid_t direct_gettid(); > root@media:~# > > What do you get for those commands? I get: grep -r syscall0 /usr/include/* /usr/include/asm-i386/unistd.h:#define _syscall0(type,name) \ /usr/include/asm-x86_64/unistd.h:#define _syscall0(type,name) \ grep: warning: /usr/include/lua50/lua: recursive directory loop grep -r gettid /usr/include/* /usr/include/asm-i386/unistd.h:#define __NR_gettid 224 /usr/include/asm-x86_64/ia32_unistd.h:#define __NR_ia32_gettid 224 /usr/include/asm-x86_64/unistd.h:#define __NR_gettid 186 /usr/include/asm-x86_64/unistd.h:__SYSCALL(__NR_gettid, sys_gettid) /usr/include/bits/syscall.h:#define SYS_gettid __NR_gettid /usr/include/fpvm3_watcom.h:*$pragma aux pvmfgettid "!_" grep: warning: /usr/include/lua50/lua: recursive directory loop /usr/include/pvm3.h:int pvm_gettid __ProtoGlarp__(( char *, int )); /usr/include/valgrind/pub_tool_libcproc.h:extern Int VG_(gettid) ( void ); The gettid function is not defined in any header, if it interpret the source correctly. The _syscall0-macro expands to a function definition pid_t gettid(void).