version 1.135.2.4, 2017/03/20 06:57:14 |
version 1.147, 2017/07/29 06:29:31 |
|
|
#include <machine/asm.h> |
#include <machine/asm.h> |
__KERNEL_RCSID(0, "$NetBSD$"); |
__KERNEL_RCSID(0, "$NetBSD$"); |
|
|
#include "opt_compat_oldboot.h" |
|
#include "opt_copy_symtab.h" |
#include "opt_copy_symtab.h" |
#include "opt_ddb.h" |
#include "opt_ddb.h" |
#include "opt_modular.h" |
#include "opt_modular.h" |
|
|
END(savectx) |
END(savectx) |
|
|
/* |
/* |
* osyscall() |
|
* |
|
* Old call gate entry for syscall |
|
*/ |
|
IDTVEC(osyscall) |
|
#ifndef XEN |
|
/* XXX we are in trouble! interrupts be off here. */ |
|
cli /* must be first instruction */ |
|
#endif |
|
pushfl /* set eflags in trap frame */ |
|
popl 8(%esp) |
|
orl $PSL_I,8(%esp) /* re-enable ints on return to user */ |
|
pushl $7 /* size of instruction for restart */ |
|
jmp syscall1 |
|
IDTVEC_END(osyscall) |
|
|
|
/* |
|
* syscall() |
* syscall() |
* |
* |
* Trap gate entry for syscall |
* Trap gate entry for syscall |
*/ |
*/ |
IDTVEC(syscall) |
IDTVEC(syscall) |
pushl $2 /* size of instruction for restart */ |
pushl $2 /* size of instruction for restart */ |
syscall1: |
|
pushl $T_ASTFLT /* trap # for doing ASTs */ |
pushl $T_ASTFLT /* trap # for doing ASTs */ |
INTRENTRY |
INTRENTRY |
STI(%eax) |
STI(%eax) |