ReactOS 0.4.17-dev-966-gf06eace
x2apicp.h File Reference
#include <pshpack1.h>
#include <poppack.h>
Include dependency graph for x2apicp.h:

Go to the source code of this file.

Classes

union  _X2APIC_BASE_ADDRESS_REGISTER
 
union  _X2APIC_INTERRUPT_COMMAND_REGISTER
 

Macros

#define MSR_APIC_BASE   0x0000001B
 
#define X2APIC_MSR_BASE   0x00000800
 
#define X2APIC_MSR_ICR   0x00000830
 
#define X2APIC_MSR_SELF_IPI   0x0000083F
 
#define CPUID_X2APIC_FEATURE_BIT   21
 

Typedefs

typedef union _X2APIC_BASE_ADDRESS_REGISTER X2APIC_BASE_ADDRESS_REGISTER
 
typedef enum _X2APIC_REGISTER X2APIC_REGISTER
 
typedef union _X2APIC_INTERRUPT_COMMAND_REGISTER X2APIC_INTERRUPT_COMMAND_REGISTER
 

Enumerations

enum  _X2APIC_REGISTER { X2APIC_ID_REG = 0x0020 , X2APIC_EOI_REG = 0x00B0 , X2APIC_SIVR_REG = 0x00F0 , X2APIC_ICR0_REG = 0x0300 }
 

Functions

FORCEINLINE X2APIC_REGISTER X2ApicMsrFromRegister (_In_ X2APIC_REGISTER Register)
 
FORCEINLINE ULONG X2ApicRead (_In_ X2APIC_REGISTER Register)
 
FORCEINLINE VOID X2ApicWrite (_In_ X2APIC_REGISTER Register, _In_ ULONG Value)
 
FORCEINLINE VOID X2ApicWriteIcr (_In_ X2APIC_INTERRUPT_COMMAND_REGISTER IcrValue)
 
BOOLEAN NTAPI X2ApicIsSupported (VOID)
 
VOID NTAPI X2ApicEnable (VOID)
 

Macro Definition Documentation

◆ CPUID_X2APIC_FEATURE_BIT

#define CPUID_X2APIC_FEATURE_BIT   21

Definition at line 14 of file x2apicp.h.

◆ MSR_APIC_BASE

#define MSR_APIC_BASE   0x0000001B

Definition at line 10 of file x2apicp.h.

◆ X2APIC_MSR_BASE

#define X2APIC_MSR_BASE   0x00000800

Definition at line 11 of file x2apicp.h.

◆ X2APIC_MSR_ICR

#define X2APIC_MSR_ICR   0x00000830

Definition at line 12 of file x2apicp.h.

◆ X2APIC_MSR_SELF_IPI

#define X2APIC_MSR_SELF_IPI   0x0000083F

Definition at line 13 of file x2apicp.h.

Typedef Documentation

◆ X2APIC_BASE_ADDRESS_REGISTER

◆ X2APIC_INTERRUPT_COMMAND_REGISTER

◆ X2APIC_REGISTER

Enumeration Type Documentation

◆ _X2APIC_REGISTER

Enumerator
X2APIC_ID_REG 
X2APIC_EOI_REG 
X2APIC_SIVR_REG 
X2APIC_ICR0_REG 

Definition at line 33 of file x2apicp.h.

34{
35 X2APIC_ID_REG = 0x0020,
36 X2APIC_EOI_REG = 0x00B0,
37 X2APIC_SIVR_REG = 0x00F0,
38 X2APIC_ICR0_REG = 0x0300,
@ X2APIC_SIVR_REG
Definition: x2apicp.h:37
@ X2APIC_EOI_REG
Definition: x2apicp.h:36
@ X2APIC_ID_REG
Definition: x2apicp.h:35
@ X2APIC_ICR0_REG
Definition: x2apicp.h:38
enum _X2APIC_REGISTER X2APIC_REGISTER

Function Documentation

◆ X2ApicEnable()

VOID NTAPI X2ApicEnable ( VOID  )

◆ X2ApicIsSupported()

BOOLEAN NTAPI X2ApicIsSupported ( VOID  )

◆ X2ApicMsrFromRegister()

FORCEINLINE X2APIC_REGISTER X2ApicMsrFromRegister ( _In_ X2APIC_REGISTER  Register)

Definition at line 64 of file x2apicp.h.

66{
67 return (X2APIC_REGISTER)(X2APIC_MSR_BASE + (Register / 0x10));
68}
#define X2APIC_MSR_BASE
Definition: x2apicp.h:11

Referenced by X2ApicRead(), and X2ApicWrite().

◆ X2ApicRead()

FORCEINLINE ULONG X2ApicRead ( _In_ X2APIC_REGISTER  Register)

Definition at line 72 of file x2apicp.h.

74{
76}
PPC_QUAL unsigned long long __readmsr()
Definition: intrin_ppc.h:741
uint32_t ULONG
Definition: typedefs.h:59
FORCEINLINE X2APIC_REGISTER X2ApicMsrFromRegister(_In_ X2APIC_REGISTER Register)
Definition: x2apicp.h:64

◆ X2ApicWrite()

FORCEINLINE VOID X2ApicWrite ( _In_ X2APIC_REGISTER  Register,
_In_ ULONG  Value 
)

Definition at line 80 of file x2apicp.h.

83{
85}
PPC_QUAL void __writemsr(const unsigned long Value)
Definition: intrin_ppc.h:748
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413

◆ X2ApicWriteIcr()

Definition at line 89 of file x2apicp.h.

91{
92 __writemsr(X2APIC_MSR_ICR, IcrValue.LongLong);
93}
#define X2APIC_MSR_ICR
Definition: x2apicp.h:12