[NTOS]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Wed, 3 Mar 2010 02:27:14 +0000 (02:27 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Wed, 3 Mar 2010 02:27:14 +0000 (02:27 +0000)
commit7b6dfd6be48fd5bdb5590db3d747e248be0fcf06
tree2538657b7c7153f13f132aae7439177eda03aec6
parent85f84b8eb39a3d44ef47d14f67f7506590a0282f
[NTOS]
- Rewrite trap handler exit stubs in pure assembly, remove gcc inline assembly.
- Replace jmp to C handler with KiCallHandler macro, that expands to jmp on release builds for speed and call on debug builds to fix backtraces.
- Unroll the Syscall handler loop and use volatile keyword when reloading TrapFrame and DescriptorTable from the new stack to prevent the compiler from optimizing it away / moving it out of the loop.
- Bugcheck in KiTrap0DHandler, if the fault couldn't be resolved.
- Remove handling of V86 traps and edited traps in KiServiceExit, ASSERT to make sure they never happen.
- Replace code patching of the syscall exit handler with a function pointer.
- Use __debugbreak() instead of while(TRUE) in KiExitTrapDebugChecks

svn path=/trunk/; revision=45774
reactos/ntoskrnl/include/internal/i386/asmmacro.S
reactos/ntoskrnl/include/internal/trap_x.h
reactos/ntoskrnl/ke/i386/cpu.c
reactos/ntoskrnl/ke/i386/trap.s
reactos/ntoskrnl/ke/i386/traphdlr.c