unimplement a bunch or intrinsics for msc, as we cannot use inline asm.

svn path=/branches/ros-amd64-bringup/; revision=45313
This commit is contained in:
Timo Kreuzer 2010-01-29 05:23:59 +00:00
parent 9943d23d5d
commit b4c3b1e6f6

View file

@ -177,9 +177,7 @@ Ke386Wrmsr(IN ULONG Register,
IN ULONG Var1, IN ULONG Var1,
IN ULONG Var2) IN ULONG Var2)
{ {
__asm mov eax, Var1; __writemsr(Register, (ULONG64)Var1 <<32 | Var2);
__asm mov edx, Var2;
__asm wrmsr;
} }
ULONGLONG ULONGLONG
@ -188,11 +186,11 @@ Ke386Rdmsr(IN ULONG Register,
IN ULONG Var1, IN ULONG Var1,
IN ULONG Var2) IN ULONG Var2)
{ {
__asm mov eax, Var1; return __readmsr(Register);
__asm mov edx, Var2;
__asm rdmsr;
} }
#define UNIMPLEMENTED DbgPrint("unimplemented!!!\n");
VOID VOID
FORCEINLINE FORCEINLINE
Ki386Cpuid(IN ULONG Operation, Ki386Cpuid(IN ULONG Operation,
@ -201,98 +199,91 @@ Ki386Cpuid(IN ULONG Operation,
OUT PULONG Var3, OUT PULONG Var3,
OUT PULONG Var4) OUT PULONG Var4)
{ {
__asm mov eax, Operation; UNIMPLEMENTED;
__asm cpuid;
__asm mov [Var1], eax;
__asm mov [Var2], ebx;
__asm mov [Var3], ecx;
__asm mov [Var4], edx;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386FnInit(VOID) Ke386FnInit(VOID)
{ {
__asm fninit; UNIMPLEMENTED;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386HaltProcessor(VOID) Ke386HaltProcessor(VOID)
{ {
__asm hlt; UNIMPLEMENTED;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386GetInterruptDescriptorTable(OUT KDESCRIPTOR Descriptor) Ke386GetInterruptDescriptorTable(OUT KDESCRIPTOR Descriptor)
{ {
__asm sidt Descriptor; UNIMPLEMENTED;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SetInterruptDescriptorTable(IN KDESCRIPTOR Descriptor) Ke386SetInterruptDescriptorTable(IN KDESCRIPTOR Descriptor)
{ {
__asm lidt Descriptor; UNIMPLEMENTED;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386GetGlobalDescriptorTable(OUT KDESCRIPTOR Descriptor) Ke386GetGlobalDescriptorTable(OUT KDESCRIPTOR Descriptor)
{ {
__asm sgdt Descriptor; UNIMPLEMENTED;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SetGlobalDescriptorTable(IN KDESCRIPTOR Descriptor) Ke386SetGlobalDescriptorTable(IN KDESCRIPTOR Descriptor)
{ {
__asm lgdt Descriptor; UNIMPLEMENTED;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386GetLocalDescriptorTable(OUT USHORT Descriptor) Ke386GetLocalDescriptorTable(OUT USHORT Descriptor)
{ {
__asm sldt Descriptor; UNIMPLEMENTED;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SetLocalDescriptorTable(IN USHORT Descriptor) Ke386SetLocalDescriptorTable(IN USHORT Descriptor)
{ {
__asm lldt Descriptor; UNIMPLEMENTED;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SaveFlags(IN ULONG Flags) Ke386SaveFlags(IN ULONG Flags)
{ {
__asm pushf; UNIMPLEMENTED;
__asm pop Flags;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386RestoreFlags(IN ULONG Flags) Ke386RestoreFlags(IN ULONG Flags)
{ {
__asm push Flags; UNIMPLEMENTED;
__asm popf;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SetTr(IN USHORT Tr) Ke386SetTr(IN USHORT Tr)
{ {
__asm ltr Tr; UNIMPLEMENTED;
} }
USHORT USHORT
FORCEINLINE FORCEINLINE
Ke386GetTr(IN USHORT Tr) Ke386GetTr(IN USHORT Tr)
{ {
__asm str Tr; UNIMPLEMENTED;
} }
// //
@ -302,8 +293,7 @@ VOID
FORCEINLINE FORCEINLINE
Ke386SetCr2(IN ULONG Value) Ke386SetCr2(IN ULONG Value)
{ {
__asm mov eax, Value; UNIMPLEMENTED;
__asm mov cr2, eax;
} }
// //
@ -313,90 +303,84 @@ ULONG
FORCEINLINE FORCEINLINE
Ke386GetDr0(VOID) Ke386GetDr0(VOID)
{ {
__asm mov eax, dr0; UNIMPLEMENTED;
} }
ULONG ULONG
FORCEINLINE FORCEINLINE
Ke386GetDr1(VOID) Ke386GetDr1(VOID)
{ {
__asm mov eax, dr1; UNIMPLEMENTED;
} }
ULONG ULONG
FORCEINLINE FORCEINLINE
Ke386GetDr2(VOID) Ke386GetDr2(VOID)
{ {
__asm mov eax, dr2; UNIMPLEMENTED;
} }
ULONG ULONG
FORCEINLINE FORCEINLINE
Ke386GetDr3(VOID) Ke386GetDr3(VOID)
{ {
__asm mov eax, dr3; UNIMPLEMENTED;
} }
ULONG ULONG
FORCEINLINE FORCEINLINE
Ke386GetDr6(VOID) Ke386GetDr6(VOID)
{ {
__asm mov eax, dr6; UNIMPLEMENTED;
} }
ULONG ULONG
FORCEINLINE FORCEINLINE
Ke386GetDr7(VOID) Ke386GetDr7(VOID)
{ {
__asm mov eax, dr7; UNIMPLEMENTED;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SetDr0(IN ULONG Value) Ke386SetDr0(IN ULONG Value)
{ {
__asm mov eax, Value; UNIMPLEMENTED;
__asm mov dr0, eax;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SetDr1(IN ULONG Value) Ke386SetDr1(IN ULONG Value)
{ {
__asm mov eax, Value; UNIMPLEMENTED;
__asm mov dr1, eax;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SetDr2(IN ULONG Value) Ke386SetDr2(IN ULONG Value)
{ {
__asm mov eax, Value; UNIMPLEMENTED;
__asm mov dr2, eax;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SetDr3(IN ULONG Value) Ke386SetDr3(IN ULONG Value)
{ {
__asm mov eax, Value; UNIMPLEMENTED;
__asm mov dr3, eax;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SetDr6(IN ULONG Value) Ke386SetDr6(IN ULONG Value)
{ {
__asm mov eax, Value; UNIMPLEMENTED;
__asm mov dr6, eax;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SetDr7(IN ULONG Value) Ke386SetDr7(IN ULONG Value)
{ {
__asm mov eax, Value; UNIMPLEMENTED;
__asm mov dr7, eax;
} }
// //
@ -406,60 +390,56 @@ USHORT
FORCEINLINE FORCEINLINE
Ke386GetSs(VOID) Ke386GetSs(VOID)
{ {
__asm mov ax, ss; UNIMPLEMENTED;
} }
USHORT USHORT
FORCEINLINE FORCEINLINE
Ke386GetFs(VOID) Ke386GetFs(VOID)
{ {
__asm mov ax, fs; UNIMPLEMENTED;
} }
USHORT USHORT
FORCEINLINE FORCEINLINE
Ke386GetDs(VOID) Ke386GetDs(VOID)
{ {
__asm mov ax, ds; UNIMPLEMENTED;
} }
USHORT USHORT
FORCEINLINE FORCEINLINE
Ke386GetEs(VOID) Ke386GetEs(VOID)
{ {
__asm mov ax, es; UNIMPLEMENTED;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SetSs(IN USHORT Value) Ke386SetSs(IN USHORT Value)
{ {
__asm mov ax, Value; UNIMPLEMENTED;
__asm mov ss, ax;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SetFs(IN USHORT Value) Ke386SetFs(IN USHORT Value)
{ {
__asm mov ax, Value; UNIMPLEMENTED;
__asm mov fs, ax;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SetDs(IN USHORT Value) Ke386SetDs(IN USHORT Value)
{ {
__asm mov ax, Value; UNIMPLEMENTED;
__asm mov ds, ax;
} }
VOID VOID
FORCEINLINE FORCEINLINE
Ke386SetEs(IN USHORT Value) Ke386SetEs(IN USHORT Value)
{ {
__asm mov ax, Value; UNIMPLEMENTED;
__asm mov es, ax;
} }
#else #else