Author: tkreuzer
Date: Fri Jan 29 06:23:59 2010
New Revision: 45313
URL:
http://svn.reactos.org/svn/reactos?rev=45313&view=rev
Log:
unimplement a bunch or intrinsics for msc, as we cannot use inline asm.
Modified:
branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/intrin_i.h
Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/intrin_i.h
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntosk…
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/intrin_i.h
[iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/intrin_i.h
[iso-8859-1] Fri Jan 29 06:23:59 2010
@@ -177,9 +177,7 @@
IN ULONG Var1,
IN ULONG Var2)
{
- __asm mov eax, Var1;
- __asm mov edx, Var2;
- __asm wrmsr;
+ __writemsr(Register, (ULONG64)Var1 <<32 | Var2);
}
ULONGLONG
@@ -188,10 +186,10 @@
IN ULONG Var1,
IN ULONG Var2)
{
- __asm mov eax, Var1;
- __asm mov edx, Var2;
- __asm rdmsr;
-}
+ return __readmsr(Register);
+}
+
+#define UNIMPLEMENTED DbgPrint("unimplemented!!!\n");
VOID
FORCEINLINE
@@ -201,98 +199,91 @@
OUT PULONG Var3,
OUT PULONG Var4)
{
- __asm mov eax, Operation;
- __asm cpuid;
- __asm mov [Var1], eax;
- __asm mov [Var2], ebx;
- __asm mov [Var3], ecx;
- __asm mov [Var4], edx;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386FnInit(VOID)
{
- __asm fninit;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386HaltProcessor(VOID)
{
- __asm hlt;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386GetInterruptDescriptorTable(OUT KDESCRIPTOR Descriptor)
{
- __asm sidt Descriptor;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SetInterruptDescriptorTable(IN KDESCRIPTOR Descriptor)
{
- __asm lidt Descriptor;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386GetGlobalDescriptorTable(OUT KDESCRIPTOR Descriptor)
{
- __asm sgdt Descriptor;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SetGlobalDescriptorTable(IN KDESCRIPTOR Descriptor)
{
- __asm lgdt Descriptor;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386GetLocalDescriptorTable(OUT USHORT Descriptor)
{
- __asm sldt Descriptor;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SetLocalDescriptorTable(IN USHORT Descriptor)
{
- __asm lldt Descriptor;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SaveFlags(IN ULONG Flags)
{
- __asm pushf;
- __asm pop Flags;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386RestoreFlags(IN ULONG Flags)
{
- __asm push Flags;
- __asm popf;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SetTr(IN USHORT Tr)
{
- __asm ltr Tr;
+ UNIMPLEMENTED;
}
USHORT
FORCEINLINE
Ke386GetTr(IN USHORT Tr)
{
- __asm str Tr;
+ UNIMPLEMENTED;
}
//
@@ -302,8 +293,7 @@
FORCEINLINE
Ke386SetCr2(IN ULONG Value)
{
- __asm mov eax, Value;
- __asm mov cr2, eax;
+ UNIMPLEMENTED;
}
//
@@ -313,90 +303,84 @@
FORCEINLINE
Ke386GetDr0(VOID)
{
- __asm mov eax, dr0;
+ UNIMPLEMENTED;
}
ULONG
FORCEINLINE
Ke386GetDr1(VOID)
{
- __asm mov eax, dr1;
+ UNIMPLEMENTED;
}
ULONG
FORCEINLINE
Ke386GetDr2(VOID)
{
- __asm mov eax, dr2;
+ UNIMPLEMENTED;
}
ULONG
FORCEINLINE
Ke386GetDr3(VOID)
{
- __asm mov eax, dr3;
+ UNIMPLEMENTED;
}
ULONG
FORCEINLINE
Ke386GetDr6(VOID)
{
- __asm mov eax, dr6;
+ UNIMPLEMENTED;
}
ULONG
FORCEINLINE
Ke386GetDr7(VOID)
{
- __asm mov eax, dr7;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SetDr0(IN ULONG Value)
{
- __asm mov eax, Value;
- __asm mov dr0, eax;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SetDr1(IN ULONG Value)
{
- __asm mov eax, Value;
- __asm mov dr1, eax;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SetDr2(IN ULONG Value)
{
- __asm mov eax, Value;
- __asm mov dr2, eax;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SetDr3(IN ULONG Value)
{
- __asm mov eax, Value;
- __asm mov dr3, eax;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SetDr6(IN ULONG Value)
{
- __asm mov eax, Value;
- __asm mov dr6, eax;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SetDr7(IN ULONG Value)
{
- __asm mov eax, Value;
- __asm mov dr7, eax;
+ UNIMPLEMENTED;
}
//
@@ -406,60 +390,56 @@
FORCEINLINE
Ke386GetSs(VOID)
{
- __asm mov ax, ss;
+ UNIMPLEMENTED;
}
USHORT
FORCEINLINE
Ke386GetFs(VOID)
{
- __asm mov ax, fs;
+ UNIMPLEMENTED;
}
USHORT
FORCEINLINE
Ke386GetDs(VOID)
{
- __asm mov ax, ds;
+ UNIMPLEMENTED;
}
USHORT
FORCEINLINE
Ke386GetEs(VOID)
{
- __asm mov ax, es;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SetSs(IN USHORT Value)
{
- __asm mov ax, Value;
- __asm mov ss, ax;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SetFs(IN USHORT Value)
{
- __asm mov ax, Value;
- __asm mov fs, ax;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SetDs(IN USHORT Value)
{
- __asm mov ax, Value;
- __asm mov ds, ax;
+ UNIMPLEMENTED;
}
VOID
FORCEINLINE
Ke386SetEs(IN USHORT Value)
{
- __asm mov ax, Value;
- __asm mov es, ax;
+ UNIMPLEMENTED;
}
#else