Fix up the indentation.

svn path=/trunk/; revision=18042
This commit is contained in:
Filip Navara 2005-09-25 09:22:22 +00:00
parent 2f370af826
commit ceb0f5f1eb

View file

@ -22,66 +22,67 @@ KeRosDumpStackFrames ( PULONG Frame, ULONG FrameCount );
* @implemented * @implemented
*/ */
NTSTATUS STDCALL NTSTATUS STDCALL
NtContinue ( NtContinue(
IN PCONTEXT Context, IN PCONTEXT Context,
IN BOOLEAN TestAlert) IN BOOLEAN TestAlert)
{ {
PKTHREAD Thread = KeGetCurrentThread(); PKTHREAD Thread = KeGetCurrentThread();
PKTRAP_FRAME TrapFrame = Thread->TrapFrame; PKTRAP_FRAME TrapFrame = Thread->TrapFrame;
PKTRAP_FRAME PrevTrapFrame = (PKTRAP_FRAME)TrapFrame->Edx; PKTRAP_FRAME PrevTrapFrame = (PKTRAP_FRAME)TrapFrame->Edx;
PFX_SAVE_AREA FxSaveArea; PFX_SAVE_AREA FxSaveArea;
KIRQL oldIrql; KIRQL oldIrql;
DPRINT("NtContinue: Context: Eip=0x%x, Esp=0x%x\n", Context->Eip, Context->Esp );
PULONG Frame = 0;
__asm__("mov %%ebp, %%ebx" : "=b" (Frame) : );
DPRINT( "NtContinue(): Ebp=%x, prev/TF=%x/%x\n", Frame, Frame[0], TrapFrame );
#ifndef NDEBUG #ifndef NDEBUG
KeRosDumpStackFrames(NULL,5); DPRINT("NtContinue: Context: Eip=0x%x, Esp=0x%x\n", Context->Eip, Context->Esp );
PULONG Frame = 0;
__asm__("mov %%ebp, %%ebx" : "=b" (Frame) : );
DPRINT( "NtContinue(): Ebp=%x, prev/TF=%x/%x\n", Frame, Frame[0], TrapFrame );
KeRosDumpStackFrames(NULL,5);
#endif #endif
if ( Context == NULL ) if (Context == NULL)
{ {
DPRINT1("NtContinue called with NULL Context\n"); DPRINT1("NtContinue called with NULL Context\n");
return STATUS_INVALID_PARAMETER; return STATUS_INVALID_PARAMETER;
} }
if ( TrapFrame == NULL ) if (TrapFrame == NULL)
{ {
CPRINT("NtContinue called but TrapFrame was NULL\n"); CPRINT("NtContinue called but TrapFrame was NULL\n");
KEBUGCHECK(0); KEBUGCHECK(0);
} }
/* /*
* Copy the supplied context over the register information that was saved * Copy the supplied context over the register information that was saved
* on entry to kernel mode, it will then be restored on exit * on entry to kernel mode, it will then be restored on exit
* FIXME: Validate the context * FIXME: Validate the context
*/ */
KeContextToTrapFrame ( Context, TrapFrame ); KeContextToTrapFrame(Context, TrapFrame);
/* Put the floating point context into the thread's FX_SAVE_AREA /*
* and make sure it is reloaded when needed. * Put the floating point context into the thread's FX_SAVE_AREA
*/ * and make sure it is reloaded when needed.
FxSaveArea = (PFX_SAVE_AREA)((ULONG_PTR)Thread->InitialStack - sizeof(FX_SAVE_AREA)); */
if (KiContextToFxSaveArea(FxSaveArea, Context)) FxSaveArea = (PFX_SAVE_AREA)((ULONG_PTR)Thread->InitialStack - sizeof(FX_SAVE_AREA));
{ if (KiContextToFxSaveArea(FxSaveArea, Context))
Thread->NpxState = NPX_STATE_VALID; {
KeRaiseIrql(DISPATCH_LEVEL, &oldIrql); Thread->NpxState = NPX_STATE_VALID;
if (KeGetCurrentPrcb()->NpxThread == Thread) KeRaiseIrql(DISPATCH_LEVEL, &oldIrql);
{ if (KeGetCurrentPrcb()->NpxThread == Thread)
KeGetCurrentPrcb()->NpxThread = NULL; {
Ke386SetCr0(Ke386GetCr0() | X86_CR0_TS); KeGetCurrentPrcb()->NpxThread = NULL;
} Ke386SetCr0(Ke386GetCr0() | X86_CR0_TS);
else }
{ else
ASSERT((Ke386GetCr0() & X86_CR0_TS) == X86_CR0_TS); {
} ASSERT((Ke386GetCr0() & X86_CR0_TS) == X86_CR0_TS);
KeLowerIrql(oldIrql); }
} KeLowerIrql(oldIrql);
}
/* Restore the user context */ /* Restore the user context */
Thread->TrapFrame = PrevTrapFrame; Thread->TrapFrame = PrevTrapFrame;
__asm__("mov %%ebx, %%esp;\n" "jmp _KiServiceExit": : "b" (TrapFrame)); __asm__("mov %%ebx, %%esp;\n" "jmp _KiServiceExit": : "b" (TrapFrame));
return STATUS_SUCCESS; /* this doesn't actually happen b/c KeRosTrapReturn() won't return */ return STATUS_SUCCESS; /* this doesn't actually happen b/c KeRosTrapReturn() won't return */
} }