- Fixed the sysexit check. We must use a kernel mode segment to access KiFastSystemCallDisable.

- Fixed some segment limits.

svn path=/trunk/; revision=13100
This commit is contained in:
Hartmut Birr 2005-01-17 19:22:03 +00:00
parent 69688ce6ab
commit fa74b30016
2 changed files with 11 additions and 6 deletions

View file

@ -40,11 +40,16 @@ USHORT KiBootGdt[11 * 4] =
0x0, 0x0, 0x0, 0x0, /* Null */
0xffff, 0x0, 0x9a00, 0xcf, /* Kernel CS */
0xffff, 0x0, 0x9200, 0xcf, /* Kernel DS */
0x0, 0x0, 0xfa00, 0xcf, /* User CS */
0x0, 0x0, 0xf200, 0xcf, /* User DS */
#ifdef __3GB__
0xffff, 0x0, 0xfa00, 0xcb, /* User CS */
0xffff, 0x0, 0xf200, 0xcb, /* User DS */
#else
0xffff, 0x0, 0xfa00, 0xc7, /* User CS */
0xffff, 0x0, 0xf200, 0xc7, /* User DS */
#endif
0x0, 0x0, 0x0, 0x0, /* TSS */
0x1000, 0x0000, 0x9200, 0xffc0, /* PCR */
0x1000, 0x0, 0xf200, 0x0, /* TEB */
0x0fff, 0x0000, 0x9200, 0xff00, /* PCR */
0x0fff, 0x0, 0xf200, 0x0, /* TEB */
0x0, 0x0, 0x0, 0x0, /* Reserved */
0x0, 0x0, 0x0, 0x0, /* LDT */
0x0, 0x0, 0x0, 0x0 /* Trap TSS */

View file

@ -270,8 +270,8 @@ IntRet:
FastRet:
/* Is SYSEXIT Supported/Wanted? */
cmpl $1, _KiFastSystemCallDisable
je IntRet
cmpl $0, %ss:_KiFastSystemCallDisable
jnz IntRet
/* Restore FS to TIB */
mov $TEB_SELECTOR, %ecx