mirror of
https://github.com/reactos/reactos.git
synced 2024-08-01 00:58:16 +00:00
![]() FreeLdr - Goodbye Ke386EraseFlags & KeAmd64EraseFlags. Welcome __writeeflags. - Respect MSVC when generating clc (clear carry flag) instruction in PcGetTime. - Use portable __wbinvd instead of __asm__ in XboxMemInit. - Replace broken gcc assembly by portable intrinsics in WinLdrpMapApic. - Use portable Ke386SetSs and Ke386SetGs (new) in WinLdrSetProcessorContext. - The far jump in WinLdrSetProcessorContext can not be expressed in masm, so we use a (untested) far return instead. Kernel - Replace Ke386Set/GetInterruptDescriptorTable, Ke386Save/RestoreFlags, Ke386Set/GetDr, Ki386Cpuid, Ke386Rdmsr and Ke386Wrmsr by MSVC alternatives present in intrin.h. - Fixed Ke386Get/SetGlobalDescriptorTable, Ke386GetLocalDescriptorTable and Ke386GetTr -- the intrinsics were completely broken for MSVC and generated bogus code. Moreover, Ke386Set/GetInterruptDescriptorTable and Ke386Rdmsr were also affected. This lets us (in addition to having a bootable, working msvc compiled kernel) get rid of several hacky variable zero-initializations that hid this bug -- the way MSVC interpreted the inlined assembly resulted in uninitialized variable usage. - Implement Ke386SetGs and add missing Ke386SetGs for gcc. - KdPollBreakIn: Use portable KeDisableInterrupts instead of x86 intrinsics and flags. svn path=/trunk/; revision=43103 |
||
---|---|---|
irc | ||
reactos | ||
rosapps | ||
rostests | ||
wallpaper |