From 3d10f77c92ab399a462bd6f74cd6211f31f7251e Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Wed, 30 Aug 2006 19:29:16 +0000 Subject: [PATCH] - It should now be safe to remove the V86 ESP0 hack, since V86 mode works fine (tested on VMWare/QEmu). svn path=/trunk/; revision=23809 --- reactos/ntoskrnl/include/internal/ke.h | 8 ++++++++ reactos/ntoskrnl/ke/bug.c | 13 ++----------- reactos/ntoskrnl/ke/i386/ctxswitch.S | 10 ---------- reactos/ntoskrnl/ke/i386/thread.c | 8 -------- 4 files changed, 10 insertions(+), 29 deletions(-) diff --git a/reactos/ntoskrnl/include/internal/ke.h b/reactos/ntoskrnl/include/internal/ke.h index 3fdbe2066ee..13ebe848318 100644 --- a/reactos/ntoskrnl/include/internal/ke.h +++ b/reactos/ntoskrnl/include/internal/ke.h @@ -49,6 +49,13 @@ typedef struct _DISPATCH_INFO PKINTERRUPT_ROUTINE *FlatDispatch; } DISPATCH_INFO, *PDISPATCH_INFO; +typedef PCHAR +(NTAPI *PKE_BUGCHECK_UNICODE_TO_ANSI)( + IN PUNICODE_STRING Unicode, + IN PCHAR Ansi, + IN ULONG Length +); + struct _KIRQ_TRAPFRAME; struct _KPCR; struct _KPRCB; @@ -76,6 +83,7 @@ extern ULONG KeI386EFlagsAndMaskV86; extern ULONG KeI386EFlagsOrMaskV86; extern BOOLEAN KeI386VirtualIntExtensions; extern KIDTENTRY KiIdt[]; +extern FAST_MUTEX KernelAddressSpaceLock; /* MACROS *************************************************************************/ diff --git a/reactos/ntoskrnl/ke/bug.c b/reactos/ntoskrnl/ke/bug.c index 31ef95d2a07..10ddb3eb2fe 100644 --- a/reactos/ntoskrnl/ke/bug.c +++ b/reactos/ntoskrnl/ke/bug.c @@ -24,12 +24,10 @@ HalReleaseDisplayOwnership( VOID ); -extern FAST_MUTEX KernelAddressSpaceLock; - /* GLOBALS *******************************************************************/ -LIST_ENTRY BugcheckCallbackListHead = {NULL,NULL}; -LIST_ENTRY BugcheckReasonCallbackListHead = {NULL,NULL}; +LIST_ENTRY BugcheckCallbackListHead; +LIST_ENTRY BugcheckReasonCallbackListHead; ULONG KeBugCheckActive, KeBugCheckOwner; LONG KeBugCheckOwnerRecursionCount; PRTL_MESSAGE_RESOURCE_DATA KiBugCodeMessages; @@ -38,13 +36,6 @@ ULONG KiHardwareTrigger; PUNICODE_STRING KiBugCheckDriver; ULONG_PTR KiBugCheckData[5]; -typedef PCHAR -(NTAPI *PKE_BUGCHECK_UNICODE_TO_ANSI)( - IN PUNICODE_STRING Unicode, - IN PCHAR Ansi, - IN ULONG Length -); - /* PRIVATE FUNCTIONS *********************************************************/ BOOLEAN diff --git a/reactos/ntoskrnl/ke/i386/ctxswitch.S b/reactos/ntoskrnl/ke/i386/ctxswitch.S index 1dc070b4eb0..b2fa214a489 100644 --- a/reactos/ntoskrnl/ke/i386/ctxswitch.S +++ b/reactos/ntoskrnl/ke/i386/ctxswitch.S @@ -299,11 +299,6 @@ BadThread: /* Save the Exception list */ push [ebx+KPCR_EXCEPTION_LIST] -#if WE_DO_NOT_SPEAK_ABOUT_THE_V86_HACK // V86 HACK - mov ecx, [ebx+KPCR_TSS] - push [ecx+KTSS_ESP0] -#endif - /* DPC shouldn't be active */ cmp byte ptr [ebx+KPCR_PRCB_DPC_ROUTINE_ACTIVE], 0 jnz BugCheckDpc @@ -398,11 +393,6 @@ SameProcess: inc dword ptr [esi+KTHREAD_CONTEXT_SWITCHES] //inc dword ptr [esi+KPRC_PRCB_CONTEXT_SWITCHES] -#if WE_DO_NOT_SPEAK_ABOUT_THE_V86_HACK - mov ebp, [ebx+KPCR_TSS] - pop [ebp+KTSS_ESP0] -#endif - /* Restore exception list */ pop [ebx+KPCR_EXCEPTION_LIST] diff --git a/reactos/ntoskrnl/ke/i386/thread.c b/reactos/ntoskrnl/ke/i386/thread.c index 01898a57c86..b7469485525 100644 --- a/reactos/ntoskrnl/ke/i386/thread.c +++ b/reactos/ntoskrnl/ke/i386/thread.c @@ -14,9 +14,6 @@ typedef struct _KSHARED_CTXSWITCH_FRAME { -#if WE_DO_NOT_SPEAK_ABOUT_THE_V86_HACK // V86 HACK - ULONG_PTR Esp0; -#endif PVOID ExceptionList; KIRQL WaitIrql; PVOID RetEip; @@ -236,11 +233,6 @@ Ke386InitThreadWithContext(PKTHREAD Thread, CtxSwitchFrame->RetEip = KiThreadStartup; CtxSwitchFrame->WaitIrql = APC_LEVEL; CtxSwitchFrame->ExceptionList = (PVOID)0xFFFFFFFF; -#if WE_DO_NOT_SPEAK_ABOUT_THE_V86_HACK // V86 HACK - CtxSwitchFrame->Esp0 = (ULONG_PTR)Thread->InitialStack - - sizeof(FX_SAVE_AREA) - - 0x10; -#endif /* Save back the new value of the kernel stack. */ DPRINT("Final Kernel Stack: %x \n", CtxSwitchFrame);