Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-1-5]: src/sys/arch/i386/i386 Pull up revision 1.28 (requested by ...



details:   https://anonhg.NetBSD.org/src/rev/8b50b9b276bc
branches:  netbsd-1-5
changeset: 491918:8b50b9b276bc
user:      he <he%NetBSD.org@localhost>
date:      Sun Jun 17 22:26:52 2001 +0000

description:
Pull up revision 1.28 (requested by sommerfeld):
  Add %fs/%gs to trap frame and save/restore them on trap/interupt/
  syscall entry from userspace.

  Remove special-case ``by hand'' validation of %fs/%gs register
  values s well as special handling of them in various signal
  handling paths.  Now, like %ds and %es, they are validated by
  the hardware on return to userland.

  This paves the way for the use of %fs for per-cpu data on multi-
  processor systems, and fixes an otherwise difficult-to-fix
  interaction between threads/clone(2) and USER_LDT.

diffstat:

 sys/arch/i386/i386/genassym.cf |  13 +------------
 1 files changed, 1 insertions(+), 12 deletions(-)

diffs (43 lines):

diff -r 73ef212513e7 -r 8b50b9b276bc sys/arch/i386/i386/genassym.cf
--- a/sys/arch/i386/i386/genassym.cf    Sun Jun 17 22:26:49 2001 +0000
+++ b/sys/arch/i386/i386/genassym.cf    Sun Jun 17 22:26:52 2001 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: genassym.cf,v 1.19.4.2 2001/03/30 22:29:23 he Exp $
+#      $NetBSD: genassym.cf,v 1.19.4.3 2001/06/17 22:26:52 he Exp $
 
 #
 # Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -159,8 +159,6 @@
 define PCB_CR3                 offsetof(struct pcb, pcb_cr3)
 define PCB_EBP                 offsetof(struct pcb, pcb_ebp)
 define PCB_ESP                 offsetof(struct pcb, pcb_esp)
-define PCB_FS                  offsetof(struct pcb, pcb_fs)
-define PCB_GS                  offsetof(struct pcb, pcb_gs)
 define PCB_CR0                 offsetof(struct pcb, pcb_cr0)
 define PCB_LDT_SEL             offsetof(struct pcb, pcb_ldt_sel)
 define PCB_ONFAULT             offsetof(struct pcb, pcb_onfault)
@@ -175,24 +173,15 @@
 
 define SIGF_HANDLER            offsetof(struct sigframe, sf_handler)
 define SIGF_SC                 offsetof(struct sigframe, sf_sc)
-define SC_FS                   offsetof(struct sigcontext, sc_fs)
-define SC_GS                   offsetof(struct sigcontext, sc_gs)
-define SC_EFLAGS               offsetof(struct sigcontext, sc_eflags)
 
 ifdef COMPAT_SVR4
 define SVR4_SIGF_HANDLER       offsetof(struct svr4_sigframe, sf_handler)
 define SVR4_SIGF_UC            offsetof(struct svr4_sigframe, sf_uc)
-define SVR4_UC_FS              offsetof(struct svr4_ucontext, uc_mcontext.greg[SVR4_X86_FS])
-define SVR4_UC_GS              offsetof(struct svr4_ucontext, uc_mcontext.greg[SVR4_X86_GS])
-define SVR4_UC_EFLAGS          offsetof(struct svr4_ucontext, uc_mcontext.greg[SVR4_X86_EFL])
 endif
 
 ifdef COMPAT_LINUX
 define LINUX_SIGF_HANDLER      offsetof(struct linux_sigframe, sf_handler)
 define LINUX_SIGF_SC           offsetof(struct linux_sigframe, sf_sc)
-define LINUX_SC_FS             offsetof(struct linux_sigcontext, sc_fs)
-define LINUX_SC_GS             offsetof(struct linux_sigcontext, sc_gs)
-define LINUX_SC_EFLAGS         offsetof(struct linux_sigcontext, sc_eflags)
 endif
 
 ifdef COMPAT_FREEBSD



Home | Main Index | Thread Index | Old Index