VirtualBox

Changeset 107113 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Nov 22, 2024 10:48:00 AM (4 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
166080
Message:

VMM: bugref:10759 Restructure the APIC to allow different backends to be used.

Location:
trunk/include/VBox
Files:
1 added
1 deleted
6 edited

Legend:

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

    r106476 r107113  
    743743    /** PDM group. */
    744744    LOG_GROUP_PDM,
     745    /** PDM APIC group. */
     746    LOG_GROUP_PDM_APIC,
    745747    /** PDM Async completion group. */
    746748    LOG_GROUP_PDM_ASYNC_COMPLETION,
     
    12151217    "PATM", \
    12161218    "PDM", \
     1219    "PDM_APIC", \
    12171220    "PDM_ASYNC_COMPLETION", \
    12181221    "PDM_BLK_CACHE", \
  • trunk/include/VBox/vmm/gvm.h

    r106920 r107113  
    269269        struct PDMR0PERVM   s;
    270270# endif
    271         uint8_t             padding[3008];
     271        uint8_t             padding[3264];
    272272    } pdmr0;
    273273
     
    326326    uint8_t         abPadding2[16384*1 - 64 - 4352 -                                                                704 - sizeof(PGVMCPU) * VMM_MAX_CPU_COUNT];
    327327#elif defined(VBOX_WITH_NEM_R0)
    328     uint8_t         abPadding2[16384*7 - 64 - 4352 - 1024 - 256 - 256 - 64 - 3008 - 90112 - 512 - 64 - 1024 - 192 - 704 - sizeof(PGVMCPU) * VMM_MAX_CPU_COUNT];
     328    uint8_t         abPadding2[16384*7 - 64 - 4352 - 1024 - 256 - 256 - 64 - 3264 - 90112 - 512 - 64 - 1024 - 192 - 704 - sizeof(PGVMCPU) * VMM_MAX_CPU_COUNT];
    329329#else
    330     uint8_t         abPadding2[16384*7 - 64 - 4352 - 1024 - 256 -       64 - 3008 - 90112 - 512 - 64 - 1024 - 192 - 704 - sizeof(PGVMCPU) * VMM_MAX_CPU_COUNT];
     330    uint8_t         abPadding2[16384*7 - 64 - 4352 - 1024 - 256 -       64 - 3264 - 90112 - 512 - 64 - 1024 - 192 - 704 - sizeof(PGVMCPU) * VMM_MAX_CPU_COUNT];
    331331#endif
    332332
  • trunk/include/VBox/vmm/gvm.mac

    r106920 r107113  
    9393        .rawpci             resb 64
    9494        alignb 64
    95         .pdmr0              resb 3008
     95        .pdmr0              resb 3264
    9696        alignb 64
    9797        .pgmr0              resb 90112
  • trunk/include/VBox/vmm/pdmdev.h

    r106061 r107113  
    752752#endif
    753753
     754/**
     755 * The PDM APIC device registration structure.
     756 */
     757extern const PDMDEVREG g_DeviceAPIC;
    754758
    755759/**
     
    18151819
    18161820/**
    1817  * APIC mode argument for apicR3SetCpuIdFeatureLevel.
    1818  *
    1819  * Also used in saved-states, CFGM don't change existing values.
    1820  */
    1821 typedef enum PDMAPICMODE
    1822 {
    1823     /** Invalid 0 entry. */
    1824     PDMAPICMODE_INVALID = 0,
    1825     /** No APIC. */
    1826     PDMAPICMODE_NONE,
    1827     /** Standard APIC (X86_CPUID_FEATURE_EDX_APIC). */
    1828     PDMAPICMODE_APIC,
    1829     /** Intel X2APIC (X86_CPUID_FEATURE_ECX_X2APIC). */
    1830     PDMAPICMODE_X2APIC,
    1831     /** The usual 32-bit paranoia. */
    1832     PDMAPICMODE_32BIT_HACK = 0x7fffffff
    1833 } PDMAPICMODE;
    1834 
    1835 /**
    1836  * APIC irq argument for pfnSetInterruptFF and pfnClearInterruptFF.
    1837  */
    1838 typedef enum PDMAPICIRQ
    1839 {
    1840     /** Invalid 0 entry. */
    1841     PDMAPICIRQ_INVALID = 0,
    1842     /** Normal hardware interrupt. */
    1843     PDMAPICIRQ_HARDWARE,
    1844     /** NMI. */
    1845     PDMAPICIRQ_NMI,
    1846     /** SMI. */
    1847     PDMAPICIRQ_SMI,
    1848     /** ExtINT (HW interrupt via PIC). */
    1849     PDMAPICIRQ_EXTINT,
    1850     /** Interrupt arrived, needs to be updated to the IRR. */
    1851     PDMAPICIRQ_UPDATE_PENDING,
    1852     /** The usual 32-bit paranoia. */
    1853     PDMAPICIRQ_32BIT_HACK = 0x7fffffff
    1854 } PDMAPICIRQ;
    1855 
    1856 
    1857 /**
    18581821 * I/O APIC registration structure (all contexts).
    18591822 */
     
    19341897     * @param   uTagSrc         The IRQ tag and source (for tracing).
    19351898     *
    1936      * @sa      APICBusDeliver()
     1899     * @sa      PDMApicBusDeliver()
    19371900     */
    19381901    DECLCALLBACKMEMBER(int, pfnApicBusDeliver,(PPDMDEVINS pDevIns, uint8_t u8Dest, uint8_t u8DestMode, uint8_t u8DeliveryMode,
  • trunk/include/VBox/vmm/vm.h

    r106362 r107113  
    14121412        struct PDM s;
    14131413#endif
    1414         uint8_t     padding[22528];     /* multiple of 64 */
     1414        uint8_t     padding[22784];     /* multiple of 64 */
    14151415    } pdm;
    14161416
     
    15741574
    15751575    /** Padding for aligning the structure size on a page boundrary. */
    1576     uint8_t         abAlignment2[0x3A00 - sizeof(PVMCPUR3) * VMM_MAX_CPU_COUNT];
     1576    uint8_t         abAlignment2[0x3900 - sizeof(PVMCPUR3) * VMM_MAX_CPU_COUNT];
    15771577
    15781578    /* ---- end small stuff ---- */
  • trunk/include/VBox/vmm/vm.mac

    r106061 r107113  
    157157    .mm                     resb 192
    158158    alignb 64
    159     .pdm                    resb 22528
     159    .pdm                    resb 22784
    160160    alignb 64
    161161    .iom                    resb 1152
Note: See TracChangeset for help on using the changeset viewer.

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