Cleanup AR subsystem headers
Some checks failed
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Failing after 13s

This commit is contained in:
Rafal Kupiec 2023-10-28 23:35:34 +02:00
parent 598b34acf7
commit ad15c55a39
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
4 changed files with 197 additions and 172 deletions

View File

@ -15,105 +15,18 @@
#include <amd64/xtstruct.h> #include <amd64/xtstruct.h>
/* Architecture library routines forward references */ /* Routines used by XTLDR */
XTCDECL XTCDECL
VOID VOID
ArClearInterruptFlag(); ArClearInterruptFlag();
XTCDECL
BOOLEAN
ArCpuId(IN OUT PCPUID_REGISTERS Registers);
XTCDECL XTCDECL
VOID VOID
ArHalt(); 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 XTCDECL
VOID VOID
ArWriteControlRegister(IN USHORT ControlRegister, ArWriteControlRegister(IN USHORT ControlRegister,
IN UINT_PTR Value); 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 */ #endif /* __XTDK_AMD64_ARFUNCS_H */

View File

@ -15,101 +15,18 @@
#include <i686/xtstruct.h> #include <i686/xtstruct.h>
/* Architecture library routines forward references */ /* Routines used by XTLDR */
XTCDECL XTCDECL
VOID VOID
ArClearInterruptFlag(); ArClearInterruptFlag();
XTCDECL
BOOLEAN
ArCpuId(IN OUT PCPUID_REGISTERS Registers);
XTCDECL XTCDECL
VOID VOID
ArHalt(); 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 XTCDECL
VOID VOID
ArWriteControlRegister(IN USHORT ControlRegister, ArWriteControlRegister(IN USHORT ControlRegister,
IN UINT_PTR Value); 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 */ #endif /* __XTDK_I686_ARFUNCS_H */

View File

@ -11,6 +11,66 @@
#include <xtos.h> #include <xtos.h>
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 XTAPI
VOID VOID
@ -18,6 +78,45 @@ ArSetGdtEntryBase(IN PKGDTENTRY Gdt,
IN USHORT Selector, IN USHORT Selector,
IN ULONG_PTR Base); 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 XTCDECL
VOID VOID
ArpHandleSystemCall32(); ArpHandleSystemCall32();

View File

@ -12,12 +12,108 @@
#include <xtos.h> #include <xtos.h>
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 XTAPI
VOID VOID
ArSetGdtEntryBase(IN PKGDTENTRY Gdt, ArSetGdtEntryBase(IN PKGDTENTRY Gdt,
IN USHORT Selector, IN USHORT Selector,
IN ULONG_PTR Base); 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 XTCDECL
VOID VOID
ArpHandleTrap00(); ArpHandleTrap00();