1

I traced some programs in Fedora 16 (32bit) with STrace and I'm writing some python scripts to parse the traces. I got all the system calls and their relevant number in fedora from arch/x86/include/asm/unistd_32.h

However in the end I found some systemcalls that does not exist in this table, and I'm wondering
1. how is it possible?
2. How should I assign a number to these systemcalls?

Here is a some of these systemcalls:

set_th3_area (set_thread_area) socket (socketcall)
sendmsg (sendmmsg)
connect
bind (mbind)
getsocketname
sendto recvmsg (recvmmsg)

Some of them have a similar system call in the table that I put in parentheses in the above list.

Update: I found that most of these exist in net/socket.c

int sys_socketcall(int call, unsigned long *args)

int sys_socket(int family, int type, int protocol) int sys_socketpair(int family, int type, int protocol, int usockvec[2])
...

but I still have problems with assigning a number to these...
In the end I need a sequence of system call numbers

Shayan
  • 548
  • 6
  • 24

1 Answers1

1

I finally got the hold of the complete list of system calls from STrace source code!

http://sourceforge.net/p/strace/code/ci/master/tree/linux/i386/syscallent.h

This solved my issue. and one funny problem was that set_thread_area was first translated by the "read" in "thread" that was why I had set_th3_area.

Shayan
  • 548
  • 6
  • 24