diff --git a/sdk/xtdk/amd64/arfuncs.h b/sdk/xtdk/amd64/arfuncs.h index 4d349190..5b75003b 100644 --- a/sdk/xtdk/amd64/arfuncs.h +++ b/sdk/xtdk/amd64/arfuncs.h @@ -15,105 +15,18 @@ #include -/* Architecture library routines forward references */ +/* Routines used by XTLDR */ XTCDECL VOID ArClearInterruptFlag(); -XTCDECL -BOOLEAN -ArCpuId(IN OUT PCPUID_REGISTERS Registers); - XTCDECL VOID ArHalt(); -XTAPI -VOID -ArInitializeProcessor(VOID); - -XTCDECL -VOID -ArInvalidateTlbEntry(IN PVOID Address); - -XTCDECL -VOID -ArLoadGlobalDescriptorTable(IN PVOID Source); - -XTCDECL -VOID -ArLoadInterruptDescriptorTable(IN PVOID Source); - -XTCDECL -VOID -ArLoadLocalDescriptorTable(IN USHORT Source); - -XTCDECL -VOID -ArLoadMxcsrRegister(IN ULONG Source); - -XTCDECL -VOID -ArLoadSegment(IN USHORT Segment, - IN ULONG Source); - -XTCDECL -VOID -ArLoadTaskRegister(USHORT Source); - -XTCDECL -ULONG_PTR -ArReadControlRegister(IN USHORT ControlRegister); - -XTCDECL -ULONGLONG -ArReadGSQuadWord(ULONG Offset); - -XTCDECL -ULONGLONG -ArReadModelSpecificRegister(IN ULONG Register); - -XTCDECL -ULONGLONG -ArReadTimeStampCounter(); - -XTCDECL -VOID -ArSetInterruptFlag(); - -XTCDECL -VOID -ArStoreGlobalDescriptorTable(OUT PVOID Destination); - -XTCDECL -VOID -ArStoreInterruptDescriptorTable(OUT PVOID Destination); - -XTCDECL -VOID -ArStoreSegment(IN USHORT Segment, - OUT PVOID Destination); - -XTCDECL -VOID -ArStoreTaskRegister(OUT PVOID Destination); - XTCDECL VOID ArWriteControlRegister(IN USHORT ControlRegister, IN UINT_PTR Value); -XTCDECL -VOID -ArWriteEflagsRegister(IN UINT_PTR Value); - -XTCDECL -VOID -ArWriteModelSpecificRegister(IN ULONG Register, - IN ULONGLONG Value); - -XTCDECL -VOID -ArYieldProcessor(); - #endif /* __XTDK_AMD64_ARFUNCS_H */ diff --git a/sdk/xtdk/i686/arfuncs.h b/sdk/xtdk/i686/arfuncs.h index 9215a292..db6acf92 100644 --- a/sdk/xtdk/i686/arfuncs.h +++ b/sdk/xtdk/i686/arfuncs.h @@ -15,101 +15,18 @@ #include -/* Architecture library routines forward references */ +/* Routines used by XTLDR */ XTCDECL VOID ArClearInterruptFlag(); -XTCDECL -BOOLEAN -ArCpuId(IN OUT PCPUID_REGISTERS Registers); - XTCDECL VOID ArHalt(); -XTAPI -VOID -ArInitializeProcessor(VOID); - -XTCDECL -VOID -ArInvalidateTlbEntry(IN PVOID Address); - -XTCDECL -VOID -ArLoadGlobalDescriptorTable(IN PVOID Source); - -XTCDECL -VOID -ArLoadInterruptDescriptorTable(IN PVOID Source); - -XTCDECL -VOID -ArLoadLocalDescriptorTable(IN USHORT Source); - -XTCDECL -VOID -ArLoadSegment(IN USHORT Segment, - IN ULONG Source); - -XTCDECL -VOID -ArLoadTaskRegister(USHORT Source); - -XTCDECL -ULONG_PTR -ArReadControlRegister(IN USHORT ControlRegister); - -XTCDECL -ULONG -ArReadFSDualWord(ULONG Offset); - -XTCDECL -ULONGLONG -ArReadModelSpecificRegister(IN ULONG Register); - -XTCDECL -ULONGLONG -ArReadTimeStampCounter(); - -XTCDECL -VOID -ArSetInterruptFlag(); - -XTCDECL -VOID -ArStoreGlobalDescriptorTable(OUT PVOID Destination); - -XTCDECL -VOID -ArStoreInterruptDescriptorTable(OUT PVOID Destination); - -XTCDECL -VOID -ArStoreSegment(IN USHORT Segment, - OUT PVOID Destination); - -XTCDECL -VOID -ArStoreTaskRegister(OUT PVOID Destination); - XTCDECL VOID ArWriteControlRegister(IN USHORT ControlRegister, IN UINT_PTR Value); -XTCDECL -VOID -ArWriteEflagsRegister(IN UINT_PTR Value); - -XTCDECL -VOID -ArWriteModelSpecificRegister(IN ULONG Register, - IN ULONGLONG Value); - -XTCDECL -VOID -ArYieldProcessor(); - #endif /* __XTDK_I686_ARFUNCS_H */ diff --git a/xtoskrnl/includes/amd64/ar.h b/xtoskrnl/includes/amd64/ar.h index a8fe8163..9ea168c1 100644 --- a/xtoskrnl/includes/amd64/ar.h +++ b/xtoskrnl/includes/amd64/ar.h @@ -11,6 +11,66 @@ #include +XTCDECL +VOID +ArClearInterruptFlag(); + +XTCDECL +BOOLEAN +ArCpuId(IN OUT PCPUID_REGISTERS Registers); + +XTCDECL +VOID +ArHalt(); + +XTAPI +VOID +ArInitializeProcessor(VOID); + +XTCDECL +VOID +ArInvalidateTlbEntry(IN PVOID Address); + +XTCDECL +VOID +ArLoadGlobalDescriptorTable(IN PVOID Source); + +XTCDECL +VOID +ArLoadInterruptDescriptorTable(IN PVOID Source); + +XTCDECL +VOID +ArLoadLocalDescriptorTable(IN USHORT Source); + +XTCDECL +VOID +ArLoadMxcsrRegister(IN ULONG Source); + +XTCDECL +VOID +ArLoadSegment(IN USHORT Segment, + IN ULONG Source); + +XTCDECL +VOID +ArLoadTaskRegister(USHORT Source); + +XTCDECL +ULONG_PTR +ArReadControlRegister(IN USHORT ControlRegister); + +XTCDECL +ULONGLONG +ArReadGSQuadWord(ULONG Offset); + +XTCDECL +ULONGLONG +ArReadModelSpecificRegister(IN ULONG Register); + +XTCDECL +ULONGLONG +ArReadTimeStampCounter(); XTAPI VOID @@ -18,6 +78,45 @@ ArSetGdtEntryBase(IN PKGDTENTRY Gdt, IN USHORT Selector, IN ULONG_PTR Base); +XTCDECL +VOID +ArSetInterruptFlag(); + +XTCDECL +VOID +ArStoreGlobalDescriptorTable(OUT PVOID Destination); + +XTCDECL +VOID +ArStoreInterruptDescriptorTable(OUT PVOID Destination); + +XTCDECL +VOID +ArStoreSegment(IN USHORT Segment, + OUT PVOID Destination); + +XTCDECL +VOID +ArStoreTaskRegister(OUT PVOID Destination); + +XTCDECL +VOID +ArWriteControlRegister(IN USHORT ControlRegister, + IN UINT_PTR Value); + +XTCDECL +VOID +ArWriteEflagsRegister(IN UINT_PTR Value); + +XTCDECL +VOID +ArWriteModelSpecificRegister(IN ULONG Register, + IN ULONGLONG Value); + +XTCDECL +VOID +ArYieldProcessor(); + XTCDECL VOID ArpHandleSystemCall32(); diff --git a/xtoskrnl/includes/i686/ar.h b/xtoskrnl/includes/i686/ar.h index d144cc5c..e42f5575 100644 --- a/xtoskrnl/includes/i686/ar.h +++ b/xtoskrnl/includes/i686/ar.h @@ -12,12 +12,108 @@ #include +XTCDECL +VOID +ArClearInterruptFlag(); + +XTCDECL +BOOLEAN +ArCpuId(IN OUT PCPUID_REGISTERS Registers); + +XTCDECL +VOID +ArHalt(); + +XTAPI +VOID +ArInitializeProcessor(VOID); + +XTCDECL +VOID +ArInvalidateTlbEntry(IN PVOID Address); + +XTCDECL +VOID +ArLoadGlobalDescriptorTable(IN PVOID Source); + +XTCDECL +VOID +ArLoadInterruptDescriptorTable(IN PVOID Source); + +XTCDECL +VOID +ArLoadLocalDescriptorTable(IN USHORT Source); + +XTCDECL +VOID +ArLoadSegment(IN USHORT Segment, + IN ULONG Source); + +XTCDECL +VOID +ArLoadTaskRegister(USHORT Source); + +XTCDECL +ULONG_PTR +ArReadControlRegister(IN USHORT ControlRegister); + +XTCDECL +ULONG +ArReadFSDualWord(ULONG Offset); + +XTCDECL +ULONGLONG +ArReadModelSpecificRegister(IN ULONG Register); + +XTCDECL +ULONGLONG +ArReadTimeStampCounter(); + XTAPI VOID ArSetGdtEntryBase(IN PKGDTENTRY Gdt, IN USHORT Selector, IN ULONG_PTR Base); +XTCDECL +VOID +ArSetInterruptFlag(); + +XTCDECL +VOID +ArStoreGlobalDescriptorTable(OUT PVOID Destination); + +XTCDECL +VOID +ArStoreInterruptDescriptorTable(OUT PVOID Destination); + +XTCDECL +VOID +ArStoreSegment(IN USHORT Segment, + OUT PVOID Destination); + +XTCDECL +VOID +ArStoreTaskRegister(OUT PVOID Destination); + +XTCDECL +VOID +ArWriteControlRegister(IN USHORT ControlRegister, + IN UINT_PTR Value); + +XTCDECL +VOID +ArWriteEflagsRegister(IN UINT_PTR Value); + +XTCDECL +VOID +ArWriteModelSpecificRegister(IN ULONG Register, + IN ULONGLONG Value); + +XTCDECL +VOID +ArYieldProcessor(); + XTCDECL VOID ArpHandleTrap00();