Module Name:    src
Committed By:   pooka
Date:           Fri May 15 15:51:27 UTC 2009

Modified Files:
        src/sys/kern: makesyscalls.sh syscalls.master

Log Message:
Use argname PAD to signal that an argument is used only for padding
and not part of the C interface.  Use this information for rump
syscalls to generate syscall interfaces without the extra parameter.


To generate a diff of this commit:
cvs rdiff -u -r1.86 -r1.87 src/sys/kern/makesyscalls.sh
cvs rdiff -u -r1.226 -r1.227 src/sys/kern/syscalls.master

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/makesyscalls.sh
diff -u src/sys/kern/makesyscalls.sh:1.86 src/sys/kern/makesyscalls.sh:1.87
--- src/sys/kern/makesyscalls.sh:1.86	Fri May 15 14:52:47 2009
+++ src/sys/kern/makesyscalls.sh	Fri May 15 15:51:27 2009
@@ -1,5 +1,5 @@
 #! /bin/sh -
-#	$NetBSD: makesyscalls.sh,v 1.86 2009/05/15 14:52:47 pooka Exp $
+#	$NetBSD: makesyscalls.sh,v 1.87 2009/05/15 15:51:27 pooka Exp $
 #
 # Copyright (c) 1994, 1996, 2000 Christopher G. Demetriou
 # All rights reserved.
@@ -522,7 +522,8 @@
 
 	printf("%s rump_%s(", returntype, funcstdname) > rumpcallshdr
 	for (i = 1; i < argc; i++)
-		printf("%s, ", argtype[i]) > rumpcallshdr
+		if (argname[i] != "PAD")
+			printf("%s, ", argtype[i]) > rumpcallshdr
 	printf("%s)", argtype[argc]) > rumpcallshdr
 	if (wantrename)
 		printf(" __RENAME(rump_%s)", funcname) > rumpcallshdr
@@ -607,13 +608,15 @@
 	# need a local prototype, we export the re-re-named one in .h
 	printf("\n%s rump_%s(", returntype, funcname) > rumpcalls
 	for (i = 1; i < argc; i++) {
-		printf("%s, ", argtype[i]) > rumpcalls
+		if (argname[i] != "PAD")
+			printf("%s, ", argtype[i]) > rumpcalls
 	}
 	printf("%s);", argtype[argc]) > rumpcalls
 
 	printf("\n%s\nrump_%s(", returntype, funcname) > rumpcalls
 	for (i = 1; i < argc; i++) {
-		printf("%s %s, ", argtype[i], argname[i]) > rumpcalls
+		if (argname[i] != "PAD")
+			printf("%s %s, ", argtype[i], argname[i]) > rumpcalls
 	}
 	printf("%s %s)\n", argtype[argc], argname[argc]) > rumpcalls
 	printf("{\n\tregister_t retval = 0;\n\tint error = 0;\n") > rumpcalls
@@ -626,8 +629,13 @@
 		printf("\tstruct %s%s_args callarg;\n\n",compatwrap_,funcname) \
 		    > rumpcalls
 		for (i = 1; i <= argc; i++) {
-			printf("\tSPARG(&callarg, %s) = %s;\n", \
-			    argname[i], argname[i]) > rumpcalls
+			if (argname[i] == "PAD") {
+				printf("\tSPARG(&callarg, %s) = 0;\n", \
+				    argname[i]) > rumpcalls
+			} else {
+				printf("\tSPARG(&callarg, %s) = %s;\n", \
+				    argname[i], argname[i]) > rumpcalls
+			}
 		}
 		printf("\n") > rumpcalls
 	} else {

Index: src/sys/kern/syscalls.master
diff -u src/sys/kern/syscalls.master:1.226 src/sys/kern/syscalls.master:1.227
--- src/sys/kern/syscalls.master:1.226	Sat Mar 28 16:33:40 2009
+++ src/sys/kern/syscalls.master	Fri May 15 15:51:27 2009
@@ -1,4 +1,4 @@
-	$NetBSD: syscalls.master,v 1.226 2009/03/28 16:33:40 pooka Exp $
+	$NetBSD: syscalls.master,v 1.227 2009/05/15 15:51:27 pooka Exp $
 
 ;	@(#)syscalls.master	8.2 (Berkeley) 1/13/94
 
@@ -26,6 +26,9 @@
 ;	INDIR	included, but don't define the syscall args structure,
 ;		and allow it to be "really" varargs.
 ;
+; arguments:
+;	PAD	argument not part of the C interface, used only for padding
+;
 ; The compat options are defined in the syscalls.conf file, and the
 ; compat option name is prefixed to the syscall name.  Other than
 ; that, they're like NODEF (for 'compat' options), or STD (for
@@ -336,9 +339,9 @@
 #endif
 172	UNIMPL
 173	STD 	 RUMP	{ ssize_t|sys||pread(int fd, void *buf, \
-			    size_t nbyte, int pad, off_t offset); }
+			    size_t nbyte, int PAD, off_t offset); }
 174	STD 	 RUMP	{ ssize_t|sys||pwrite(int fd, const void *buf, \
-			    size_t nbyte, int pad, off_t offset); }
+			    size_t nbyte, int PAD, off_t offset); }
 ; For some reason, ntp_gettime doesn't want to raise SIGSYS when it's excluded.
 175	COMPAT_30	{ int|sys||ntp_gettime(struct ntptimeval30 *ntvp); }
 #if defined(NTP) || !defined(_KERNEL_OPT)
@@ -384,14 +387,14 @@
 196	COMPAT_12 MODULAR { int|sys||getdirentries(int fd, char *buf, \
 			    u_int count, long *basep); }
 197	STD 		{ void *|sys||mmap(void *addr, size_t len, int prot, \
-			    int flags, int fd, long pad, off_t pos); }
+			    int flags, int fd, long PAD, off_t pos); }
 198	INDIR		{ quad_t|sys||__syscall(quad_t code, \
 			    ... register_t args[SYS_MAXSYSARGS]); }
-199	STD 	 RUMP	{ off_t|sys||lseek(int fd, int pad, off_t offset, \
+199	STD 	 RUMP	{ off_t|sys||lseek(int fd, int PAD, off_t offset, \
 			    int whence); }
-200	STD 	 RUMP	{ int|sys||truncate(const char *path, int pad, \
+200	STD 	 RUMP	{ int|sys||truncate(const char *path, int PAD, \
 			    off_t length); }
-201	STD 	 RUMP	{ int|sys||ftruncate(int fd, int pad, off_t length); }
+201	STD 	 RUMP	{ int|sys||ftruncate(int fd, int PAD, off_t length); }
 202	STD	 RUMP 	{ int|sys||__sysctl(const int *name, u_int namelen, \
 			    void *old, size_t *oldlenp, const void *new, \
 			    size_t newlen); }
@@ -554,10 +557,10 @@
 			    int facs, int pid); }
 289	STD 		{ ssize_t|sys||preadv(int fd, \
 			    const struct iovec *iovp, int iovcnt, \
-			    int pad, off_t offset); }
+			    int PAD, off_t offset); }
 290	STD 		{ ssize_t|sys||pwritev(int fd, \
 			    const struct iovec *iovp, int iovcnt, \
-			    int pad, off_t offset); }
+			    int PAD, off_t offset); }
 291	COMPAT_16 MODULAR { int|sys|14|sigaction(int signum, \
 			    const struct sigaction *nsa, \
 			    struct sigaction *osa); }
@@ -794,7 +797,7 @@
 			    psetid_t *opsid); }
 415	STD 		{ int|sys||_pset_bind(idtype_t idtype, id_t first_id, \
 			    id_t second_id, psetid_t psid, psetid_t *opsid); }
-416	STD 		{ int|sys|50|posix_fadvise(int fd, int pad, \
+416	STD 		{ int|sys|50|posix_fadvise(int fd, int PAD, \
 			    off_t offset, off_t len, int advice); }
 417	STD  RUMP	{ int|sys|50|select(int nd, fd_set *in, fd_set *ou, \
 			    fd_set *ex, struct timeval *tv); }

Reply via email to