reactos/ntoskrnl/ke/amd64
Timo Kreuzer 05456808e8 [NTOS:KE/x64] Fix handling of non-volatiles in trap vs exception frame
The registers that are saved/restored in the trap / exception frame need to be consistent between all entry/exit points as well as the functions that convert between trap/exception frame and context. The trap frame contains only the non-volatile registers and rbp, the rest is saved in the exception frame.
The previous code didn't save rbp in the syscall handler, which led to it being clobbered when exiting though KiServiceExit2 rather than returning back to the syscall exit path. Also KeContextToTrapFrame would use rbx, rsi and rdi from the trap frame, which wouldn't be saved there by the syscall handler.
2024-04-14 16:09:20 +02:00
..
boot.S
context.c [NTOS:KE/x64] Fix handling of non-volatiles in trap vs exception frame 2024-04-14 16:09:20 +02:00
cpu.c
ctxswitch.S
except.c [NTOS:Ke/x64] Improve KiDispatchExceptionToUser 2024-04-04 18:41:39 +02:00
interrupt.c [NTOS/x64] Gracefully handle invalid Vector in KeConnectInterrupt 2024-03-02 07:30:06 +01:00
ipi.c [NTOS:KE/x64] Implement initial IPI code 2023-12-18 23:16:39 +02:00
irql.c
kiinit.c [NTOS:KE/x64] Factor out KiIntializeProcessorBootStructures 2023-12-08 20:16:51 +02:00
krnlinit.c [NTOS:KE] Fix initialization of node block for application processors 2024-01-18 22:41:46 +01:00
mproc.c
spinlock.c
stubs.c [NTOS:KE] Set IRQL to SYNCH_LEVEL when exiting from idle after the thread is ready for execution (#6386) 2024-01-20 15:55:20 +01:00
thrdini.c
trap.S [NTOS:KE/x64] Fix handling of non-volatiles in trap vs exception frame 2024-04-14 16:09:20 +02:00
traphandler.c [NTOS:KE/x64] Move setting the thread's trap frame to KiSystemCallEntry64 2024-03-31 12:12:48 +02:00
usercall.c [NTOS:KE/x64] Implement KiUserCallbackExit 2024-04-07 09:13:58 +02:00
usercall_asm.S [NTOS:KE/x64] Implement KiUserCallbackExit 2024-04-07 09:13:58 +02:00
zeropage.S