Handle Linux signal tramp code differently. Some changes because of the

now seperate Linux signal trampoline code. Add linux_sigreturn to
syscalls.master.
This commit is contained in:
fvdl 1995-04-07 22:23:22 +00:00
parent 1b863c2eca
commit 623f1e3986
13 changed files with 47 additions and 26 deletions

View File

@ -1,4 +1,4 @@
$NetBSD: syscalls.master,v 1.3 1995/03/10 22:55:14 fvdl Exp $ $NetBSD: syscalls.master,v 1.4 1995/04/07 22:23:28 fvdl Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@ -37,6 +37,7 @@
#include <sys/mount.h> #include <sys/mount.h>
#include <sys/syscallargs.h> #include <sys/syscallargs.h>
#include <compat/linux/linux_types.h> #include <compat/linux/linux_types.h>
#include <machine/linux_machdep.h>
#include <compat/linux/linux_syscallargs.h> #include <compat/linux/linux_syscallargs.h>
0 NOARGS { int nosys(void); } syscall 0 NOARGS { int nosys(void); } syscall
@ -170,7 +171,7 @@
117 STD { int linux_ipc(int what, int a1, int a2, int a3, \ 117 STD { int linux_ipc(int what, int a1, int a2, int a3, \
caddr_t ptr); } caddr_t ptr); }
118 NOARGS { int fsync(int fd); } 118 NOARGS { int fsync(int fd); }
119 UNIMPL linux_sigreturn 119 STD { int linux_sigreturn(struct linux_sigcontext *scp); }
120 UNIMPL linux_clone 120 UNIMPL linux_clone
121 NOARGS { int compat_09_setdomainname(char *name, int len); } 121 NOARGS { int compat_09_setdomainname(char *name, int len); }
122 STD { int linux_uname(struct linux_utsname *up); } 122 STD { int linux_uname(struct linux_utsname *up); }

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_exec.c,v 1.2 1995/03/05 23:23:37 fvdl Exp $ */ /* $NetBSD: linux_exec.c,v 1.3 1995/04/07 22:23:22 fvdl Exp $ */
/* /*
* Copyright (c) 1995 Frank van der Linden * Copyright (c) 1995 Frank van der Linden
@ -92,8 +92,11 @@ exec_linux_aout_makecmds(p, epp)
error = exec_linux_aout_prep_omagic(p, epp); error = exec_linux_aout_prep_omagic(p, epp);
break; break;
} }
if (error == 0) if (error == 0) {
epp->ep_sigcode = linux_sigcode;
epp->ep_esigcode = linux_esigcode;
epp->ep_emul = EMUL_LINUX; epp->ep_emul = EMUL_LINUX;
}
return error; return error;
} }

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_exec.h,v 1.1 1995/02/28 23:25:37 fvdl Exp $ */ /* $NetBSD: linux_exec.h,v 1.2 1995/04/07 22:23:26 fvdl Exp $ */
/* /*
* Copyright (c) 1995 Frank van der Linden * Copyright (c) 1995 Frank van der Linden
@ -67,4 +67,6 @@
int exec_linux_aout_makecmds __P((struct proc *, struct exec_package *)); int exec_linux_aout_makecmds __P((struct proc *, struct exec_package *));
extern char linux_sigcode[], linux_esigcode[];
#endif /* !_LINUX_EXEC_H */ #endif /* !_LINUX_EXEC_H */

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_exec_aout.c,v 1.2 1995/03/05 23:23:37 fvdl Exp $ */ /* $NetBSD: linux_exec_aout.c,v 1.3 1995/04/07 22:23:22 fvdl Exp $ */
/* /*
* Copyright (c) 1995 Frank van der Linden * Copyright (c) 1995 Frank van der Linden
@ -92,8 +92,11 @@ exec_linux_aout_makecmds(p, epp)
error = exec_linux_aout_prep_omagic(p, epp); error = exec_linux_aout_prep_omagic(p, epp);
break; break;
} }
if (error == 0) if (error == 0) {
epp->ep_sigcode = linux_sigcode;
epp->ep_esigcode = linux_esigcode;
epp->ep_emul = EMUL_LINUX; epp->ep_emul = EMUL_LINUX;
}
return error; return error;
} }

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_exec_elf32.c,v 1.2 1995/03/05 23:23:37 fvdl Exp $ */ /* $NetBSD: linux_exec_elf32.c,v 1.3 1995/04/07 22:23:22 fvdl Exp $ */
/* /*
* Copyright (c) 1995 Frank van der Linden * Copyright (c) 1995 Frank van der Linden
@ -92,8 +92,11 @@ exec_linux_aout_makecmds(p, epp)
error = exec_linux_aout_prep_omagic(p, epp); error = exec_linux_aout_prep_omagic(p, epp);
break; break;
} }
if (error == 0) if (error == 0) {
epp->ep_sigcode = linux_sigcode;
epp->ep_esigcode = linux_esigcode;
epp->ep_emul = EMUL_LINUX; epp->ep_emul = EMUL_LINUX;
}
return error; return error;
} }

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_util.h,v 1.2 1995/03/05 23:23:50 fvdl Exp $ */ /* $NetBSD: linux_util.h,v 1.3 1995/04/07 22:23:27 fvdl Exp $ */
/* /*
* Copyright (c) 1994 Christos Zoulas * Copyright (c) 1994 Christos Zoulas
@ -48,8 +48,8 @@
static __inline caddr_t static __inline caddr_t
stackgap_init() stackgap_init()
{ {
extern char sigcode[], esigcode[]; extern char linux_sigcode[], linux_esigcode[];
#define szsigcode ((caddr_t)(esigcode - sigcode)) #define szsigcode ((caddr_t)(linux_esigcode - linux_sigcode))
return STACKGAPBASE; return STACKGAPBASE;
} }

View File

@ -1,4 +1,4 @@
$NetBSD: syscalls.master,v 1.3 1995/03/10 22:55:14 fvdl Exp $ $NetBSD: syscalls.master,v 1.4 1995/04/07 22:23:28 fvdl Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@ -37,6 +37,7 @@
#include <sys/mount.h> #include <sys/mount.h>
#include <sys/syscallargs.h> #include <sys/syscallargs.h>
#include <compat/linux/linux_types.h> #include <compat/linux/linux_types.h>
#include <machine/linux_machdep.h>
#include <compat/linux/linux_syscallargs.h> #include <compat/linux/linux_syscallargs.h>
0 NOARGS { int nosys(void); } syscall 0 NOARGS { int nosys(void); } syscall
@ -170,7 +171,7 @@
117 STD { int linux_ipc(int what, int a1, int a2, int a3, \ 117 STD { int linux_ipc(int what, int a1, int a2, int a3, \
caddr_t ptr); } caddr_t ptr); }
118 NOARGS { int fsync(int fd); } 118 NOARGS { int fsync(int fd); }
119 UNIMPL linux_sigreturn 119 STD { int linux_sigreturn(struct linux_sigcontext *scp); }
120 UNIMPL linux_clone 120 UNIMPL linux_clone
121 NOARGS { int compat_09_setdomainname(char *name, int len); } 121 NOARGS { int compat_09_setdomainname(char *name, int len); }
122 STD { int linux_uname(struct linux_utsname *up); } 122 STD { int linux_uname(struct linux_utsname *up); }

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_exec.h,v 1.1 1995/02/28 23:25:37 fvdl Exp $ */ /* $NetBSD: linux_exec.h,v 1.2 1995/04/07 22:23:26 fvdl Exp $ */
/* /*
* Copyright (c) 1995 Frank van der Linden * Copyright (c) 1995 Frank van der Linden
@ -67,4 +67,6 @@
int exec_linux_aout_makecmds __P((struct proc *, struct exec_package *)); int exec_linux_aout_makecmds __P((struct proc *, struct exec_package *));
extern char linux_sigcode[], linux_esigcode[];
#endif /* !_LINUX_EXEC_H */ #endif /* !_LINUX_EXEC_H */

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_util.h,v 1.2 1995/03/05 23:23:50 fvdl Exp $ */ /* $NetBSD: linux_util.h,v 1.3 1995/04/07 22:23:27 fvdl Exp $ */
/* /*
* Copyright (c) 1994 Christos Zoulas * Copyright (c) 1994 Christos Zoulas
@ -48,8 +48,8 @@
static __inline caddr_t static __inline caddr_t
stackgap_init() stackgap_init()
{ {
extern char sigcode[], esigcode[]; extern char linux_sigcode[], linux_esigcode[];
#define szsigcode ((caddr_t)(esigcode - sigcode)) #define szsigcode ((caddr_t)(linux_esigcode - linux_sigcode))
return STACKGAPBASE; return STACKGAPBASE;
} }

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_exec.c,v 1.2 1995/03/05 23:23:37 fvdl Exp $ */ /* $NetBSD: linux_exec.c,v 1.3 1995/04/07 22:23:22 fvdl Exp $ */
/* /*
* Copyright (c) 1995 Frank van der Linden * Copyright (c) 1995 Frank van der Linden
@ -92,8 +92,11 @@ exec_linux_aout_makecmds(p, epp)
error = exec_linux_aout_prep_omagic(p, epp); error = exec_linux_aout_prep_omagic(p, epp);
break; break;
} }
if (error == 0) if (error == 0) {
epp->ep_sigcode = linux_sigcode;
epp->ep_esigcode = linux_esigcode;
epp->ep_emul = EMUL_LINUX; epp->ep_emul = EMUL_LINUX;
}
return error; return error;
} }

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_exec.h,v 1.1 1995/02/28 23:25:37 fvdl Exp $ */ /* $NetBSD: linux_exec.h,v 1.2 1995/04/07 22:23:26 fvdl Exp $ */
/* /*
* Copyright (c) 1995 Frank van der Linden * Copyright (c) 1995 Frank van der Linden
@ -67,4 +67,6 @@
int exec_linux_aout_makecmds __P((struct proc *, struct exec_package *)); int exec_linux_aout_makecmds __P((struct proc *, struct exec_package *));
extern char linux_sigcode[], linux_esigcode[];
#endif /* !_LINUX_EXEC_H */ #endif /* !_LINUX_EXEC_H */

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_util.h,v 1.2 1995/03/05 23:23:50 fvdl Exp $ */ /* $NetBSD: linux_util.h,v 1.3 1995/04/07 22:23:27 fvdl Exp $ */
/* /*
* Copyright (c) 1994 Christos Zoulas * Copyright (c) 1994 Christos Zoulas
@ -48,8 +48,8 @@
static __inline caddr_t static __inline caddr_t
stackgap_init() stackgap_init()
{ {
extern char sigcode[], esigcode[]; extern char linux_sigcode[], linux_esigcode[];
#define szsigcode ((caddr_t)(esigcode - sigcode)) #define szsigcode ((caddr_t)(linux_esigcode - linux_sigcode))
return STACKGAPBASE; return STACKGAPBASE;
} }

View File

@ -1,4 +1,4 @@
$NetBSD: syscalls.master,v 1.3 1995/03/10 22:55:14 fvdl Exp $ $NetBSD: syscalls.master,v 1.4 1995/04/07 22:23:28 fvdl Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@ -37,6 +37,7 @@
#include <sys/mount.h> #include <sys/mount.h>
#include <sys/syscallargs.h> #include <sys/syscallargs.h>
#include <compat/linux/linux_types.h> #include <compat/linux/linux_types.h>
#include <machine/linux_machdep.h>
#include <compat/linux/linux_syscallargs.h> #include <compat/linux/linux_syscallargs.h>
0 NOARGS { int nosys(void); } syscall 0 NOARGS { int nosys(void); } syscall
@ -170,7 +171,7 @@
117 STD { int linux_ipc(int what, int a1, int a2, int a3, \ 117 STD { int linux_ipc(int what, int a1, int a2, int a3, \
caddr_t ptr); } caddr_t ptr); }
118 NOARGS { int fsync(int fd); } 118 NOARGS { int fsync(int fd); }
119 UNIMPL linux_sigreturn 119 STD { int linux_sigreturn(struct linux_sigcontext *scp); }
120 UNIMPL linux_clone 120 UNIMPL linux_clone
121 NOARGS { int compat_09_setdomainname(char *name, int len); } 121 NOARGS { int compat_09_setdomainname(char *name, int len); }
122 STD { int linux_uname(struct linux_utsname *up); } 122 STD { int linux_uname(struct linux_utsname *up); }