From da3605dbea3a43379cf48fee6da798d01478c27f Mon Sep 17 00:00:00 2001 From: Marcel Moolenaar Date: Wed, 29 Sep 1999 15:01:21 +0000 Subject: [PATCH] sigset_t change (part 1 of 5) ----------------------------- Rename sigaction, sigprocmask, sigpending and sigsuspend to osigaction, osigprocmask, osigpending and osigsuspend (resp) and add new syscalls for them to support the new sisgset_t without breaking existing binaries. Change the prototype of sigaltstack to use the typedef stack_t instead of struct sigaltstack to reflect that it is SUSv2 compliant. Also, rename sigreturn to osigreturn and add a new syscall to support the modified stackframe. The change is caused by sigreturn operating on ucontext_t now and the fact that siginfo_t has been updated to conform to SUSv2. --- sys/kern/syscalls.master | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master index a0d1457cb876..fc6979a9eecc 100644 --- a/sys/kern/syscalls.master +++ b/sys/kern/syscalls.master @@ -93,19 +93,18 @@ size_t offset, u_int scale); } 45 STD BSD { int ktrace(const char *fname, int ops, int facs, \ int pid); } -46 STD POSIX { int sigaction(int signum, struct sigaction *nsa, \ - struct sigaction *osa); } +46 STD POSIX { int osigaction(int signum, struct osigaction *nsa, \ + struct osigaction *osa); } 47 STD POSIX { gid_t getgid(void); } -48 STD POSIX { int sigprocmask(int how, sigset_t mask); } +48 STD POSIX { int osigprocmask(int how, osigset_t mask); } ; XXX note nonstandard (bogus) calling convention - the libc stub passes ; us the mask, not a pointer to it, and we return the old mask as the ; (int) return value. 49 STD BSD { int getlogin(char *namebuf, u_int namelen); } 50 STD BSD { int setlogin(char *namebuf); } 51 STD BSD { int acct(char *path); } -52 STD POSIX { int sigpending(void); } -53 STD BSD { int sigaltstack(struct sigaltstack *nss, \ - struct sigaltstack *oss); } +52 STD POSIX { int osigpending(void); } +53 STD BSD { int sigaltstack(stack_t *ss, stack_t *oss); } 54 STD POSIX { int ioctl(int fd, u_long com, caddr_t data); } 55 STD BSD { int reboot(int opt); } 56 STD POSIX { int revoke(char *path); } @@ -167,7 +166,7 @@ 100 STD BSD { int getpriority(int which, int who); } 101 COMPAT BSD { int send(int s, caddr_t buf, int len, int flags); } 102 COMPAT BSD { int recv(int s, caddr_t buf, int len, int flags); } -103 STD BSD { int sigreturn(struct sigcontext *sigcntxp); } +103 STD BSD { int osigreturn(struct osigcontext *sigcntxp); } 104 STD BSD { int bind(int s, caddr_t name, int namelen); } 105 STD BSD { int setsockopt(int s, int level, int name, \ caddr_t val, int valsize); } @@ -177,7 +176,7 @@ struct sigvec *osv); } 109 COMPAT BSD { int sigblock(int mask); } 110 COMPAT BSD { int sigsetmask(int mask); } -111 STD POSIX { int sigsuspend(sigset_t mask); } +111 STD POSIX { int osigsuspend(osigset_t mask); } ; XXX note nonstandard (bogus) calling convention - the libc stub passes ; us the mask, not a pointer to it. 112 COMPAT BSD { int sigstack(struct sigstack *nss, \ @@ -477,3 +476,12 @@ 337 STD BSD { int kldsym(int fileid, int cmd, void *data); } 338 STD BSD { int jail(struct jail *jail); } 339 UNIMPL BSD pioctl +340 STD POSIX { int sigprocmask(int how, const sigset_t *set, \ + sigset_t *oset); } +341 STD POSIX { int sigsuspend(const sigset_t *sigmask); } +342 STD POSIX { int sigaction(int sig, const struct sigaction *act, \ + struct sigaction *oact); } +343 STD POSIX { int sigpending(sigset_t *set); } +344 STD BSD { int sigreturn(ucontext_t *sigcntxp); } +345 UNIMPL NOHIDE sigtimedwait +346 UNIMPL NOHIDE sigwaitinfo