summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/unix/common/syscalls.list4
-rw-r--r--sysdeps/unix/inet/syscalls.list8
-rw-r--r--sysdeps/unix/make-syscalls.sh133
-rw-r--r--sysdeps/unix/mman/syscalls.list2
-rw-r--r--sysdeps/unix/syscalls.list12
-rw-r--r--sysdeps/unix/sysv/linux/ia64/syscalls.list6
-rw-r--r--sysdeps/unix/sysv/linux/mips/syscalls.list6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/syscalls.list4
-rw-r--r--sysdeps/unix/sysv/linux/syscalls.list10
-rw-r--r--sysdeps/unix/sysv/syscalls.list2
10 files changed, 101 insertions, 86 deletions
diff --git a/sysdeps/unix/common/syscalls.list b/sysdeps/unix/common/syscalls.list
index 899d3b9103..2b06b73a33 100644
--- a/sysdeps/unix/common/syscalls.list
+++ b/sysdeps/unix/common/syscalls.list
@@ -6,8 +6,8 @@ fchown		-	fchown		i:iii	__fchown	fchown
 ftruncate	-	ftruncate	i:ii	__ftruncate	ftruncate
 getpgid		-	getpgrp		i:i	__getpgid	getpgid
 getrusage	-	getrusage	i:ip	__getrusage	getrusage
-gettimeofday	-	gettimeofday	i:pp	__gettimeofday	gettimeofday
-settimeofday	-	settimeofday	i:pp	__settimeofday	settimeofday
+gettimeofday	-	gettimeofday	i:PP	__gettimeofday	gettimeofday
+settimeofday	-	settimeofday	i:PP	__settimeofday	settimeofday
 setpgid		-	setpgrp		i:ii	__setpgid	setpgid
 setregid	-	setregid	i:ii	__setregid	setregid
 setreuid	-	setreuid	i:ii	__setreuid	setreuid
diff --git a/sysdeps/unix/inet/syscalls.list b/sysdeps/unix/inet/syscalls.list
index 1a68a81f6c..5a02f95f87 100644
--- a/sysdeps/unix/inet/syscalls.list
+++ b/sysdeps/unix/inet/syscalls.list
@@ -1,6 +1,6 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
-accept		-	accept		i:ibN	__libc_accept	accept
+accept		-	accept		i:iBN	__libc_accept	accept
 bind		-	bind		i:ipi	bind
 connect		-	connect		i:ipi	__libc_connect	__connect connect
 gethostid	-	gethostid	i:	gethostid
@@ -10,7 +10,7 @@ getsockname	-	getsockname	i:ibN	getsockname
 getsockopt	-	getsockopt	i:iiiBN	getsockopt
 listen		-	listen		i:ii	listen
 recv		-	recv		i:ibni	__libc_recv	recv
-recvfrom	-	recvfrom	i:ibnibN	__libc_recvfrom	recvfrom
+recvfrom	-	recvfrom	i:ibniBN	__libc_recvfrom	recvfrom
 recvmsg		-	recvmsg		i:ipi	__libc_recvmsg	recvmsg
 send		-	send		i:ibni	__libc_send	__send send
 sendmsg		-	sendmsg		i:ipi	__libc_sendmsg	sendmsg
@@ -21,3 +21,7 @@ setsockopt	-	setsockopt	i:iiibn	setsockopt
 shutdown	-	shutdown	i:ii	shutdown
 socket		-	socket		i:iii	socket
 socketpair	-	socketpair	i:iiif	socketpair
+
+
+
+
diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh
index 503ad78787..628522b2c6 100644
--- a/sysdeps/unix/make-syscalls.sh
+++ b/sysdeps/unix/make-syscalls.sh
@@ -8,23 +8,24 @@
 # 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)
+# 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: pointer to typed object (e.g., any non-void* arg)
-# P: pointer return value (e.g., return value from mmap)
-# s: string (e.g., 1st arg to open)
+# 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: vararg pointer (e.g., 3rd arg to fcntl & ioctl)
+# W: wait status, optionally-NULL pointer to int (e.g., 2nd arg of wait4)
 
-ptrlet='[abBfNpPs]'
-argdig='[1-9]'
-fixarg='[^vV]'$argdig	# fixed args (declare extern)
-ptrarg=$ptrlet$argdig	# pointer arg (toss bounds)
-intarg='[inv]'$argdig	# scalar arg
+ptr='[abBfFINpPsSW]'	# all pointer keyletters
+int='[inv]'		# all scalar keyletters
+typ='[ifnNpP]'		# typed-arg keyletters: we capture type for use in thunk
 
 ##############################################################################
 
@@ -185,7 +186,7 @@ shared-only-routines += $file
 
   case x"$callnum",$srcfile,$args in
   x-,-,* | x*,*.[sS],*V*) ;;
-  x*,-,*$ptrlet* | x*,*.[sS],*$ptrlet*)
+  x*,-,*$ptr* | x*,*.[sS],*$ptr*)
 
     nv_weak=`for name in $weak; do
 		case $name in
@@ -200,16 +201,16 @@ shared-only-routines += $file
     # convert signature string to individual numbered arg names
     # e.g., i:ipbN -> i0 i1 p2 b3 N4
     set `echo $args |
-	sed -e 's/^\(.\):\(.*\)/\2 \10/' \
-	    -e 's/^\([^ ]\)\(.*\)/\2 \11/' \
-	    -e 's/^\([^ ]\)\(.*\)/\2 \12/' \
-	    -e 's/^\([^ ]\)\(.*\)/\2 \13/' \
-	    -e 's/^\([^ ]\)\(.*\)/\2 \14/' \
-	    -e 's/^\([^ ]\)\(.*\)/\2 \15/' \
-	    -e 's/^\([^ ]\)\(.*\)/\2 \16/' \
-	    -e 's/^\([^ ]\)\(.*\)/\2 \17/' \
-	    -e 's/^\([^ ]\)\(.*\)/\2 \18/' \
-	    -e 's/^\([^ ]\)\(.*\)/\2 \19/'`
+	sed -e 's/^\(.\):\(.*\)/\2 <\10>/' \
+	    -e 's/^\([^ ]\)\(.*\)/\2 <\11>/' \
+	    -e 's/^\([^ ]\)\(.*\)/\2 <\12>/' \
+	    -e 's/^\([^ ]\)\(.*\)/\2 <\13>/' \
+	    -e 's/^\([^ ]\)\(.*\)/\2 <\14>/' \
+	    -e 's/^\([^ ]\)\(.*\)/\2 <\15>/' \
+	    -e 's/^\([^ ]\)\(.*\)/\2 <\16>/' \
+	    -e 's/^\([^ ]\)\(.*\)/\2 <\17>/' \
+	    -e 's/^\([^ ]\)\(.*\)/\2 <\18>/' \
+	    -e 's/^\([^ ]\)\(.*\)/\2 <\19>/'`
     rtn=$1; shift
     args=$*
     arglist=`echo $* |sed 's/ /, /g'`
@@ -222,43 +223,53 @@ shared-only-routines += $file
     echo "bp-thunks += $file"
     echo "\$(objpfx)\$(bppfx)$file.ob: \$(common-objpfx)s-proto.d"
 
-    # generate macro head & thunk prologue
-    echo "\
-	(echo '#define $callname($arglist) r0, $rtn; \\'; \\
-	 echo '`echo $args | \
-		    sed -e 's/\('$fixarg'\)/extern \1, \1v;/g' \
-			-e 's/\(v'$argdig'\)/extern int \1v;/g'` \\'; \\
-	 echo '__typeof (r0) BP_SYM ($strong) (`echo $args | \
-		    sed -e 's/ /, /g' \
-			-e 's/\('$ptrarg'\)/__typeof (\1v) *__bounded \1a/g' \
-			-e 's/\('$intarg'\)/__typeof (\1v) \1a/g'`) { \\'; \\
-	 echo '  extern __typeof (r0) ($callname) (`echo $args | \
-		    sed -e 's/ /, /g' \
-			-e 's/\('$ptrarg'\)/__typeof (\1v) *__unbounded/g' \
-			-e 's/\('$intarg'\)/__typeof (\1v)/g'`); \\'; \\"
-
-    # stash length arg for use with mman calls that return pointers
-    len=`echo $args |sed -e 's/.*\('n$argdig'\).*/\1/'`
-
-    # generate thunk epilogue
-    funcall="($callname) (`echo $args | \
-	    sed -e 's/ /, /g' \
-		-e 's/\('a$argdig'\)/__ptrvalue (\1a)/g' \
-		-e 's/\('s$argdig'\)/CHECK_STRING (\1a)/g' \
-		-e 's/\('p$argdig'\)/CHECK_1 (\1a)/g' \
-		-e 's/\('f$argdig'\)/CHECK_N (\1a, 2)/g' \
-		-e 's/\('b$argdig'\), \('n$argdig'\)/CHECK_N (\1a, \2), \2/g' \
-		-e 's/\('b$argdig'\), \('N$argdig'\)/CHECK_N (\1a, *CHECK_1 (\2a)), __ptrvalue (\2a)/g' \
-		-e 's/\('B$argdig'\), \('n$argdig'\)/CHECK_Nopt (\1a, \2), \2/g' \
-		-e 's/\('B$argdig'\), \('N$argdig'\)/CHECK_Nopt (\1a, *CHECK_1 (\2a)), __ptrvalue (\2a)/g' \
-		-e 's/\('[ivn]$argdig'\)/\1a/g'`)"
-
-    case $rtn in
-    P*) echo "	 echo '{ __typeof ($rtn) *__bounded rtn; \\'; \\
-	 echo '  __ptrlow (rtn) = __ptrvalue (rtn) = $funcall; \\'; \\
-	 echo '  __ptrhigh (rtn) = __ptrlow (rtn) + ${len}a; return rtn; } \\'; \\" ;;
-    *) echo "	 echo '  return $funcall; \\'; \\" ;;
-    esac
+    # generate macro head
+    echo "	(echo '#define $callname(`echo $arglist | \
+	    sed -e 's/[<>]//g'`) `echo $rtn | \
+	    sed -e 's/<\('$typ'0\)>/\1v;/g' \
+		-e 's/<\(b0\)>/x0; extern char \1v;/g'` \\'; \\"
+
+    # generate extern decls of dummy variables for each arg
+    echo "	 echo '`echo $args | \
+	    sed -e 's/<\('$typ'[1-9]\)>/extern \1, \1v;/g' \
+		-e 's/<\([abBFIsS][1-9]\)>/extern char \1v;/g' \
+		-e 's/<\([Wv][1-9]\)>/extern int \1v;/g'` \\'; \\"
+
+    # generate bounded-pointer thunk declarator
+    echo "	 echo '`echo $rtn | \
+	    sed -e 's/<\('$ptr'0\)>/__typeof (\1v) *__bounded/g' \
+		-e 's/<\('$int'0\)>/__typeof (\1v)/g'` BP_SYM ($strong) (`echo $arglist | \
+	    sed -e 's/<\('$ptr'[1-9]\)>/__typeof (\1v) *__bounded \1a/g' \
+		-e 's/<\('$int'[1-9]\)>/__typeof (\1v) \1a/g'`) { \\'; \\"
+
+    # generate extern primitive syscall declaration
+    echo "	 echo '  extern `echo $rtn | \
+	    sed -e 's/<\('$ptr'0\)>/__typeof (\1v) *__unbounded/g' \
+		-e 's/<\('$int'0\)>/__typeof (\1v)/g'` ($callname) (`echo $arglist | \
+	    sed -e 's/<\('$ptr'[1-9]\)>/__typeof (\1v) *__unbounded/g' \
+		-e 's/<\('$int'[1-9]\)>/__typeof (\1v)/g'`); \\'; \\"
+
+    # generate call the primtive system call, optionally wrapping bounds
+    # around the result if the signature's return keyletter is `b'.
+    echo "	 echo '  return `echo $rtn |
+	    sed -e 's/<b0>/BOUNDED_N (/' \
+		-e 's/<.0>//'`($callname) (`echo $arglist | \
+	    sed -e 's/<\(a[1-9]\)>/__ptrvalue (\1a)/g' \
+		-e 's/<\(b[1-9]\)>, <\(n[1-9]\)>/CHECK_N (\1a, \2a), \2a/g' \
+		-e 's/<\(b[1-9]\)>, <\(N[1-9]\)>/CHECK_N (\1a, *CHECK_1 (\2a)), __ptrvalue (\2a)/g' \
+		-e 's/<\(B[1-9]\)>, <\(n[1-9]\)>/CHECK_Nopt (\1a, \2a), \2a/g' \
+		-e 's/<\(B[1-9]\)>, <\(N[1-9]\)>/CHECK_Nopt (\1a, *CHECK_1 (\2a)), __ptrvalue (\2a)/g' \
+		-e 's/<\(f[1-9]\)>/CHECK_N (\1a, 2)/g' \
+		-e 's/<\(i[1-9]\)>, <\(F[1-9]\)>/\1a, CHECK_FCNTL (\2a, \1a)/g' \
+		-e 's/<\(i[1-9]\)>, <\(I[1-9]\)>/\1a, CHECK_IOCTL (\2a, \1a)/g' \
+		-e 's/<\(p[1-9]\)>/CHECK_1 (\1a)/g' \
+		-e 's/<\([PW][1-9]\)>/CHECK_1opt (\1a)/g' \
+		-e 's/<\(s[1-9]\)>/CHECK_STRING (\1a)/g' \
+		-e 's/<\(S[1-9]\)>/CHECK_STRINGopt (\1a)/g' \
+		-e 's/<\([ivn][1-9]\)>/\1a/g'`)`echo $rtn $args |
+	    sed -e 's/<b0>.*<\(n[1-9]\)>.*/, \1a)/' \
+		-e 's/<.0>.*//'`; \\'; \\"
+
     echo "	 echo '} \\'; \\"
 
     # generate thunk aliases
@@ -272,9 +283,9 @@ shared-only-routines += $file
 	 echo '#include <bp-thunks.h>'; \\
 	) | \$(COMPILE.c) -x c -o \$@ -"
 ### Use this for debugging intermediate output:
-### echo '	) >$(@:.ob=.c)
-###	$(subst -c,-E,$(COMPILE.c)) -o $(@:.ob=.ib) $(@:.ob=.c)
-###	$(COMPILE.c) -x cpp-output -o $@ $(@:.ob=.ib)'
+### 	) >\$(@:.ob=.c)
+### 	\$(subst -c,-E,\$(COMPILE.c)) -o \$(@:.ob=.ib) \$(@:.ob=.c)
+### 	\$(COMPILE.c) -x cpp-output -o \$@ \$(@:.ob=.ib)"
     echo endif
     ;;
   esac
diff --git a/sysdeps/unix/mman/syscalls.list b/sysdeps/unix/mman/syscalls.list
index d610fe5eee..772caff370 100644
--- a/sysdeps/unix/mman/syscalls.list
+++ b/sysdeps/unix/mman/syscalls.list
@@ -5,7 +5,7 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
 madvise		-	madvise		i:pii	madvise
-mmap		-	mmap		P:aniiii __mmap		mmap
+mmap		-	mmap		b:aniiii __mmap		mmap
 mprotect	-	mprotect	i:aii	__mprotect	mprotect
 msync		-	msync		i:aii	__libc_msync	msync
 munmap		-	munmap		i:ai	__munmap	munmap
diff --git a/sysdeps/unix/syscalls.list b/sysdeps/unix/syscalls.list
index ee99b3b573..b8f7bf5428 100644
--- a/sysdeps/unix/syscalls.list
+++ b/sysdeps/unix/syscalls.list
@@ -1,7 +1,7 @@
 # File name	Caller	Syscall name	Args	Strong name	Weak names
 
 access		-	access		i:si	__access	access
-acct		-	acct		i:s	acct
+acct		-	acct		i:S	acct
 chdir		-	chdir		i:s	__chdir		chdir
 chmod		-	chmod		i:si	__chmod		chmod
 chown		-	chown		i:sii	__chown		chown
@@ -10,7 +10,7 @@ close		-	close		i:i	__libc_close	__close close
 dup		-	dup		i:i	__dup		dup
 dup2		-	dup2		i:ii	__dup2		dup2
 fchdir		-	fchdir		i:i	__fchdir	fchdir
-fcntl		-	fcntl		i:iiV	__libc_fcntl	__fcntl fcntl
+fcntl		-	fcntl		i:iiF	__libc_fcntl	__fcntl fcntl
 fstatfs		-	fstatfs		i:ip	__fstatfs	fstatfs
 fsync		-	fsync		i:i	__libc_fsync	fsync
 getdomain	-	getdomainname	i:si	getdomainname
@@ -21,7 +21,7 @@ getpid		-	getpid		i:	__getpid	getpid
 getpriority	-	getpriority	i:ii	getpriority
 getrlimit	-	getrlimit	i:ip	__getrlimit	getrlimit
 getuid		-	getuid		i:	__getuid	getuid
-ioctl		-	ioctl		i:iiV	__ioctl		ioctl
+ioctl		-	ioctl		i:iiI	__ioctl		ioctl
 kill		-	kill		i:ii	__kill		kill
 link		-	link		i:ss	__link		link
 lseek		-	lseek		i:iii	__libc_lseek	__lseek lseek
@@ -35,7 +35,7 @@ readv		-	readv		i:ipi	__readv		readv
 reboot		-	reboot		i:i	reboot
 rename		-	rename		i:ss	rename
 rmdir		-	rmdir		i:s	__rmdir		rmdir
-select		-	select		i:ipppp	__select	select
+select		-	select		i:iPPPP	__select	select
 setdomain	-	setdomainname	i:si	setdomainname
 setegid		-	setegid		i:i	__setegid	setegid
 seteuid		-	seteuid		i:i	__seteuid	seteuid
@@ -45,10 +45,10 @@ setitimer	-	setitimer	i:ipp	__setitimer	setitimer
 setpriority	-	setpriority	i:iii	setpriority
 setrlimit	-	setrlimit	i:ip	setrlimit
 setsid		-	setsid		i:	__setsid	setsid
-settimeofday	-	settimeofday	i:pp	__settimeofday	settimeofday
+settimeofday	-	settimeofday	i:PP	__settimeofday	settimeofday
 setuid		-	setuid		i:i	__setuid	setuid
 sigsuspend	-	sigsuspend	i:p	sigsuspend
-sstk		-	sstk		p:i	sstk
+sstk		-	sstk		b:i	sstk
 statfs		-	statfs		i:sp	__statfs	statfs
 swapoff		-	swapoff		i:s	swapoff
 swapon		-	swapon		i:s	swapon
diff --git a/sysdeps/unix/sysv/linux/ia64/syscalls.list b/sysdeps/unix/sysv/linux/ia64/syscalls.list
index a7a465a03c..866fb19d2e 100644
--- a/sysdeps/unix/sysv/linux/ia64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/ia64/syscalls.list
@@ -8,7 +8,7 @@ pread		-	pread		4	__syscall_pread	__syscall_pread64 __pread pread __pread64 prea
 pwrite		-	pwrite		4	__syscall_pwrite	__syscall_pwrite64 __pwrite pwrite __pwrite64 pwrite64
 fstatfs		-	fstatfs		i:ip	__fstatfs	fstatfs fstatfs64 __fstatfs64
 statfs		-	statfs		i:sp	__statfs	statfs statfs64
-mmap		-	mmap		P:aniiii __mmap		mmap __mmap64 mmap64
+mmap		-	mmap		b:aniiii __mmap		mmap __mmap64 mmap64
 getpeername	-	getpeername	i:ipp	__getpeername	getpeername
 getpriority	-	getpriority	i:ii	__getpriority	getpriority
 
@@ -26,7 +26,7 @@ semget		-	semget		i:iii	__semget	semget
 semctl		-	semctl		i:iiii	__semctl	semctl
 
 # proper socket implementations:
-accept		-	accept		i:ipp	__libc_accept	__accept accept
+accept		-	accept		i:iBN	__libc_accept	__accept accept
 bind		-	bind		i:ipi	__bind		bind
 connect		-	connect		i:ipi	__libc_connect	__connect connect
 getpeername	-	getpeername	i:ipp	__getpeername	getpeername
@@ -34,7 +34,7 @@ getsockname	-	getsockname	i:ipp	__getsockname	getsockname
 getsockopt	-	getsockopt	i:iiiBN	__getsockopt	getsockopt
 listen		-	listen		i:ii	__listen	listen
 recv		-	recv		i:ibni	__libc_recv	__recv recv
-recvfrom	-	recvfrom	i:ibnibN	__libc_recvfrom	__recvfrom recvfrom
+recvfrom	-	recvfrom	i:ibniBN	__libc_recvfrom	__recvfrom recvfrom
 recvmsg		-	recvmsg		i:ipi	__libc_recvmsg	recvmsg
 send		-	send		i:ibni	__libc_send	__send send
 sendmsg		-	sendmsg		i:ipi	__libc_sendmsg	sendmsg
diff --git a/sysdeps/unix/sysv/linux/mips/syscalls.list b/sysdeps/unix/sysv/linux/mips/syscalls.list
index 117e7dd0fa..71a1aa28f0 100644
--- a/sysdeps/unix/sysv/linux/mips/syscalls.list
+++ b/sysdeps/unix/sysv/linux/mips/syscalls.list
@@ -9,14 +9,14 @@ cacheflush	-	cacheflush	i:pii	_flush_cache	cacheflush
 sysmips		-	sysmips		i:iiii	__sysmips	sysmips
 
 # override select.S in parent directory:
-select		-	select		i:ipppp	__select	select
+select		-	select		i:iPPPP	__select	select
 sigsuspend	-	sigsuspend	i:p	__sigsuspend	sigsuspend
 
 #
 # Socket functions; Linux/MIPS doesn't use the socketcall(2) wrapper;
 # it's provided for compatibility, though.
 #
-accept		-	accept		i:ipp	__libc_accept	__accept accept
+accept		-	accept		i:iBN	__libc_accept	__accept accept
 bind		-	bind		i:ipi	__bind		bind
 connect		-	connect		i:ipi	__libc_connect	__connect connect
 getpeername	-	getpeername	i:ipp	__getpeername	getpeername
@@ -24,7 +24,7 @@ getsockname	-	getsockname	i:ipp	__getsockname	getsockname
 getsockopt	-	getsockopt	i:iiiBN	__getsockopt	getsockopt
 listen		-	listen		i:ii	__listen	listen
 recv		-	recv		i:ibni	__libc_recv	__recv recv
-recvfrom	-	recvfrom	i:ibnibN __libc_recvfrom __recvfrom recvfrom
+recvfrom	-	recvfrom	i:ibniBN __libc_recvfrom __recvfrom recvfrom
 recvmsg		-	recvmsg		i:ipi	__libc_recvmsg	__recvmsg recvmsg
 send		-	send		i:ibni	__libc_send	__send send
 sendmsg		-	sendmsg		i:ipi	__libc_sendmsg	__sendmsg sendmsg
diff --git a/sysdeps/unix/sysv/linux/powerpc/syscalls.list b/sysdeps/unix/sysv/linux/powerpc/syscalls.list
index 7fc6fa2b33..9228ee25b8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/syscalls.list
+++ b/sysdeps/unix/sysv/linux/powerpc/syscalls.list
@@ -1,7 +1,7 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
 # System calls with wrappers.
-s_ioctl		ioctl	ioctl		i:iip	__syscall_ioctl
+s_ioctl		ioctl	ioctl		i:iiI	__syscall_ioctl
 s_ipc		msgget	ipc		i:iiiip	__syscall_ipc
 s_llseek	llseek	_llseek		i:iiipi	__syscall__llseek
 s_chown		chown	chown		i:sii	__syscall_chown
@@ -22,7 +22,7 @@ getresgid	-	getresgid	i:ppp	getresgid
 getresuid	-	getresuid	i:ppp	getresuid
 s_getrlimit	getrlimit getrlimit	i:ip	__syscall_getrlimit
 s_lstat64	lxstat64 lstat64	i:sp	__syscall_lstat64
-s_mmap2		mmap64	mmap2		P:aniiii __syscall_mmap2
+s_mmap2		mmap64	mmap2		b:aniiii __syscall_mmap2
 s_poll		poll	poll		i:pii	__syscall_poll
 s_pread64	pread64	pread		i:ibnii	__syscall_pread
 s_ptrace	ptrace	ptrace		i:iipp	__syscall_ptrace
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index 8d7e7703f9..bff42d8a2b 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -25,9 +25,9 @@ madvise		-	madvise		i:pii	posix_madvise	madvise
 mincore		-	mincore		i:iip	mincore
 mlock		EXTRA	mlock		i:bn	__mlock	mlock
 mlockall	EXTRA	mlockall	i:i	__mlockall	mlockall
-mmap		-	mmap		P:aniiii	__mmap		mmap
+mmap		-	mmap		b:aniiii	__mmap		mmap
 mount		EXTRA	mount		i:sssip	__mount	mount
-mremap		EXTRA	mremap		P:aini	__mremap	mremap
+mremap		EXTRA	mremap		b:aini	__mremap	mremap
 munlock		EXTRA	munlock		i:ai	__munlock	munlock
 munlockall	EXTRA	munlockall	i:	__munlockall	munlockall
 nanosleep	-	nanosleep	i:pp	__libc_nanosleep	__nanosleep nanosleep
@@ -46,16 +46,16 @@ sched_rr_gi	-	sched_rr_get_interval	i:ip	__sched_rr_get_interval	sched_rr_get_in
 sched_setp	-	sched_setparam	i:ip	__sched_setparam	sched_setparam
 sched_sets	-	sched_setscheduler	i:iip	__sched_setscheduler	sched_setscheduler
 sched_yield	-	sched_yield	i:	__sched_yield	sched_yield
-select		-	_newselect	i:ipppp	__select	select
+select		-	_newselect	i:iPPPP	__select	select
 sendfile	EXTRA	sendfile	i:iipi	sendfile
 setfsgid	EXTRA	setfsgid	i:i	setfsgid
 setfsuid	EXTRA	setfsuid	i:i	setfsuid
 setpgid		-	setpgid		i:ii	__setpgid	setpgid
 setresuid	EXTRA	setresuid	i:iii	__setresuid	setresuid
 setresgid	EXTRA	setresgid	i:iii	__setresgid	setresgid
-sigaltstack	-	sigaltstack	i:pp	__sigaltstack	sigaltstack
+sigaltstack	-	sigaltstack	i:PP	__sigaltstack	sigaltstack
 sysinfo		EXTRA	sysinfo		i:p	sysinfo
 swapon		-	swapon		i:si	__swapon	swapon
 swapoff		-	swapoff		i:s	__swapoff	swapoff
 uselib		EXTRA	uselib		i:s	uselib
-wait4		-	wait4		i:ipip	__wait4		wait4
+wait4		-	wait4		i:iWiP	__wait4		wait4
diff --git a/sysdeps/unix/sysv/syscalls.list b/sysdeps/unix/sysv/syscalls.list
index 209d017d18..2525bae2ea 100644
--- a/sysdeps/unix/sysv/syscalls.list
+++ b/sysdeps/unix/sysv/syscalls.list
@@ -7,7 +7,7 @@ pause		-	pause		i:	pause
 poll		-	poll		i:pii	poll
 s_getdents	getdents getdents	i:ipi	__getdents
 setrlimit	-	setrlimit	i:ip	setrlimit
-settimeofday	-	settimeofday	i:pp	__settimeofday	settimeofday
+settimeofday	-	settimeofday	i:PP	__settimeofday	settimeofday
 signal		-	signal		i:ii	signal
 stime		-	stime		i:p	stime
 time		-	time		i:p	time