]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Include/Library/LocalApicLib.h
Add DisableLvtInterrupts() for the Local APIC library class.
[mirror_edk2.git] / UefiCpuPkg / Include / Library / LocalApicLib.h
index 58e3474e88b4d433c08a5883dadff92bcf0227c9..d68e0e48b97f8769eaca42ac6d3c6bf339aae13d 100644 (file)
@@ -75,6 +75,45 @@ GetApicId (
   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
@@ -174,14 +213,13 @@ ProgramVirtualWireMode (
   );\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
@@ -227,6 +265,21 @@ InitializeApicTimer (
   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