diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1996-01-05 13:40:54 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1996-01-05 13:40:54 +0000 |
commit | c07ad436053bd689654d6243ec11d75696018155 (patch) | |
tree | ccb85d207d02bb6065084e8e60c60e8918e8ca0a /sys/compat | |
parent | 99c8d390856496d47699c32be49751f234aa4f27 (diff) |
from netbsd:
Add sigcode and esigcode to emul_ultrix, so that signal trampoline
code is set up for emul_ultrix processes.
Diffstat (limited to 'sys/compat')
-rw-r--r-- | sys/compat/ultrix/ultrix_misc.c | 47 |
1 files changed, 33 insertions, 14 deletions
diff --git a/sys/compat/ultrix/ultrix_misc.c b/sys/compat/ultrix/ultrix_misc.c index 80512eac5e3..eca5fa1ba0b 100644 --- a/sys/compat/ultrix/ultrix_misc.c +++ b/sys/compat/ultrix/ultrix_misc.c @@ -1,4 +1,4 @@ -/* $NetBSD: ultrix_misc.c,v 1.18 1995/12/26 04:23:14 jonathan Exp $ */ +/* $NetBSD: ultrix_misc.c,v 1.19 1996/01/03 21:07:33 jonathan Exp $ */ /* * Copyright (c) 1992, 1993 @@ -98,6 +98,8 @@ extern struct sysent ultrix_sysent[]; extern char *ultrix_syscallnames[]; extern void cpu_exec_ecoff_setregs __P((struct proc *, struct exec_package *, u_long, register_t *)); +extern char sigcode[], esigcode[]; + struct emul emul_ultrix = { "ultrix", NULL, @@ -109,8 +111,9 @@ struct emul emul_ultrix = { 0, copyargs, cpu_exec_ecoff_setregs, - 0, - 0, + /* 0, 0, */ + sigcode, + esigcode, }; #define GSI_PROG_ENV 1 @@ -245,17 +248,6 @@ async_daemon(p, v, retval) } #endif /* NFSCLIENT */ -ultrix_sys_sigpending(p, v, retval) - struct proc *p; - void *v; - register_t *retval; -{ - struct ultrix_sys_sigpending_args *uap = v; - int mask = p->p_siglist & p->p_sigmask; - - return (copyout((caddr_t)&mask, (caddr_t)SCARG(uap, mask), sizeof(int))); -} - #if 0 /* XXX: Temporary until sys/dir.h, include/dirent.h and sys/dirent.h are fixed */ struct dirent { @@ -610,6 +602,7 @@ ultrix_sys_exportfs(p, v, retval) return 0; } +int ultrix_sys_mknod(p, v, retval) struct proc *p; void *v; @@ -624,6 +617,18 @@ ultrix_sys_mknod(p, v, retval) } int +ultrix_sys_sigpending(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct ultrix_sys_sigpending_args *uap = v; + int mask = p->p_siglist & p->p_sigmask; + + return (copyout((caddr_t)&mask, (caddr_t)SCARG(uap, mask), sizeof(int))); +} + +int ultrix_sys_sigcleanup(p, v, retval) struct proc *p; void *v; @@ -633,3 +638,17 @@ ultrix_sys_sigcleanup(p, v, retval) return sys_sigreturn(p, (struct sys_sigreturn_args *)uap, retval); } + +int +ultrix_sys_sigreturn(p, v, retval) + struct proc *p; + void *v; + register_t *retval; +{ + struct ultrix_sys_sigcleanup_args *uap = v; + +#ifdef DEBUG + printf("ultrix sigreturn\n"); +#endif + return sys_sigreturn(p, (struct sys_sigreturn_args *)uap, retval); +} |