This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

PATCH: BP syscall thunks


2000-06-07  Greg McGary  <greg@mcgary.org>

	* sysdeps/unix/make-syscalls.sh: Add comments to
	output that aid debugging & comprehension.
	Map simple syscall signatures to number of args.
	Generate BP syscall thunk definitions.
	* sysdeps/generic/bp-thunks.h: New file.
	* sysdeps/unix/syscalls.list: Replace arg-count with
	simple return+arg signature.
	* sysdeps/unix/common/syscalls.list: Likewise.
	* sysdeps/unix/inet/syscalls.list: Likewise.
	* sysdeps/unix/mman/syscalls.list: Likewise.
	* sysdeps/unix/sysv/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/i386/syscalls.list: Likewise.

Index: sysdeps/unix/make-syscalls.sh
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/make-syscalls.sh,v
retrieving revision 1.13
diff -u -p -r1.13 make-syscalls.sh
--- make-syscalls.sh	1999/01/13 09:24:47	1.13
+++ make-syscalls.sh	2000/06/08 00:11:57
@@ -5,47 +5,68 @@
 
 thisdir=$1; shift
 
-# Get the list of system calls for this directory.
-calls=`sed 's/#.*$//
-/^[ 	]*$/d' $thisdir/syscalls.list`
-
+echo ''
+echo \#### DIRECTORY = $thisdir
 # Check each sysdep dir with higher priority than this one,
 # and remove from $calls all the functions found in other dirs.
-for dir in $sysdirs; do
+# Punt when we reach the directory defining these syscalls.
+sysdirs=`for dir in $sysdirs; do
+	 test $dir = $thisdir && break; echo $dir; done`
+echo \#### SYSDIRS = $sysdirs
 
-  # Punt when we reach the directory defining these syscalls.
-  test $dir = $thisdir && break
+# Get the list of system calls for this directory.
+calls=`sed 's/#.*$//
+/^[ 	]*$/d' $thisdir/syscalls.list`
 
+calls=`echo "$calls" |
+while read file caller rest; do
   # Remove each syscall that is implemented by a file in $dir.
   # If a syscall specified a "caller", then only compile that syscall
   # if the caller function is also implemented in this directory.
-  calls=`echo "$calls" | while read file caller rest; do
-	   test -f $dir/$file.c && continue
-	   test -f $dir/$file.S && continue
-	   test -f $dir/$file.s && continue
-	   if test x$caller != x-; then
-	     test -f $dir/$caller.c && continue
-	     test -f $dir/$caller.S && continue
-	     test -f $dir/$caller.s && continue
-	   fi
-	   echo $file $caller $rest
-         done`
+  srcfile=-;
+  for dir in $sysdirs; do
+     { test -f $dir/$file.c && srcfile=$dir/$file.c; } ||
+     { test -f $dir/$file.S && srcfile=$dir/$file.S; } ||
+     { test -f $dir/$file.s && srcfile=$dir/$file.s; } ||
+     { test x$caller != x- &&
+	{ { test -f $dir/$caller.c && srcfile=$dir/$caller.c; } ||
+	  { test -f $dir/$caller.S && srcfile=$dir/$caller.S; } ||
+	  { test -f $dir/$caller.s && srcfile=$dir/$caller.s; }; }; } && break;
+  done;
+  echo $file $srcfile $caller $rest;
+done`
 
-done
-
 # Any calls left?
 test -n "$calls" || exit 0
 
-files=
-
 # Emit rules to compile the syscalls remaining in $calls.
-echo "$calls" | while read file caller syscall nargs strong weak; do
+echo "$calls" | while read file srcfile caller syscall args strong weak; do
+
+# Figure out if $syscall is defined with a number in syscall.h.
+callnum=-
+eval `{ echo "#include <sysdep.h>";
+	echo "callnum=SYS_ify ($syscall)"; } |
+	  $asm_CPP - |grep "^callnum=" |grep -v $syscall`
+
+  # Derive the number of arguments from the argument signature
+  case $args in
+  [0-9]) nargs=$args;;
+  ?:) nargs=0;;
+  ?:?) nargs=1;;
+  ?:??) nargs=2;;
+  ?:???) nargs=3;;
+  ?:????) nargs=4;;
+  ?:?????) nargs=5;;
+  ?:??????) nargs=6;;
+  esac
 
-  # Figure out if $syscall is defined with a number in syscall.h.
-  $asm_CPP - << EOF | grep "^@@@ .*$syscall" >/dev/null && continue
-#include <sysdep.h>
-@@@ SYS_ify ($syscall)
-EOF
+  # Make sure only the first syscall rule is used, if multiple dirs
+  # define the same syscall.
+ echo "#### CALL=$file NUMBER=$callnum ARGS=$args SOURCE=$srcfile"
+ case x$srcfile$callnum in
+ x*-) ;; ### Do nothing for undefined callnum
+ x-*)
+  echo "ifeq (,\$(filter $file,\$(unix-syscalls)))"
 
   case $weak in
   *@*)
@@ -53,11 +74,6 @@ EOF
     echo "ifneq (,\$(filter .os,\$(object-suffixes)))"
     ;;
   esac
-
-  # Make sure only the first syscall rule is used, if multiple dirs
-  # define the same syscall.
-  echo "ifeq (,\$(filter $file,\$(unix-syscalls)))"
-
   # Accumulate the list of syscall files for this directory.
   echo "unix-syscalls += $file"
   test x$caller = x- || echo "unix-extra-syscalls += $file"
@@ -75,7 +91,7 @@ shared-only-routines += $file
 \$(foreach o,\$(object-suffixes),\$(objpfx)$file\$o): \\"
     ;;
   esac
-  echo "\$(common-objpfx)s-proto.d
+  echo "		\$(common-objpfx)s-proto.d
 	(echo '#include <sysdep.h>'; \\
 	 echo 'PSEUDO ($strong, $syscall, $nargs)'; \\
 	 echo '	ret'; \\
@@ -124,11 +140,34 @@ shared-only-routines += $file
   # And finally, pipe this all into the compiler.
   echo '	) | $(COMPILE.S) -x assembler-with-cpp -o $@ -'
 
-  echo endif
-
   case $weak in
   *@*)
     # The versioned symbols are only in the shared library.
+    echo endif
+    ;;
+  esac
+
+  echo endif
+ ;;
+ esac
+
+  case x$callnum,$srcfile,$args in
+  x[0-9]*,-,*[sp]* | x*,*.[sS],*[sp]*)
+    echo "ifeq (,\$(filter $file,\$(bp-thunks)))"
+    echo "bp-thunks += $file";
+    echo "\
+\$(objpfx)\$(bppfx)$file.ob: \$(common-objpfx)s-proto.d
+	(echo '#include <bp-thunks.h>'; \\
+	 echo 'BP_THUNK_`echo $args |tr : _` ($strong)'; \\"
+
+    for name in $weak; do
+      case $name in
+	*@*) ;;
+	*) echo "	 echo 'BP_ALIAS ($strong, $name)'; \\" ;;
+      esac
+    done
+
+    echo '	) | $(COMPILE.c) -x c -o $@ -'
     echo endif
     ;;
   esac
Index: sysdeps/generic/bp-thunks.h
===================================================================
RCS file: bp-thunks.h
diff -N bp-thunks.h
--- /dev/null	Tue May  5 13:32:27 1998
+++ bp-thunks.h	Wed Jun  7 17:12:35 2000
@@ -0,0 +1,225 @@
+/* Bounded-pointer thunk definitions.
+   Copyright (C) 2000 Free Software Foundation, Inc.
+   Contributed by Greg McGary <greg@mcgary.org>
+
+   This file is part of the GNU C Library.  Its master source is NOT part of
+   the C library, however.  The master source lives in the GNU MP Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _bpthunks_h_
+#define _bpthunks_h_
+
+#include <libc-symbols.h>
+
+#define BP_ALIAS(STRONG, ALIAS) weak_alias (__BP_##STRONG, __BP_##ALIAS)
+
+#define PV(P) __ptrvalue (P)
+#define SV(S) __ptrvalue (S)
+#define PB(P) __ptrlow (P)
+#define PE(P) __ptrhigh (P)
+#define voidp void *__bounded
+#define charp char *__bounded
+
+/* GKM FIXME: Add code to check bounds.  Right now, they only strip bounds, */
+
+#define BP_THUNK_i_iiip(NAME) __unbounded { \
+  extern int NAME (int, int, int, void *); \
+  int __BP_##NAME (int i0, int i1, int i2, voidp p3) \
+    { return NAME (i0, i1, i2, PV (p3)); } }
+
+#define BP_THUNK_i_iiipi(NAME) __unbounded { \
+  extern int NAME (int, int, int, void *, int); \
+  int __BP_##NAME (int i0, int i1, int i2, voidp p3, int i4) \
+    { return NAME (i0, i1, i2, PV (p3), i4); } }
+
+#define BP_THUNK_i_iiipp(NAME) __unbounded { \
+  extern int NAME (int, int, int, void *, void *); \
+  int __BP_##NAME (int i0, int i1, int i2, voidp p3, voidp p4) \
+    { return NAME (i0, i1, i2, PV (p3), PV (p4)); } }
+
+#define BP_THUNK_i_iip(NAME) __unbounded { \
+  extern int NAME (int, int, void *); \
+  int __BP_##NAME (int i0, int i1, voidp p2) \
+    { return NAME (i0, i1, PV (p2)); } }
+
+#define BP_THUNK_i_iipi(NAME) __unbounded { \
+  extern int NAME (int, int, void *, int); \
+  int __BP_##NAME (int i0, int i1, voidp p2, int i3) \
+    { return NAME (i0, i1, PV (p2), i3); } }
+
+#define BP_THUNK_i_iipp(NAME) __unbounded { \
+  extern int NAME (int, int, void *, void *); \
+  int __BP_##NAME (int i0, int i1, voidp p2, voidp p3) \
+    { return NAME (i0, i1, PV (p2), PV (p3)); } }
+
+#define BP_THUNK_i_ip(NAME) __unbounded { \
+  extern int NAME (int, void *); \
+  int __BP_##NAME (int i0, voidp p1) \
+    { return NAME (i0, PV (p1)); } }
+
+#define BP_THUNK_i_ipi(NAME) __unbounded { \
+  extern int NAME (int, void *, int); \
+  int __BP_##NAME (int i0, voidp p1, int i2) \
+    { return NAME (i0, PV (p1), i2); } }
+
+#define BP_THUNK_i_ipii(NAME) __unbounded { \
+  extern int NAME (int, void *, int, int); \
+  int __BP_##NAME (int i0, voidp p1, int i2, int i3) \
+    { return NAME (i0, PV (p1), i2, i3); } }
+
+#define BP_THUNK_i_ipiii(NAME) __unbounded { \
+  extern int NAME (int, void *, int, int, int); \
+  int __BP_##NAME (int i0, voidp p1, int i2, int i3, int i4) \
+    { return NAME (i0, PV (p1), i2, i3, i4); } }
+
+#define BP_THUNK_i_ipiipi(NAME) __unbounded { \
+  extern int NAME (int, void *, int, int, void *, int); \
+  int __BP_##NAME (int i0, voidp p1, int i2, int i3, voidp p4, int i5) \
+    { return NAME (i0, PV (p1), i2, i3, PV (p4), i5); } }
+
+#define BP_THUNK_i_ipiipp(NAME) __unbounded { \
+  extern int NAME (int, void *, int, int, void *, void *); \
+  int __BP_##NAME (int i0, voidp p1, int i2, int i3, voidp p4, voidp p5) \
+    { return NAME (i0, PV (p1), i2, i3, PV (p4), PV (p5)); } }
+
+#define BP_THUNK_i_ipip(NAME) __unbounded { \
+  extern int NAME (int, void *, int, void *); \
+  int __BP_##NAME (int i0, voidp p1, int i2, voidp p3) \
+    { return NAME (i0, PV (p1), i2, PV (p3)); } }
+
+#define BP_THUNK_i_ipp(NAME) __unbounded { \
+  extern int NAME (int, void *, void *); \
+  int __BP_##NAME (int i0, voidp p1, voidp p2) \
+    { return NAME (i0, PV (p1), PV (p2)); } }
+
+#define BP_THUNK_i_ippi(NAME) __unbounded { \
+  extern int NAME (int, void *, void *, int); \
+  int __BP_##NAME (int i0, voidp p1, voidp p2, int i3) \
+    { return NAME (i0, PV (p1), PV (p2), i3); } }
+
+#define BP_THUNK_i_ipppp(NAME) __unbounded { \
+  extern int NAME (int, void *, void *, void *, void *); \
+  int __BP_##NAME (int i0, voidp p1, voidp p2, voidp p3, voidp p4) \
+    { return NAME (i0, PV (p1), PV (p2), PV (p3), PV (p4)); } }
+
+#define BP_THUNK_i_isi(NAME) __unbounded { \
+  extern int NAME (int, char *, int); \
+  int __BP_##NAME (int i0, charp s1, int i2) \
+    { return NAME (i0, SV (s1), i2); } }
+
+#define BP_THUNK_i_isip(NAME) __unbounded { \
+  extern int NAME (int, char *, int, void *); \
+  int __BP_##NAME (int i0, charp s1, int i2, voidp p3) \
+    { return NAME (i0, SV (s1), i2, PV (p3)); } }
+
+#define BP_THUNK_i_p(NAME) __unbounded { \
+  extern int NAME (void *); \
+  int __BP_##NAME (voidp p0) \
+    { return NAME (PV (p0)); } }
+
+#define BP_THUNK_i_pi(NAME) __unbounded { \
+  extern int NAME (void *, int); \
+  int __BP_##NAME (voidp p0, int i1) \
+    { return NAME (PV (p0), i1); } }
+
+#define BP_THUNK_i_pii(NAME) __unbounded { \
+  extern int NAME (void *, int, int); \
+  int __BP_##NAME (voidp p0, int i1, int i2) \
+    { return NAME (PV (p0), i1, i2); } }
+
+#define BP_THUNK_i_piii(NAME) __unbounded { \
+  extern int NAME (void *, int, int, int); \
+  int __BP_##NAME (voidp p0, int i1, int i2, int i3) \
+    { return NAME (PV (p0), i1, i2, i3); } }
+
+#define BP_THUNK_i_pp(NAME) __unbounded { \
+  extern int NAME (void *, void *); \
+  int __BP_##NAME (voidp p0, voidp p1) \
+    { return NAME (PV (p0), PV (p1)); } }
+
+#define BP_THUNK_i_pppi(NAME) __unbounded { \
+  extern int NAME (void *, void *, void *, int); \
+  int __BP_##NAME (voidp p0, voidp p1, voidp p2, int i3) \
+    { return NAME (PV (p0), PV (p1), PV (p2), i3); } }
+
+#define BP_THUNK_i_s(NAME) __unbounded { \
+  extern int NAME (char *); \
+  int __BP_##NAME (charp s0) \
+    { return NAME (SV (s0)); } }
+
+#define BP_THUNK_i_si(NAME) __unbounded { \
+  extern int NAME (char *, int); \
+  int __BP_##NAME (charp s0, int i1) \
+    { return NAME (SV (s0), i1); } }
+
+#define BP_THUNK_i_sii(NAME) __unbounded { \
+  extern int NAME (char *, int, int); \
+  int __BP_##NAME (charp s0, int i1, int i2) \
+    { return NAME (SV (s0), i1, i2); } }
+
+#define BP_THUNK_i_sipip(NAME) __unbounded { \
+  extern int NAME (char *, int, void *, int, void *); \
+  int __BP_##NAME (charp s0, int i1, voidp p2, int i3, voidp p4) \
+    { return NAME (SV (s0), i1, PV (p2), i3, PV (p4)); } }
+
+#define BP_THUNK_i_sp(NAME) __unbounded { \
+  extern int NAME (char *, void *); \
+  int __BP_##NAME (charp s0, voidp p1) \
+    { return NAME (SV (s0), PV (p1)); } }
+
+#define BP_THUNK_i_spi(NAME) __unbounded { \
+  extern int NAME (char *, void *, int); \
+  int __BP_##NAME (charp s0, voidp p1, int i2) \
+    { return NAME (SV (s0), PV (p1), i2); } }
+
+#define BP_THUNK_i_spp(NAME) __unbounded { \
+  extern int NAME (char *, void *, void *); \
+  int __BP_##NAME (charp s0, voidp p1, voidp p2) \
+    { return NAME (SV (s0), PV (p1), PV (p2)); } }
+
+#define BP_THUNK_i_ss(NAME) __unbounded { \
+  extern int NAME (char *, char *); \
+  int __BP_##NAME (charp s0, charp s1) \
+    { return NAME (SV (s0), s1); } }
+
+#define BP_THUNK_i_sssip(NAME) __unbounded { \
+  extern int NAME (char *, char *, char *, int, void *); \
+  int __BP_##NAME (charp s0, charp s1, charp s2, int i3, voidp p4) \
+    { return NAME (SV (s0), SV (s1), SV (s2), i3, PV (p4)); } }
+
+/* sstk */
+#define BP_THUNK_p_i(NAME) __unbounded { \
+  extern void *NAME (int); \
+  voidp __BP_##NAME (int i0) \
+    { charp m; PV (m) = PB (m) = NAME (i0); \
+      PE (m) = PV (m) + i0; return m; } }
+
+/* mremap */
+#define BP_THUNK_p_piii(NAME) __unbounded { \
+  extern void *NAME (void *, int, int, int); \
+  voidp __BP_##NAME (voidp p0, int i1, int i2, int i3) \
+    { charp m; PV (m) = PB (m) = NAME (PV (p0), i1, i2, i3); \
+      PE (m) = PV (m) + i2; return m; } }
+
+/* mmap */
+#define BP_THUNK_p_piiiii(NAME) __unbounded { \
+  extern void *NAME (void *, int, int, int, int, int); \
+  voidp __BP_##NAME (voidp p0, int i1, int i2, int i3, int i4, int i5) \
+    { charp m; PV (m) = PB (m) = NAME (PV (p0), i1, i2, i3, i4, i5); \
+      PE (m) = PV (m) + i1; return m; } }
+
+#endif /* _bpthunks_h_ */
Index: sysdeps/unix/syscalls.list
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/syscalls.list,v
retrieving revision 1.11
diff -u -p -r1.11 syscalls.list
--- syscalls.list	1997/06/02 02:22:56	1.11
+++ syscalls.list	2000/06/08 00:11:57
@@ -1,65 +1,65 @@
-# File name	Caller	Syscall name	# args	Strong name	Weak names
+# File name	Caller	Syscall name	Args	Strong name	Weak names
 
-access		-	access		2	__access	access
-acct		-	acct		1	acct
-chdir		-	chdir		1	__chdir		chdir
-chmod		-	chmod		2	__chmod		chmod
-chown		-	chown		3	__chown		chown
-chroot		-	chroot		1	chroot
-close		-	close		1	__libc_close	__close close
-dup		-	dup		1	__dup		dup
-dup2		-	dup2		2	__dup2		dup2
-fchdir		-	fchdir		1	__fchdir	fchdir
-fcntl		-	fcntl		3	__libc_fcntl	__fcntl fcntl
-fstatfs		-	fstatfs		2	__fstatfs	fstatfs
-fsync		-	fsync		1	__libc_fsync	fsync
-getdomain	-	getdomainname	2	getdomainname
-getgid		-	getgid		0	__getgid	getgid
-getgroups	-	getgroups	2	__getgroups	getgroups
-getitimer	-	getitimer	2	__getitimer	getitimer
-getpid		-	getpid		0	__getpid	getpid
-getpriority	-	getpriority	2	getpriority
-getrlimit	-	getrlimit	2	__getrlimit	getrlimit
-getuid		-	getuid		0	__getuid	getuid
-ioctl		-	ioctl		3	__ioctl		ioctl
-kill		-	kill		2	__kill		kill
-link		-	link		2	__link		link
-lseek		-	lseek		3	__libc_lseek	__lseek lseek
-mkdir		-	mkdir		2	__mkdir		mkdir
-open		-	open		3	__libc_open	__open open
-profil		-	profil		4	profil
-ptrace		-	ptrace		4	ptrace
-read		-	read		3	__libc_read	__read read
-readlink	-	readlink	3	__readlink	readlink
-readv		-	readv		3	__readv		readv
-reboot		-	reboot		1	reboot
-rename		-	rename		2	rename
-rmdir		-	rmdir		1	__rmdir		rmdir
-select		-	select		5	__select	select
-setdomain	-	setdomainname	2	setdomainname
-setegid		-	setegid		1	__setegid	setegid
-seteuid		-	seteuid		1	__seteuid	seteuid
-setgid		-	setgid		1	__setgid	setgid
-setgroups	-	setgroups	2	setgroups
-setitimer	-	setitimer	3	__setitimer	setitimer
-setpriority	-	setpriority	3	setpriority
-setrlimit	-	setrlimit	2	setrlimit
-setsid		-	setsid		0	__setsid	setsid
-settimeofday	-	settimeofday	2	__settimeofday	settimeofday
-setuid		-	setuid		1	__setuid	setuid
-sigsuspend	-	sigsuspend	1	sigsuspend
-sstk		-	sstk		1	sstk
-statfs		-	statfs		2	__statfs	statfs
-swapoff		-	swapoff		1	swapoff
-swapon		-	swapon		1	swapon
-symlink		-	symlink		2	__symlink	symlink
-sync		-	sync		0	sync
-sys_fstat	fxstat	fstat		2	__syscall_fstat
-sys_mknod	xmknod	mknod		3	__syscall_mknod
-sys_stat	xstat	stat		2	__syscall_stat
-umask		-	umask		1	__umask		umask
-uname		-	uname		1	uname
-unlink		-	unlink		1	__unlink	unlink
-utimes		-	utimes		2	__utimes	utimes
-write		-	write		3	__libc_write	__write write
-writev		-	writev		3	__writev	writev
+access		-	access		i:si	__access	access
+acct		-	acct		i:s	acct
+chdir		-	chdir		i:s	__chdir		chdir
+chmod		-	chmod		i:si	__chmod		chmod
+chown		-	chown		i:sii	__chown		chown
+chroot		-	chroot		i:s	chroot
+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:iip	__libc_fcntl	__fcntl fcntl
+fstatfs		-	fstatfs		i:ip	__fstatfs	fstatfs
+fsync		-	fsync		i:i	__libc_fsync	fsync
+getdomain	-	getdomainname	i:si	getdomainname
+getgid		-	getgid		i:	__getgid	getgid
+getgroups	-	getgroups	i:ip	__getgroups	getgroups
+getitimer	-	getitimer	i:ip	__getitimer	getitimer
+getpid		-	getpid		i:	__getpid	getpid
+getpriority	-	getpriority	i:ii	getpriority
+getrlimit	-	getrlimit	i:ip	__getrlimit	getrlimit
+getuid		-	getuid		i:	__getuid	getuid
+ioctl		-	ioctl		i:iip	__ioctl		ioctl
+kill		-	kill		i:ii	__kill		kill
+link		-	link		i:ss	__link		link
+lseek		-	lseek		i:iii	__libc_lseek	__lseek lseek
+mkdir		-	mkdir		i:si	__mkdir		mkdir
+open		-	open		i:sii	__libc_open	__open open
+profil		-	profil		i:piii	profil
+ptrace		-	ptrace		i:iiii	ptrace
+read		-	read		i:ipi	__libc_read	__read read
+readlink	-	readlink	i:spi	__readlink	readlink
+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
+setdomain	-	setdomainname	i:si	setdomainname
+setegid		-	setegid		i:i	__setegid	setegid
+seteuid		-	seteuid		i:i	__seteuid	seteuid
+setgid		-	setgid		i:i	__setgid	setgid
+setgroups	-	setgroups	i:ip	setgroups
+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
+setuid		-	setuid		i:i	__setuid	setuid
+sigsuspend	-	sigsuspend	i:p	sigsuspend
+sstk		-	sstk		p:i	sstk
+statfs		-	statfs		i:sp	__statfs	statfs
+swapoff		-	swapoff		i:s	swapoff
+swapon		-	swapon		i:s	swapon
+symlink		-	symlink		i:ss	__symlink	symlink
+sync		-	sync		i:	sync
+sys_fstat	fxstat	fstat		i:ip	__syscall_fstat
+sys_mknod	xmknod	mknod		i:pii	__syscall_mknod
+sys_stat	xstat	stat		i:sp	__syscall_stat
+umask		-	umask		i:i	__umask		umask
+uname		-	uname		i:p	uname
+unlink		-	unlink		i:s	__unlink	unlink
+utimes		-	utimes		i:sp	__utimes	utimes
+write		-	write		i:ipi	__libc_write	__write write
+writev		-	writev		i:ipi	__writev	writev
Index: sysdeps/unix/common/syscalls.list
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/common/syscalls.list,v
retrieving revision 1.5
diff -u -p -r1.5 syscalls.list
--- syscalls.list	1998/04/08 23:32:47	1.5
+++ syscalls.list	2000/06/08 00:11:57
@@ -1,17 +1,17 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
-adjtime		-	adjtime		2	__adjtime	adjtime
-fchmod		-	fchmod		2	__fchmod	fchmod
-fchown		-	fchown		3	__fchown	fchown
-ftruncate	-	ftruncate	2	__ftruncate	ftruncate
-getpgid		-	getpgrp		1	__getpgid	getpgid
-getrusage	-	getrusage	2	__getrusage	getrusage
-gettimeofday	-	gettimeofday	2	__gettimeofday	gettimeofday
-settimeofday	-	settimeofday	2	__settimeofday	settimeofday
-setpgid		-	setpgrp		2	__setpgid	setpgid
-setregid	-	setregid	2	__setregid	setregid
-setreuid	-	setreuid	2	__setreuid	setreuid
-sigaction	-	sigaction	3	__sigaction	sigaction
-sys_lstat	lxstat	lstat		2	__syscall_lstat
-truncate	-	truncate	2	truncate
-vhangup		-	vhangup		1	vhangup
+adjtime		-	adjtime		i:pp	__adjtime	adjtime
+fchmod		-	fchmod		i:ii	__fchmod	fchmod
+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
+setpgid		-	setpgrp		i:ii	__setpgid	setpgid
+setregid	-	setregid	i:ii	__setregid	setregid
+setreuid	-	setreuid	i:ii	__setreuid	setreuid
+sigaction	-	sigaction	i:ipp	__sigaction	sigaction
+sys_lstat	lxstat	lstat		i:sp	__syscall_lstat
+truncate	-	truncate	i:si	truncate
+vhangup		-	vhangup		i:i	vhangup
Index: sysdeps/unix/inet/syscalls.list
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/inet/syscalls.list,v
retrieving revision 1.4
diff -u -p -r1.4 syscalls.list
--- syscalls.list	1997/10/29 20:33:04	1.4
+++ syscalls.list	2000/06/08 00:11:57
@@ -1,23 +1,23 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
-accept		-	accept		3	__libc_accept	accept
-bind		-	bind		3	bind
-connect		-	connect		3	__libc_connect	__connect connect
-gethostid	-	gethostid	0	gethostid
-gethostname	-	gethostname	2	__gethostname	gethostname
-getpeername	-	getpeername	3	getpeername
-getsockname	-	getsockname	3	getsockname
-getsockopt	-	getsockopt	5	getsockopt
-listen		-	listen		2	listen
-recv		-	recv		4	__libc_recv	recv
-recvfrom	-	recvfrom	6	__libc_recvfrom	recvfrom
-recvmsg		-	recvmsg		3	__libc_recvmsg	recvmsg
-send		-	send		4	__libc_send	__send send
-sendmsg		-	sendmsg		3	__libc_sendmsg	sendmsg
-sendto		-	sendto		6	__libc_sendto	sendto
-sethostid	-	sethostid	1	sethostid
-sethostname	-	sethostname	2	sethostname
-setsockopt	-	setsockopt	5	setsockopt
-shutdown	-	shutdown	2	shutdown
-socket		-	socket		3	socket
-socketpair	-	socketpair	4	socketpair
+accept		-	accept		i:ipi	__libc_accept	accept
+bind		-	bind		i:ipi	bind
+connect		-	connect		i:ipi	__libc_connect	__connect connect
+gethostid	-	gethostid	i:	gethostid
+gethostname	-	gethostname	i:si	__gethostname	gethostname
+getpeername	-	getpeername	i:ipi	getpeername
+getsockname	-	getsockname	i:ipi	getsockname
+getsockopt	-	getsockopt	i:iiipp	getsockopt
+listen		-	listen		i:ii	listen
+recv		-	recv		i:ipii	__libc_recv	recv
+recvfrom	-	recvfrom	i:ipiipp	__libc_recvfrom	recvfrom
+recvmsg		-	recvmsg		i:ipi	__libc_recvmsg	recvmsg
+send		-	send		i:ipii	__libc_send	__send send
+sendmsg		-	sendmsg		i:ipi	__libc_sendmsg	sendmsg
+sendto		-	sendto		i:ipiipi	__libc_sendto	sendto
+sethostid	-	sethostid	i:i	sethostid
+sethostname	-	sethostname	i:pi	sethostname
+setsockopt	-	setsockopt	i:iiipi	setsockopt
+shutdown	-	shutdown	i:ii	shutdown
+socket		-	socket		i:iii	socket
+socketpair	-	socketpair	i:iiip	socketpair
Index: sysdeps/unix/mman/syscalls.list
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/mman/syscalls.list,v
retrieving revision 1.6
diff -u -p -r1.6 syscalls.list
--- syscalls.list	1997/02/22 01:20:37	1.6
+++ syscalls.list	2000/06/08 00:11:57
@@ -4,8 +4,8 @@
 
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
-madvise		-	madvise		3	madvise
-mmap		-	mmap		6	__mmap		mmap
-mprotect	-	mprotect	3	__mprotect	mprotect
-msync		-	msync		3	__libc_msync	msync
-munmap		-	munmap		2	__munmap	munmap
+madvise		-	madvise		i:pii	madvise
+mmap		-	mmap		p:piiiii	__mmap		mmap
+mprotect	-	mprotect	i:pii	__mprotect	mprotect
+msync		-	msync		i:pii	__libc_msync	msync
+munmap		-	munmap		i:pi	__munmap	munmap
Index: sysdeps/unix/sysv/syscalls.list
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/syscalls.list,v
retrieving revision 1.3
diff -u -p -r1.3 syscalls.list
--- syscalls.list	1996/02/12 10:23:00	1.3
+++ syscalls.list	2000/06/08 00:11:57
@@ -1,16 +1,16 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
-alarm		-	alarm		1	alarm
-ftime		-	ftime		1	ftime
-nice		-	nice		1	nice
-pause		-	pause		0	pause
-poll		-	poll		3	poll
-s_getdents	getdents getdents	3	__getdents
-setrlimit	-	setrlimit	2	setrlimit
-settimeofday	-	settimeofday	2	__settimeofday	settimeofday
-signal		-	signal		2	signal
-stime		-	stime		1	stime
-time		-	time		1	time
-times		-	times		1	__times	times
-ulimit		-	ulimit		2	ulimit
-utime		-	utime		2	utime
+alarm		-	alarm		i:i	alarm
+ftime		-	ftime		i:p	ftime
+nice		-	nice		i:i	nice
+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
+signal		-	signal		i:ii	signal
+stime		-	stime		i:p	stime
+time		-	time		i:p	time
+times		-	times		i:p	__times	times
+ulimit		-	ulimit		i:ii	ulimit
+utime		-	utime		i:pp	utime
Index: sysdeps/unix/sysv/linux/syscalls.list
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/syscalls.list,v
retrieving revision 1.75
diff -u -p -r1.75 syscalls.list
--- syscalls.list	2000/04/14 07:42:50	1.75
+++ syscalls.list	2000/06/08 00:11:57
@@ -1,7 +1,7 @@
-# File name	Caller	Syscall name	# args	Strong name	Weak names
+# File name	Caller	Syscall name	Args	Strong name	Weak names
 
-adjtimex	adjtime	adjtimex	1	__adjtimex	adjtimex ntp_adjtime
-bdflush		EXTRA	bdflush		2	bdflush
+adjtimex	adjtime	adjtimex	i:p	__adjtimex	adjtimex ntp_adjtime
+bdflush		EXTRA	bdflush		i:ii	bdflush
 capget		EXTRA	capget		2	capget
 capset		EXTRA	capset		2	capset
 clock_getres	-	clock_getres	2	clock_getres
@@ -9,61 +9,61 @@ clock_gettime	-	clock_gettime	2	clock_ge
 clock_settime	-	clock_settime	2	clock_settime
 create_module	EXTRA	create_module	3	create_module
 delete_module	EXTRA	delete_module	3	delete_module
-fdatasync	-	fdatasync	1	fdatasync
-flock		-	flock		2	__flock		flock
-fork		-	fork		0	__libc_fork	__fork fork
-get_kernel_syms	EXTRA	get_kernel_syms	1	get_kernel_syms
-getegid		-	getegid		0	__getegid	getegid
-geteuid		-	geteuid		0	__geteuid	geteuid
-getpgid		-	getpgid		1	__getpgid	getpgid
-getpgrp		-	getpgrp		0	getpgrp
-getppid		-	getppid		0	__getppid	getppid
-getsid		-	getsid		1	getsid
+fdatasync	-	fdatasync	i:i	fdatasync
+flock		-	flock		i:ii	__flock		flock
+fork		-	fork		i:	__libc_fork	__fork fork
+get_kernel_syms	EXTRA	get_kernel_syms	i:p	get_kernel_syms
+getegid		-	getegid		i:	__getegid	getegid
+geteuid		-	geteuid		i:	__geteuid	geteuid
+getpgid		-	getpgid		i:i	__getpgid	getpgid
+getpgrp		-	getpgrp		i:	getpgrp
+getppid		-	getppid		i:	__getppid	getppid
+getsid		-	getsid		i:i	getsid
 init_module	EXTRA	init_module	5	init_module
-ioperm		-	ioperm		3	ioperm
-iopl		-	iopl		1	iopl
-klogctl		EXTRA	syslog		3	klogctl
-lchown		-	lchown		3	__lchown	lchown
-madvise		-	madvise		3	posix_madvise	madvise
+ioperm		-	ioperm		i:iii	ioperm
+iopl		-	iopl		i:i	iopl
+klogctl		EXTRA	syslog		i:isi	klogctl
+lchown		-	lchown		i:sii	__lchown	lchown
+madvise		-	madvise		i:pii	posix_madvise	madvise
 mincore		-	mincore		3	mincore
-mlock		EXTRA	mlock		2	__mlock	mlock
-mlockall	EXTRA	mlockall	1	__mlockall	mlockall
-mmap		-	mmap		6	__mmap		mmap
-mount		EXTRA	mount		5	__mount	mount
-mremap		EXTRA	mremap		4	__mremap	mremap
-munlock		EXTRA	munlock		2	__munlock	munlock
-munlockall	EXTRA	munlockall	0	__munlockall	munlockall
-nanosleep	-	nanosleep	2	__libc_nanosleep	__nanosleep nanosleep
-nfsservctl	EXTRA	nfsservctl	3	nfsservctl
-pause		-	pause		0	__libc_pause	pause
-personality	init-first personality	1	__personality	personality
-pipe		-	pipe		1	__pipe		pipe
-prctl		EXTRA	prctl		5	prctl
-query_module	EXTRA	query_module	5	query_module
-quotactl	EXTRA	quotactl	4	quotactl
-sched_getp	-	sched_getparam	2	__sched_getparam	sched_getparam
-sched_gets	-	sched_getscheduler	1	__sched_getscheduler	sched_getscheduler
-sched_primax	-	sched_get_priority_max	1	__sched_get_priority_max	sched_get_priority_max
-sched_primin	-	sched_get_priority_min	1	__sched_get_priority_min	sched_get_priority_min
-sched_rr_gi	-	sched_rr_get_interval	2	__sched_rr_get_interval	sched_rr_get_interval
-sched_setp	-	sched_setparam	2	__sched_setparam	sched_setparam
-sched_sets	-	sched_setscheduler	3	__sched_setscheduler	sched_setscheduler
-sched_yield	-	sched_yield	0	__sched_yield	sched_yield
-select		-	_newselect	5	__select	select
-sendfile	EXTRA	sendfile	4	sendfile
-setfsgid	EXTRA	setfsgid	1	setfsgid
-setfsuid	EXTRA	setfsuid	1	setfsuid
-setpgid		-	setpgid		2	__setpgid	setpgid
-setresuid	EXTRA	setresuid	3	__setresuid	setresuid
-setresgid	EXTRA	setresgid	3	__setresgid	setresgid
-sigaltstack	-	sigaltstack	2	__sigaltstack	sigaltstack
-sysinfo		EXTRA	sysinfo		1	sysinfo
-swapon		-	swapon		2	__swapon	swapon
-swapoff		-	swapoff		1	__swapoff	swapoff
+mlock		EXTRA	mlock		i:pi	__mlock	mlock
+mlockall	EXTRA	mlockall	i:i	__mlockall	mlockall
+mmap		-	mmap		p:piiiii	__mmap		mmap
+mount		EXTRA	mount		i:sssip	__mount	mount
+mremap		EXTRA	mremap		p:piii	__mremap	mremap
+munlock		EXTRA	munlock		i:pi	__munlock	munlock
+munlockall	EXTRA	munlockall	i:	__munlockall	munlockall
+nanosleep	-	nanosleep	i:pp	__libc_nanosleep	__nanosleep nanosleep
+nfsservctl	EXTRA	nfsservctl	i:ipp	nfsservctl
+pause		-	pause		i:	__libc_pause	pause
+personality	init-first personality	i:i	__personality	personality
+pipe		-	pipe		i:p	__pipe		pipe
+prctl		EXTRA	prctl		i:iiiii	prctl
+query_module	EXTRA	query_module	i:sipip	query_module
+quotactl	EXTRA	quotactl	i:isip	quotactl
+sched_getp	-	sched_getparam	i:ip	__sched_getparam	sched_getparam
+sched_gets	-	sched_getscheduler	i:i	__sched_getscheduler	sched_getscheduler
+sched_primax	-	sched_get_priority_max	i:i	__sched_get_priority_max	sched_get_priority_max
+sched_primin	-	sched_get_priority_min	i:i	__sched_get_priority_min	sched_get_priority_min
+sched_rr_gi	-	sched_rr_get_interval	i:ip	__sched_rr_get_interval	sched_rr_get_interval
+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
+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
+sysinfo		EXTRA	sysinfo		i:p	sysinfo
+swapon		-	swapon		i:si	__swapon	swapon
+swapoff		-	swapoff		i:s	__swapoff	swapoff
 timer_create	-	timer_create	3	timer_create
 timer_delete	-	timer_delete	1	timer_delete
 timer_getoverr	-	timer_getoverrun	1	timer_getoverrun
 timer_gettime	-	timer_gettime	2	timer_gettime
 timer_settime	-	timer_settime	4	timer_settime
-uselib		EXTRA	uselib		1	uselib
-wait4		-	wait4		4	__wait4		wait4
+uselib		EXTRA	uselib		i:s	uselib
+wait4		-	wait4		i:ipip	__wait4		wait4
Index: sysdeps/unix/sysv/linux/i386/syscalls.list
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/i386/syscalls.list,v
retrieving revision 1.14
diff -u -p -r1.14 syscalls.list
--- syscalls.list	2000/03/20 22:06:17	1.14
+++ syscalls.list	2000/06/08 00:11:57
@@ -1,6 +1,6 @@
-# File name	Caller	Syscall name	# args	Strong name	Weak names
+# File name	Caller	Syscall name	Args	Strong name	Weak names
 
-modify_ldt	EXTRA	modify_ldt	3	__modify_ldt	modify_ldt
-vm86		-	vm86		1	__vm86		vm86
-oldgetrlimit	EXTRA	getrlimit	2	__old_getrlimit	getrlimit@GLIBC_2.0
-oldsetrlimit	EXTRA	setrlimit	2	__old_setrlimit	setrlimit@GLIBC_2.0
+modify_ldt	EXTRA	modify_ldt	i:ipi	__modify_ldt	modify_ldt
+vm86		-	vm86		i:p	__vm86		vm86
+oldgetrlimit	EXTRA	getrlimit	i:ip	__old_getrlimit	getrlimit@GLIBC_2.0
+oldsetrlimit	EXTRA	setrlimit	i:ip	__old_setrlimit	setrlimit@GLIBC_2.0

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]