Mon Nov 19 09:17:00 GMT 2012

    I've pulled the source codes of glibc, 

# Syscall Signature Key Letters for BP Thunks:
# a: unchecked address (e.g., 1st arg to mmap)
# b: non-NULL buffer (e.g., 2nd arg to read; return value from mmap)
# B: optionally-NULL buffer (e.g., 4th arg to getsockopt)
# f: buffer of 2 ints (e.g., 4th arg to socketpair)
# F: 3rd arg to fcntl
# i: scalar (any signedness & size: int, long, long long, enum, whatever)
# I: 3rd arg to ioctl
# n: scalar buffer length (e.g., 3rd arg to read)
# N: pointer to value/return scalar buffer length (e.g., 6th arg to recvfrom)
# p: non-NULL pointer to typed object (e.g., any non-void* arg)
# P: optionally-NULL pointer to typed object (e.g., 2nd argument to gettimeofday)
# s: non-NULL string (e.g., 1st arg to open)
# S: optionally-NULL string (e.g., 1st arg to acct)
# v: vararg scalar (e.g., optional 3rd arg to open)
# V: byte-per-page vector (3rd arg to mincore)
# W: wait status, optionally-NULL pointer to int (e.g., 2nd arg of wait4)

and form sysdeps/unix/sysv/linux/syscalls.list
# File name     Caller  Syscall name    Args    Strong name     Weak names
creat           -       creat           Ci:si   __libc_creat creat
clock_adjtime   EXTRA   clock_adjtime   i:ip    clock_adjtime

What's "C" means. Is i:ip means "return type: arg1 type, arg2 type"?
And what's the Caller means?

More information about the Libc-help mailing list