diff options
author | newton <newton@FreeBSD.org> | 1999-01-28 11:45:49 +0000 |
---|---|---|
committer | newton <newton@FreeBSD.org> | 1999-01-28 11:45:49 +0000 |
commit | 4532b2c24c57afebb7138390eb595a5937ec424e (patch) | |
tree | 540862bc1f1970e803eb6da2e4acbfca18bed03a /sys/i386/include/segments.h | |
parent | dddbbc64795e2657bb640d89695102019733f7aa (diff) | |
download | FreeBSD-src-4532b2c24c57afebb7138390eb595a5937ec424e.zip FreeBSD-src-4532b2c24c57afebb7138390eb595a5937ec424e.tar.gz |
Sun Bug ID 1251858 (on http://sunsolve1.sun.com) discusses the way that
Sun implemented iBCS2 compatibility on Solaris >= 2.6: The emulator
runs in user-mode, patching the LDT so that client programs making
syscalls through the old iBCS2 call gate get handled by the emulator
process. Unemulated syscalls therefore need their own call-gate that
bypasses the emulator. Sun chose LDT entry 4 to implement this, which
is what we've been using as LUDATA_SEL, so we need to change LUDATA_SEL
if we want to run Solaris executables.
Discussed with: Mike Smith
Diffstat (limited to 'sys/i386/include/segments.h')
-rw-r--r-- | sys/i386/include/segments.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/i386/include/segments.h b/sys/i386/include/segments.h index 894e6c5..674b0f3 100644 --- a/sys/i386/include/segments.h +++ b/sys/i386/include/segments.h @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)segments.h 7.1 (Berkeley) 5/9/91 - * $Id: segments.h,v 1.16 1997/08/18 06:58:31 charnier Exp $ + * $Id: segments.h,v 1.17 1997/08/21 06:32:49 charnier Exp $ */ #ifndef _MACHINE_SEGMENTS_H_ @@ -229,7 +229,8 @@ struct region_descriptor { #define LSYS5SIGR_SEL 1 #define L43BSDCALLS_SEL 2 /* notyet */ #define LUCODE_SEL 3 -#define LUDATA_SEL 4 +#define LSOL26CALLS_SEL 4 /* Solaris >= 2.6 system call gate */ +#define LUDATA_SEL 5 /* separate stack, es,fs,gs sels ? */ /* #define LPOSIXCALLS_SEL 5*/ /* notyet */ #define LBSDICALLS_SEL 16 /* BSDI system call gate */ |