diff --git a/reactos/ntoskrnl/include/internal/amd64/intrin_i.h b/reactos/ntoskrnl/include/internal/amd64/intrin_i.h index a4073a8694e..d3dca40eaf2 100644 --- a/reactos/ntoskrnl/include/internal/amd64/intrin_i.h +++ b/reactos/ntoskrnl/include/internal/amd64/intrin_i.h @@ -106,36 +106,17 @@ static __inline__ __attribute__((always_inline)) void __str(unsigned short *Dest #define UNIMPLEMENTED DbgPrint("%s is unimplemented!!!\n", __FUNCTION__); -void FORCEINLINE __lgdt(void *Source) -{ - UNIMPLEMENTED; -} +void __lgdt(void *Source); -void FORCEINLINE __sgdt(void *Destination) -{ - UNIMPLEMENTED; -} +void __sgdt(void *Destination); -void FORCEINLINE __lldt(unsigned short Value) -{ - UNIMPLEMENTED; -} +void __lldt(unsigned short Value); -void FORCEINLINE __sldt(void *Destination) -{ - UNIMPLEMENTED; -} +void __sldt(void *Destination); -void FORCEINLINE __ltr(unsigned short Source) -{ - UNIMPLEMENTED; -} - -void FORCEINLINE __str(unsigned short *Destination) -{ - UNIMPLEMENTED; -} +void __ltr(unsigned short Source); +void __str(unsigned short *Destination); #else diff --git a/reactos/ntoskrnl/ke/amd64/trap.S b/reactos/ntoskrnl/ke/amd64/trap.S index 5088a51b554..5c776039951 100644 --- a/reactos/ntoskrnl/ke/amd64/trap.S +++ b/reactos/ntoskrnl/ke/amd64/trap.S @@ -905,6 +905,44 @@ PUBLIC KiUnexpectedInterrupt jmp $ .ENDP KiUnexpectedInterrupt +#ifdef _MSC_VER +//void __lgdt(void *Source); +PUBLIC __lgdt +__lgdt: + lgdt fword ptr [rcx] + ret + +//void __sgdt(void *Destination); +PUBLIC __sgdt +__sgdt: + sgdt fword ptr [rcx] + ret + +// void __lldt(unsigned short Value) +PUBLIC __lldt +__lldt: + lldt cx + ret + +//void __sldt(void *Destination); +PUBLIC __sldt +__sldt: + sldt word ptr [rcx] + ret + +//void __ltr(unsigned short Source); +PUBLIC __ltr +__ltr: + ltr cx + ret + +//void __str(unsigned short *Destination); +PUBLIC __str +__str: + str word ptr [rcx] + ret + +#endif END