VirtualBox

Changeset 99385 in vbox for trunk/include/VBox/vmm


Ignore:
Timestamp:
Apr 13, 2023 11:05:39 AM (20 months ago)
Author:
vboxsync
Message:

VMM/ArmV8: Skeleton of the GICv3 interrupt controller emulation, bugref:10404

Location:
trunk/include/VBox/vmm
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/cpum-armv8.h

    r99383 r99385  
    6666    kCpumSysRegRdFn_WriteOnly,
    6767
     68    /** Read from a GICv3 PE ICC system register. */
     69    kCpumSysRegRdFn_GicV3Icc,
     70
    6871    /** End of valid system register read function indexes. */
    6972    kCpumSysRegRdFn_End
     
    8689     * kCpumSysRegRdFn_Alias. */
    8790    kCpumSysRegWrFn_Alias,
     91
     92    /** Write to a GICv3 PE ICC system register. */
     93    kCpumSysRegWrFn_GicV3Icc,
    8894
    8995    /** End of valid system register write function indexes. */
  • trunk/include/VBox/vmm/vm.h

    r98993 r99385  
    269269    } gim;
    270270
     271#if defined(VBOX_VMM_TARGET_ARMV8)
     272    /** GIC part. */
     273    union VMCPUUNIONGIC
     274    {
     275# ifdef VMM_INCLUDED_SRC_include_GICInternal_h
     276        struct GICCPU       s;
     277# endif
     278        uint8_t             padding[3840];      /* multiple of 64 */
     279    } gic;
     280#else
    271281    /** APIC part. */
    272282    union VMCPUUNIONAPIC
    273283    {
    274 #ifdef VMM_INCLUDED_SRC_include_APICInternal_h
     284# ifdef VMM_INCLUDED_SRC_include_APICInternal_h
    275285        struct APICCPU      s;
    276 #endif
     286# endif
    277287        uint8_t             padding[3840];      /* multiple of 64 */
    278288    } apic;
     289#endif
    279290
    280291    /*
     
    14331444    } gim;
    14341445
    1435     union
    1436     {
    1437 #ifdef VMM_INCLUDED_SRC_include_APICInternal_h
     1446#if defined(VBOX_VMM_TARGET_ARMV8)
     1447    union
     1448    {
     1449# ifdef VMM_INCLUDED_SRC_include_GICInternal_h
     1450        struct GIC  s;
     1451# endif
     1452        uint8_t     padding[128];       /* multiple of 8 */
     1453    } gic;
     1454#else
     1455    union
     1456    {
     1457# ifdef VMM_INCLUDED_SRC_include_APICInternal_h
    14381458        struct APIC s;
    1439 #endif
     1459# endif
    14401460        uint8_t     padding[128];       /* multiple of 8 */
    14411461    } apic;
     1462#endif
    14421463
    14431464    /* ---- begin small stuff ---- */
  • trunk/include/VBox/vmm/vm.mac

    r98103 r99385  
    8989    .gim                    resb 512
    9090    alignb 64
     91%ifdef VBOX_VMM_TARGET_ARMV8
     92    .gic                    resb 3840
     93%else
    9194    .apic                   resb 3840
     95%endif
    9296
    9397    alignb 64
     
    169173    .gim                    resb 448
    170174    alignb 64
     175%ifdef VBOX_VMM_TARGET_ARMV8
     176    .gic                    resb 128
     177%else
    171178    .apic                   resb 128
     179%endif
    172180    alignb 64
    173181    .vm                     resb 32
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