[ros-bugs] [Bug 5071] New: intrin_i.h: sgdt & lgdt fixed for msvc
ReactOS.Bugzilla at reactos.org
ReactOS.Bugzilla at reactos.org
Wed Dec 30 17:26:38 CET 2009
http://www.reactos.org/bugzilla/show_bug.cgi?id=5071
Summary: intrin_i.h: sgdt & lgdt fixed for msvc
Product: ReactOS
Version: TRUNK
Platform: VMWare 6
OS/Version: Microsoft Windows XP
Status: UNCONFIRMED
Severity: blocker
Priority: P3
Component: Kernel
AssignedTo: hackbunny at reactos.org
ReportedBy: jc1 at diwaves.com
QAContact: ros-bugs at reactos.org
In intrin_i.h there are two inline functions that are defined differently based
on __GNUC__ or _MSV_VER. The _MSC_VER ones make ntoskrnl crash early on boot.
As these functions were written, sgd & lgdt stored and loaded the gdt to/from
the pointer variable passed instead of the location the pointer points to.
Fixed and tested.
Couldn't cc to sginsberg at reactos.org, bugzilla doesn't know him
Patch follows:
intrin_i.h
Ke386GetGlobalDescriptorTable(OUT PVOID Descriptor)
{
- __asm sgdt [Descriptor]
+ __asm {
+ mov ebx, Descriptor
+ sgdt [ebx];
+ }
}
Ke386SetGlobalDescriptorTable(IN PVOID Descriptor)
{
- __asm lgdt [Descriptor]
+ __asm {
+ mov ebx, Descriptor;
+ lgdt [ebx];
+ }
}
--
Configure bugmail: http://www.reactos.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the Ros-bugs
mailing list