Note that trap #1 is compat_13_sigreturn, and give trap #3 to syscalls

which require special handling, e.g. sigreturn on m68k.

This differs from the old sigreturn trap in that we require the syscall
number to be in register d0, just like the regular syscall entry point.
This will allow sigreturn to be versioned in the future without the need
to allocate another trap vector.
This commit is contained in:
thorpej 1998-09-30 22:14:11 +00:00
parent ad1f9288a2
commit 38084c6615
9 changed files with 34 additions and 33 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: vectors.s,v 1.9 1996/05/09 20:30:53 is Exp $ */
/* $NetBSD: vectors.s,v 1.10 1998/09/30 22:14:11 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah
@ -81,9 +81,9 @@ Lvectab:
.long _lev6intr /* 30: level 6 interrupt autovector */
.long _lev7intr /* 31: level 7 interrupt autovector */
.long _trap0 /* 32: syscalls */
.long _trap1 /* 33: sigreturn syscall or breakpoint */
.long _trap2 /* 34: breakpoint or sigreturn syscall */
.long _illinst /* 35: TRAP instruction vector */
.long _trap1 /* 33: compat_13_sigreturn or breakpoint */
.long _trap2 /* 34: breakpoint or compat_13_sigreturn */
.long _trap3 /* 35: special handling syscalls */
.long _illinst /* 36: TRAP instruction vector */
.long _illinst /* 37: TRAP instruction vector */
.long _illinst /* 38: TRAP instruction vector */

View File

@ -1,4 +1,4 @@
/* $NetBSD: vectors.s,v 1.9 1997/07/15 08:25:43 leo Exp $ */
/* $NetBSD: vectors.s,v 1.10 1998/09/30 22:14:11 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah
@ -81,9 +81,9 @@ _autovects:
.long _lev6intr | 30: level 6 interrupt autovector
.long _lev7intr | 31: level 7 interrupt autovector
.long _trap0 | 32: syscalls
.long _trap1 | 33: sigreturn syscall or breakpoint
.long _trap2 | 34: breakpoint or sigreturn syscall
.long _illinst | 35: TRAP instruction vector
.long _trap1 | 33: compat_13_sigreturn or breakpoint
.long _trap2 | 34: breakpoint or compat_13_sigreturn
.long _trap3 | 35: special handling syscalls
.long _illinst | 36: TRAP instruction vector
.long _illinst | 37: TRAP instruction vector
.long _illinst | 38: TRAP instruction vector

View File

@ -1,4 +1,4 @@
| $NetBSD: vectors.s,v 1.12 1997/07/14 19:18:32 thorpej Exp $
| $NetBSD: vectors.s,v 1.13 1998/09/30 22:14:12 thorpej Exp $
| Copyright (c) 1997 Jason R. Thorpe. All rights reserved.
| Copyright (c) 1988 University of Utah
@ -86,9 +86,9 @@ GLOBAL(vectab)
VECTOR(lev6intr) /* 30: level 6 interrupt autovector */
VECTOR(lev7intr) /* 31: level 7 interrupt autovector */
VECTOR(trap0) /* 32: syscalls */
VECTOR(trap1) /* 33: sigreturn syscall or breakpoint */
VECTOR(trap2) /* 34: breakpoint or sigreturn syscall */
VECTOR(illinst) /* 35: TRAP instruction vector */
VECTOR(trap1) /* 33: compat_13_sigreturn or breakpoint */
VECTOR(trap2) /* 34: breakpoint or compat_13_sigreturn */
VECTOR(trap3) /* 35: special handling syscalls */
VECTOR(illinst) /* 36: TRAP instruction vector */
VECTOR(illinst) /* 37: TRAP instruction vector */
VECTOR(illinst) /* 38: TRAP instruction vector */

View File

@ -1,4 +1,4 @@
| $NetBSD: vectors.s,v 1.10 1998/08/12 06:58:42 scottr Exp $
| $NetBSD: vectors.s,v 1.11 1998/09/30 22:14:12 thorpej Exp $
| Copyright (c) 1988 University of Utah
| Copyright (c) 1990 Regents of the University of California.
@ -84,9 +84,9 @@ GLOBAL(vectab)
VECTOR(intrhand) /* 30: level 6 interrupt autovector */
VECTOR(lev7intr) /* 31: level 7 interrupt autovector */
VECTOR(trap0) /* 32: syscalls */
VECTOR(trap1) /* 33: sigreturn syscall or breakpoint */
VECTOR(trap2) /* 34: breakpoint or sigreturn syscall */
VECTOR(illinst) /* 35: TRAP instruction vector */
VECTOR(trap1) /* 33: compat_13_sigreturn or breakpoint */
VECTOR(trap2) /* 34: breakpoint or compat_13_sigreturn */
VECTOR(trap3) /* 35: special handling syscalls */
VECTOR(illinst) /* 36: TRAP instruction vector */
VECTOR(illinst) /* 37: TRAP instruction vector */
VECTOR(illinst) /* 38: TRAP instruction vector */

View File

@ -1,4 +1,4 @@
| $NetBSD: vectors.s,v 1.3 1996/05/09 21:09:20 chuck Exp $
| $NetBSD: vectors.s,v 1.4 1998/09/30 22:14:12 thorpej Exp $
| Copyright (c) 1988 University of Utah
| Copyright (c) 1990, 1993
@ -79,9 +79,9 @@ _vectab:
.long _intrhand_autovec /* 30: level 6 interrupt autovector */
.long _lev7intr /* 31: level 7 interrupt autovector */
.long _trap0 /* 32: syscalls */
.long _trap1 /* 33: sigreturn syscall or breakpoint */
.long _trap2 /* 34: breakpoint or sigreturn syscall */
.long _illinst /* 35: TRAP instruction vector */
.long _trap1 /* 33: compat_13_sigreturn or breakpoint */
.long _trap2 /* 34: breakpoint or compat_13_sigreturn */
.long _trap3 /* 35: special handling syscalls */
.long _illinst /* 36: TRAP instruction vector */
.long _illinst /* 37: TRAP instruction vector */
.long _illinst /* 38: TRAP instruction vector */

View File

@ -1,4 +1,4 @@
| $NetBSD: vectors.s,v 1.1.1.1 1998/06/09 07:53:06 dbj Exp $
| $NetBSD: vectors.s,v 1.2 1998/09/30 22:14:12 thorpej Exp $
| Copyright (c) 1988 University of Utah
| Copyright (c) 1990 Regents of the University of California.
@ -84,9 +84,9 @@ GLOBAL(vectab)
VECTOR(intrhand_autovec)/* 30: level 6 interrupt autovector */
VECTOR(lev7intr) /* 31: level 7 interrupt autovector */
VECTOR(trap0) /* 32: syscalls */
VECTOR(trap1) /* 33: sigreturn syscall or breakpoint */
VECTOR(trap2) /* 34: breakpoint or sigreturn syscall */
VECTOR(illinst) /* 35: TRAP instruction vector */
VECTOR(trap1) /* 33: compat_13_sigreturn or breakpoint */
VECTOR(trap2) /* 34: breakpoint or compat_13_sigreturn */
VECTOR(trap3) /* 35: special handling syscalls */
VECTOR(illinst) /* 36: TRAP instruction vector */
VECTOR(illinst) /* 37: TRAP instruction vector */
VECTOR(illinst) /* 38: TRAP instruction vector */

View File

@ -1,4 +1,4 @@
/* $NetBSD: vector.c,v 1.17 1997/01/27 19:41:21 gwr Exp $ */
/* $NetBSD: vector.c,v 1.18 1998/09/30 22:14:13 thorpej Exp $ */
/*-
* Copyright (c) 1996 The NetBSD Foundation, Inc.
@ -91,10 +91,10 @@ void *vector_table[NVECTORS] = {
_isr_autovec, /* 29: level 5 interrupt autovector */
_isr_autovec, /* 30: level 6 interrupt autovector */
_isr_autovec, /* 31: level 7 interrupt autovector */
trap0, /* 32: syscalls (at least on hp300) */
trap1, /* 33: sigreturn syscall */
trap0, /* 32: syscalls */
trap1, /* 33: compat_13_sigreturn */
trap2, /* 34: HPUX breakpoint */
illinst, /* 35: TRAP instruction vector */
trap3, /* 35: special handling syscalls */
illinst, /* 36: TRAP instruction vector */
illinst, /* 37: TRAP instruction vector */
illinst, /* 38: TRAP instruction vector */

View File

@ -1,4 +1,4 @@
/* $NetBSD: vector.h,v 1.12 1997/01/27 19:41:22 gwr Exp $ */
/* $NetBSD: vector.h,v 1.13 1998/09/30 22:14:13 thorpej Exp $ */
/*-
* Copyright (c) 1996 The NetBSD Foundation, Inc.
@ -60,6 +60,7 @@ void trap1 __P((void));
void trap12 __P((void));
void trap15 __P((void));
void trap2 __P((void));
void trap3 __P((void));
void trapvinst __P((void));
void zerodiv __P((void));
void fpfault __P((void));

View File

@ -1,4 +1,4 @@
| $NetBSD: vectors.s,v 1.3 1998/06/30 11:59:13 msaitoh Exp $
| $NetBSD: vectors.s,v 1.4 1998/09/30 22:14:13 thorpej Exp $
| Copyright (c) 1988 University of Utah
| Copyright (c) 1990, 1993
@ -82,9 +82,9 @@ _vectab:
.long _lev6intr /* 30: level 6 interrupt autovector */
.long _lev7intr /* 31: level 7 interrupt autovector */
.long _trap0 /* 32: syscalls */
.long _trap1 /* 33: sigreturn syscall or breakpoint */
.long _trap2 /* 34: breakpoint or sigreturn syscall */
.long _illinst /* 35: TRAP instruction vector */
.long _trap1 /* 33: compat_13_sigreturn or breakpoint */
.long _trap2 /* 34: breakpoint or compat_13_sigreturn */
.long _trap3 /* 35: special handling syscalls */
.long _illinst /* 36: TRAP instruction vector */
.long _illinst /* 37: TRAP instruction vector */
.long _illinst /* 38: TRAP instruction vector */