VOID\r
);\r
\r
+/**\r
+ Get the value of the local APIC version register.\r
+\r
+ @return the value of the local APIC version register.\r
+**/\r
+UINT32\r
+EFIAPI\r
+GetApicVersion (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ Send a Fixed IPI to a specified target processor.\r
+\r
+ This function returns after the IPI has been accepted by the target processor. \r
+\r
+ @param ApicId The local APIC ID of the target processor.\r
+ @param Vector The vector number of the interrupt being sent.\r
+**/\r
+VOID\r
+EFIAPI\r
+SendFixedIpi (\r
+ IN UINT32 ApicId,\r
+ IN UINT8 Vector\r
+ );\r
+\r
+/**\r
+ Send a Fixed IPI to all processors excluding self.\r
+\r
+ This function returns after the IPI has been accepted by the target processors. \r
+\r
+ @param Vector The vector number of the interrupt being sent.\r
+**/\r
+VOID\r
+EFIAPI\r
+SendFixedIpiAllExcludingSelf (\r
+ IN UINT8 Vector\r
+ );\r
+\r
/**\r
Send a SMI IPI to a specified target processor.\r
\r
);\r
\r
/**\r
- Get the divide value from the DCR (Divide Configuration Register) by which\r
- the processor's bus clock is divided to form the time base for the APIC timer.\r
+ Disable LINT0 & LINT1 interrupts.\r
\r
- @return The divide value is one of 1,2,4,8,16,32,64,128.\r
+ This function sets the mask flag in the LVT LINT0 & LINT1 registers.\r
**/\r
-UINTN\r
+VOID\r
EFIAPI\r
-GetApicTimerDivisor (\r
+DisableLvtInterrupts (\r
VOID\r
);\r
\r
IN UINT8 Vector\r
);\r
\r
+/**\r
+ Get the state of the local APIC timer.\r
+\r
+ @param DivideValue Return the divide value for the DCR. It is one of 1,2,4,8,16,32,64,128.\r
+ @param PeriodicMode Return the timer mode. If TRUE, timer mode is peridoic. Othewise, timer mode is one-shot.\r
+ @param Vector Return the timer interrupt vector number.\r
+**/\r
+VOID\r
+EFIAPI\r
+GetApicTimerState (\r
+ OUT UINTN *DivideValue OPTIONAL,\r
+ OUT BOOLEAN *PeriodicMode OPTIONAL,\r
+ OUT UINT8 *Vector OPTIONAL\r
+ );\r
+\r
/**\r
Enable the local APIC timer interrupt.\r
**/\r