summaryrefslogtreecommitdiff
path: root/sys/compat
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1996-01-05 13:40:54 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1996-01-05 13:40:54 +0000
commitc07ad436053bd689654d6243ec11d75696018155 (patch)
treeccb85d207d02bb6065084e8e60c60e8918e8ca0a /sys/compat
parent99c8d390856496d47699c32be49751f234aa4f27 (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.c47
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);
+}