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