|
| ULONG_PTR | CpuReadCr0 (VOID) |
| | Read CR0.
|
| VOID | CpuWriteCr0 (ULONG_PTR Cr0Value) |
| | Write CR0.
|
| ULONG_PTR | CpuReadCr2 (VOID) |
| | Read CR2.
|
| VOID | CpuWriteCr2 (ULONG_PTR Cr2Value) |
| | Write CR2.
|
| ULONG_PTR | CpuReadCr3 (VOID) |
| | Read CR3.
|
| VOID | CpuWriteCr3 (ULONG_PTR Cr3Value) |
| | Write CR3.
|
| ULONG_PTR | CpuReadCr4 (VOID) |
| | Read CR4.
|
| VOID | CpuWriteCr4 (ULONG_PTR Cr4Value) |
| | Write CR4.
|
| ULONG_PTR | CpuReadCr8 (VOID) |
| | Read CR8.
|
| VOID | CpuWriteCr8 (ULONG_PTR Cr8Value) |
| | Write CR8.
|
| UINT64 | CpuReadMsr (ULONG MsrAddress) |
| | Read an MSR.
|
| VOID | CpuWriteMsr (ULONG MsrAddress, UINT64 MsrValue) |
| | Write an MSR.
|
| VOID | CpuCpuId (INT32 *CpuInfo, INT32 FunctionId) |
| | Execute CPUID.
|
| VOID | CpuCpuIdEx (INT32 *CpuInfo, INT32 FunctionId, INT32 SubFunctionId) |
| | Execute CPUID with sub-leaf.
|
| UINT64 | CpuReadTsc (VOID) |
| | Read Time-Stamp Counter.
|
| UINT64 | CpuReadTscp (UINT32 *Aux) |
| | Read Time-Stamp Counter and Processor ID.
|
| INT64 | CpuInterlockedExchange64 (INT64 volatile *Target, INT64 Value) |
| | Atomic 64-bit exchange.
|
| INT64 | CpuInterlockedExchangeAdd64 (INT64 volatile *Addend, INT64 Value) |
| | Atomic 64-bit exchange-add.
|
| INT64 | CpuInterlockedIncrement64 (INT64 volatile *Addend) |
| | Atomic 64-bit increment.
|
| INT64 | CpuInterlockedDecrement64 (INT64 volatile *Addend) |
| | Atomic 64-bit decrement.
|
| INT64 | CpuInterlockedCompareExchange64 (INT64 volatile *Destination, INT64 ExChange, INT64 Comparand) |
| | Atomic 64-bit compare-exchange.
|
| VOID | CpuSidt (VOID *Idtr) |
| | Store Interrupt Descriptor Table Register.
|
| VOID | CpuInvlpg (VOID *Address) |
| | Invalidate TLB entry for a virtual address.
|
| VOID | CpuStosQ (UINT64 *Destination, UINT64 Value, SIZE_T Count) |
| | Store UINT64 value to memory Count times.
|
| UCHAR | CpuBitScanForward64 (ULONG *Index, UINT64 Mask) |
| | Bit scan forward (64-bit).
|
| VOID | CpuNop (VOID) |
| | Execute NOP.
|
| VOID | CpuPause (VOID) |
| | Execute PAUSE (spin-wait hint).
|
| ULONG | CpuSegmentLimit (UINT32 Selector) |
| | Return the segment limit for a selector.
|
| UINT8 | CpuIoInByte (UINT16 Port) |
| | Read a byte from an I/O port.
|
| UINT16 | CpuIoInWord (UINT16 Port) |
| | Read a word from an I/O port.
|
| UINT32 | CpuIoInDword (UINT16 Port) |
| | Read a dword from an I/O port.
|
| VOID | CpuIoInByteString (UINT16 Port, UINT8 *Data, UINT32 Size) |
| | Read a byte string from an I/O port.
|
| VOID | CpuIoInWordString (UINT16 Port, UINT16 *Data, UINT32 Size) |
| | Read a word string from an I/O port.
|
| VOID | CpuIoInDwordString (UINT16 Port, UINT32 *Data, UINT32 Size) |
| | Read a dword string from an I/O port.
|
| VOID | CpuIoOutByte (UINT16 Port, UINT8 Value) |
| | Write a byte to an I/O port.
|
| VOID | CpuIoOutWord (UINT16 Port, UINT16 Value) |
| | Write a word to an I/O port.
|
| VOID | CpuIoOutDword (UINT16 Port, UINT32 Value) |
| | Write a dword to an I/O port.
|
| VOID | CpuIoOutByteString (UINT16 Port, UINT8 *Data, UINT32 Count) |
| | Write a byte string to an I/O port.
|
| VOID | CpuIoOutWordString (UINT16 Port, UINT16 *Data, UINT32 Count) |
| | Write a word string to an I/O port.
|
| VOID | CpuIoOutDwordString (UINT16 Port, UINT32 *Data, UINT32 Count) |
| | Write a dword string to an I/O port.
|
Cross platform APIs for intrinsic functions (x86 instructions).
- Author
- Sina Karvandi (sina@.nosp@m.hype.nosp@m.rdbg..nosp@m.org)
- Version
- 0.19
- Date
- 2026-05-05
- Copyright
- This project is released under the GNU Public License v3.