VirtualBox

Changeset 100267 in vbox for trunk/include


Ignore:
Timestamp:
Jun 23, 2023 2:57:53 PM (18 months ago)
Author:
vboxsync
Message:

Additions: Make the R0 physical heap configurable to allow for allocations >= 4GiB if supported by the VBox device (the MMIO request path is available), add support for the MMIO request path required for ARM, bugref:10457

Location:
trunk/include/VBox
Files:
2 edited

Legend:

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

    r98103 r100267  
    266266            /** The MMIO mapping.  NULL if no MMIO region. */
    267267            struct VMMDevMemory volatile RT_FAR *pvVmmDevMapping;
     268            /** The MMIO region for the request port, NULL if not available. */
     269            uintptr_t volatile RT_FAR           *pMmioReq;
    268270            /** The I/O port address. */
    269271            RTIOPORT                        IoPort;
     
    273275    } u;
    274276} VBGLIOCGETVMMDEVIOINFO, RT_FAR *PVBGLIOCGETVMMDEVIOINFO;
    275 AssertCompileSize(VBGLIOCGETVMMDEVIOINFO, 24 + (HC_ARCH_BITS == 64 ? 16 : 8));
     277AssertCompileSize(VBGLIOCGETVMMDEVIOINFO, 24 + (HC_ARCH_BITS == 64 ? 24 : 12));
    276278/** @} */
    277279
     
    388390    VBGLREQHDR      Hdr;
    389391    /** The physical address of the following VMMDevHGCMCall structure. */
    390     RTGCPHYS32      GCPhysReq;
     392    RTGCPHYS64      GCPhysReq;
     393    uint64_t        uTimestamp[2]; /** @todo Looks completely unused. */
    391394    /** Set if interruptible. */
    392395    bool            fInterruptible;
    393396    /** Reserved. */
    394397    uint8_t         abReserved0[3];
    395     uint64_t        uTimestamp[2];
    396     uint8_t         abReserved1[4];
    397398    /* After this structure follows a VMMDevHGCMCall strcuture (44 bytes), then
    398399       zero or more HGCMFunctionParameter structures (12 or 16 bytes), and finally
     
    400401} VBGLIOCIDCHGCMFASTCALL, RT_FAR *PVBGLIOCIDCHGCMFASTCALL;
    401402#pragma pack()
    402 AssertCompileSize(VBGLIOCIDCHGCMFASTCALL, /* 24 + 4 + 1 + 3 + 2*8 + 4 = 0x34 (52) = */ 0x34);
     403AssertCompileSize(VBGLIOCIDCHGCMFASTCALL, /* 24 + 8 + 2*8 + 1 + 3 = 0x34 (52) = */ 0x34);
    403404
    404405/**
     
    407408 *
    408409 * @param   a_pHdr      The request header to initialize.
    409  * @param   a_HdrPhys   The 32-bit physical address corresponding to @a a_pHdr.
     410 * @param   a_HdrPhys   The physical address corresponding to @a a_pHdr.
    410411 * @param   a_pCall     Pointer to the VMMDevHGCMCall structure.
    411412 * @param   a_idClient  The HGCM client ID.
  • trunk/include/VBox/VBoxGuestLib.h

    r100205 r100267  
    121121 * @return VBox status code.
    122122 */
    123 DECLR0VBGL(int)     VbglR0InitPrimary(RTIOPORT portVMMDev, VMMDevMemory *pVMMDevMemory, uint32_t *pfFeatures);
     123DECLR0VBGL(int)     VbglR0InitPrimary(RTIOPORT portVMMDev, uintptr_t volatile *pMmioReq, VMMDevMemory *pVMMDevMemory, uint32_t *pfFeatures);
    124124
    125125/**
     
    484484 *
    485485 * @returns VBox status code.
    486  */
    487 DECLR0VBGL(int)     VbglR0PhysHeapInit(void);
     486 * @param   fAlloc32BitAddr     Flag whether all allocations should be below 4GiB,
     487 *                              so they fit into a 32-bit address.
     488 */
     489DECLR0VBGL(int)     VbglR0PhysHeapInit(bool fAlloc32BitAddr);
    488490
    489491/**
     
    513515 *          isn't valid.
    514516 */
    515 DECLR0VBGL(uint32_t) VbglR0PhysHeapGetPhysAddr(void *pv);
     517DECLR0VBGL(RTCCPHYS) VbglR0PhysHeapGetPhysAddr(void *pv);
    516518
    517519# ifdef IN_TESTCASE
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