/** * PROJECT: ExectOS * COPYRIGHT: See COPYING.md in the top level directory * FILE: sdk/xtdk/amd64/arfuncs.h * DESCRIPTION: AMD64 architecture library routines * DEVELOPERS: Rafal Kupiec */ #ifndef __XTDK_AMD64_ARFUNCS_H #define __XTDK_AMD64_ARFUNCS_H #include #include #include #include /* Architecture library routines forward references */ 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 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 */