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); }