VirtualBox

Changeset 99734 in vbox for trunk/include


Ignore:
Timestamp:
May 10, 2023 5:28:24 PM (19 months ago)
Author:
vboxsync
Message:

VMM/GIC: Updates to the implementation, implement forwarding of SGIs and PPIs, bugref:10404

Location:
trunk/include/VBox
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/gic.h

    r99578 r99734  
    4242#include <iprt/types.h>
    4343#include <iprt/armv8.h>
     44
     45/** @name INTIDs - Interrupt identifier ranges.
     46 * @{ */
     47/** Start of the SGI (Software Generated Interrupts) range. */
     48#define GIC_INTID_RANGE_SGI_START                          0
     49/** Last valid SGI (Software Generated Interrupts) identifier. */
     50#define GIC_INTID_RANGE_SGI_LAST                          15
     51
     52/** Start of the PPI (Private Peripheral Interrupts) range. */
     53#define GIC_INTID_RANGE_PPI_START                         16
     54/** Last valid PPI (Private Peripheral Interrupts) identifier. */
     55#define GIC_INTID_RANGE_PPI_LAST                          31
     56
     57/** Start of the SPI (Shared Peripheral Interrupts) range. */
     58#define GIC_INTID_RANGE_SPI_START                         32
     59/** Last valid SPI (Shared Peripheral Interrupts) identifier. */
     60#define GIC_INTID_RANGE_SPI_LAST                        1019
     61
     62/** Start of the special interrupt range. */
     63#define GIC_INTID_RANGE_SPECIAL_START                   1020
     64/** Last valid special interrupt identifier. */
     65#define GIC_INTID_RANGE_SPECIAL_LAST                    1023
     66/** Value for an interrupt acknowledge if no pending interrupt with sufficient
     67 * priority, security state or interrupt group. */
     68# define GIC_INTID_RANGE_SPECIAL_NO_INTERRUPT           1023
     69
     70/** Start of the extended PPI (Private Peripheral Interrupts) range. */
     71#define GIC_INTID_RANGE_EPPI_START                      1056
     72/** Last valid extended PPI (Private Peripheral Interrupts) identifier. */
     73#define GIC_INTID_RANGE_EPPI_LAST                       1119
     74
     75/** Start of the extended SPI (Shared Peripheral Interrupts) range. */
     76#define GIC_INTID_RANGE_ESPI_START                      4096
     77/** Last valid extended SPI (Shared Peripheral Interrupts) identifier. */
     78#define GIC_INTID_RANGE_ESPI_LAST                       5119
     79
     80/** Start of the LPI (Locality-specific Peripheral Interrupts) range. */
     81#define GIC_INTID_RANGE_LPI_START                       8192
     82/** @} */
    4483
    4584
     
    368407
    369408/** Interrupt Clear Enable Register 0 - RW. */
    370 #define GIC_REDIST_SGI_PPI_REG_ICENABLER0_OFF           0x0100
     409#define GIC_REDIST_SGI_PPI_REG_ICENABLER0_OFF           0x0180
    371410/** Interrupt Clear Enable Register 1 for extended PPI range - RW. */
    372 #define GIC_REDIST_SGI_PPI_REG_ICENABLER1E_OFF          0x0104
     411#define GIC_REDIST_SGI_PPI_REG_ICENABLER1E_OFF          0x0184
    373412/** Interrupt Clear Enable Register 2 for extended PPI range - RW. */
    374 #define GIC_REDIST_SGI_PPI_REG_ICENABLER2E_OFF          0x0108
     413#define GIC_REDIST_SGI_PPI_REG_ICENABLER2E_OFF          0x0188
    375414
    376415/** Interrupt Set Pend Register 0 - RW. */
  • trunk/include/VBox/vmm/gic.h

    r99385 r99734  
    5757VMM_INT_DECL(VBOXSTRICTRC)  GICReadSysReg(PVMCPUCC pVCpu, uint32_t u32Reg, uint64_t *pu64Value);
    5858VMM_INT_DECL(VBOXSTRICTRC)  GICWriteSysReg(PVMCPUCC pVCpu, uint32_t u32Reg, uint64_t u64Value);
     59VMM_INT_DECL(int)           GICSpiSet(PVMCC pVM, uint32_t uIntId, bool fAsserted);
     60VMM_INT_DECL(int)           GICPpiSet(PVMCPUCC pVCpu, uint32_t uIntId, bool fAsserted);
     61VMM_INT_DECL(int)           GICSgiSet(PVMCPUCC pVCpu, uint32_t uIntId, bool fAsserted);
    5962
    6063#ifdef IN_RING3
    61 /** @defgroup grp_gic_r3  The APIC Host Context Ring-3 API
     64/** @defgroup grp_gic_r3  The GIC Host Context Ring-3 API
    6265 * @{
    6366 */
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette