VirtualBox

Changeset 82311 in vbox for trunk/include


Ignore:
Timestamp:
Dec 1, 2019 1:45:02 AM (5 years ago)
Author:
vboxsync
Message:

IOM,PDMDevHlp: Kicked out the old I/O port code. bugref:9218

Location:
trunk/include/VBox/vmm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/iom.h

    r82094 r82311  
    507507 * @deprecated
    508508 * @{ */
    509 VMMR3_INT_DECL(int)  IOMR3IOPortRegisterR3(PVM pVM, PPDMDEVINS pDevIns, RTIOPORT PortStart, RTUINT cPorts, RTHCPTR pvUser,
    510                                            R3PTRTYPE(PFNIOMIOPORTOUT) pfnOutCallback, R3PTRTYPE(PFNIOMIOPORTIN) pfnInCallback,
    511                                            R3PTRTYPE(PFNIOMIOPORTOUTSTRING) pfnOutStringCallback, R3PTRTYPE(PFNIOMIOPORTINSTRING) pfnInStringCallback,
    512                                            const char *pszDesc);
    513 #if 0
    514 VMMR3_INT_DECL(int)  IOMR3IOPortRegisterRC(PVM pVM, PPDMDEVINS pDevIns, RTIOPORT PortStart, RTUINT cPorts, RTRCPTR pvUser,
    515                                            RCPTRTYPE(PFNIOMIOPORTOUT) pfnOutCallback, RCPTRTYPE(PFNIOMIOPORTIN) pfnInCallback,
    516                                            RCPTRTYPE(PFNIOMIOPORTOUTSTRING) pfnOutStrCallback, RCPTRTYPE(PFNIOMIOPORTINSTRING) pfnInStrCallback,
    517                                            const char *pszDesc);
    518 #endif
    519 VMMR3_INT_DECL(int)  IOMR3IOPortRegisterR0(PVM pVM, PPDMDEVINS pDevIns, RTIOPORT PortStart, RTUINT cPorts, RTR0PTR pvUser,
    520                                            R0PTRTYPE(PFNIOMIOPORTOUT) pfnOutCallback, R0PTRTYPE(PFNIOMIOPORTIN) pfnInCallback,
    521                                            R0PTRTYPE(PFNIOMIOPORTOUTSTRING) pfnOutStrCallback, R0PTRTYPE(PFNIOMIOPORTINSTRING) pfnInStrCallback,
    522                                            const char *pszDesc);
    523 VMMR3_INT_DECL(int)  IOMR3IOPortDeregister(PVM pVM, PPDMDEVINS pDevIns, RTIOPORT PortStart, RTUINT cPorts);
    524 
    525509VMMR3_INT_DECL(int)  IOMR3MmioRegisterR3(PVM pVM, PPDMDEVINS pDevIns, RTGCPHYS GCPhysStart, RTGCPHYS cbRange, RTHCPTR pvUser,
    526510                                         R3PTRTYPE(PFNIOMMMIOWRITE) pfnWriteCallback,
  • trunk/include/VBox/vmm/pdmdev.h

    r82224 r82311  
    19751975
    19761976/** Current PDMDEVHLPR3 version number. */
    1977 #define PDM_DEVHLPR3_VERSION                    PDM_VERSION_MAKE_PP(0xffe7, 38, 0)
     1977#define PDM_DEVHLPR3_VERSION                    PDM_VERSION_MAKE_PP(0xffe7, 39, 0)
    19781978
    19791979/**
     
    20612061    /** @}  */
    20622062
    2063     /**
    2064      * Register a number of I/O ports with a device.
    2065      *
    2066      * These callbacks are of course for the host context (HC).
    2067      * Register HC handlers before guest context (GC) handlers! There must be a
    2068      * HC handler for every GC handler!
    2069      *
    2070      * @returns VBox status.
    2071      * @param   pDevIns             The device instance to register the ports with.
    2072      * @param   Port                First port number in the range.
    2073      * @param   cPorts              Number of ports to register.
    2074      * @param   pvUser              User argument.
    2075      * @param   pfnOut              Pointer to function which is gonna handle OUT operations.
    2076      * @param   pfnIn               Pointer to function which is gonna handle IN operations.
    2077      * @param   pfnOutStr           Pointer to function which is gonna handle string OUT operations.
    2078      * @param   pfnInStr            Pointer to function which is gonna handle string IN operations.
    2079      * @param   pszDesc             Pointer to description string. This must not be freed.
    2080      * @remarks Caller enters the device critical section prior to invoking the
    2081      *          registered callback methods.
    2082      * @deprecated
    2083      */
    2084     DECLR3CALLBACKMEMBER(int, pfnIOPortRegister,(PPDMDEVINS pDevIns, RTIOPORT Port, RTIOPORT cPorts, RTHCPTR pvUser,
    2085                                                  PFNIOMIOPORTOUT pfnOut, PFNIOMIOPORTIN pfnIn,
    2086                                                  PFNIOMIOPORTOUTSTRING pfnOutStr, PFNIOMIOPORTINSTRING pfnInStr, const char *pszDesc));
    2087 
    2088     /**
    2089      * Register a number of I/O ports with a device for RC.
    2090      *
    2091      * These callbacks are for the raw-mode context (RC).  Register ring-3 context
    2092      * (R3) handlers before raw-mode context handlers!  There must be a R3 handler
    2093      * for every RC handler!
    2094      *
    2095      * @returns VBox status.
    2096      * @param   pDevIns             The device instance to register the ports with
    2097      *                              and which RC module to resolve the names
    2098      *                              against.
    2099      * @param   Port                First port number in the range.
    2100      * @param   cPorts              Number of ports to register.
    2101      * @param   pvUser              User argument.
    2102      * @param   pszOut              Name of the RC function which is gonna handle OUT operations.
    2103      * @param   pszIn               Name of the RC function which is gonna handle IN operations.
    2104      * @param   pszOutStr           Name of the RC function which is gonna handle string OUT operations.
    2105      * @param   pszInStr            Name of the RC function which is gonna handle string IN operations.
    2106      * @param   pszDesc             Pointer to description string. This must not be freed.
    2107      * @remarks Caller enters the device critical section prior to invoking the
    2108      *          registered callback methods.
    2109      * @deprecated
    2110      */
    2111     DECLR3CALLBACKMEMBER(int, pfnIOPortRegisterRC,(PPDMDEVINS pDevIns, RTIOPORT Port, RTIOPORT cPorts, RTRCPTR pvUser,
    2112                                                    const char *pszOut, const char *pszIn,
    2113                                                    const char *pszOutStr, const char *pszInStr, const char *pszDesc));
    2114 
    2115     /**
    2116      * Register a number of I/O ports with a device.
    2117      *
    2118      * These callbacks are of course for the ring-0 host context (R0).
    2119      * Register R3 (HC) handlers before R0 (R0) handlers! There must be a R3 (HC) handler for every R0 handler!
    2120      *
    2121      * @returns VBox status.
    2122      * @param   pDevIns             The device instance to register the ports with.
    2123      * @param   Port                First port number in the range.
    2124      * @param   cPorts              Number of ports to register.
    2125      * @param   pvUser              User argument. (if pointer, then it must be in locked memory!)
    2126      * @param   pszOut              Name of the R0 function which is gonna handle OUT operations.
    2127      * @param   pszIn               Name of the R0 function which is gonna handle IN operations.
    2128      * @param   pszOutStr           Name of the R0 function which is gonna handle string OUT operations.
    2129      * @param   pszInStr            Name of the R0 function which is gonna handle string IN operations.
    2130      * @param   pszDesc             Pointer to description string. This must not be freed.
    2131      * @remarks Caller enters the device critical section prior to invoking the
    2132      *          registered callback methods.
    2133      * @deprecated
    2134      */
    2135     DECLR3CALLBACKMEMBER(int, pfnIOPortRegisterR0,(PPDMDEVINS pDevIns, RTIOPORT Port, RTIOPORT cPorts, RTR0PTR pvUser,
    2136                                                    const char *pszOut, const char *pszIn,
    2137                                                    const char *pszOutStr, const char *pszInStr, const char *pszDesc));
    2138 
    2139     /**
    2140      * Deregister I/O ports.
    2141      *
    2142      * This naturally affects both guest context (GC), ring-0 (R0) and ring-3 (R3/HC) handlers.
    2143      *
    2144      * @returns VBox status.
    2145      * @param   pDevIns             The device instance owning the ports.
    2146      * @param   Port                First port number in the range.
    2147      * @param   cPorts              Number of ports to deregister.
    2148      */
    2149     DECLR3CALLBACKMEMBER(int, pfnIOPortDeregister,(PPDMDEVINS pDevIns, RTIOPORT Port, RTIOPORT cPorts));
    2150 
    21512063    /** @name MMIO
    21522064     * @{ */
     
    24372349    DECLR3CALLBACKMEMBER(int, pfnMmio2ChangeRegionNo,(PPDMDEVINS pDevIns, PGMMMIO2HANDLE hRegion, uint32_t iNewRegion));
    24382350    /** @} */
    2439 
    2440     /**
    2441      * Allocate and register a MMIO2 region.
    2442      *
    2443      * As mentioned elsewhere, MMIO2 is just RAM spelled differently.  It's RAM
    2444      * associated with a device.  It is also non-shared memory with a permanent
    2445      * ring-3 mapping and page backing (presently).
    2446      *
    2447      * @returns VBox status.
    2448      * @param   pDevIns             The device instance.
    2449      * @param   pPciDev             The PCI device the region is associated with, or
    2450      *                              NULL if no PCI device association.
    2451      * @param   iRegion             The region number. Use the PCI region number as
    2452      *                              this must be known to the PCI bus device too. If
    2453      *                              it's not associated with the PCI device, then
    2454      *                              any number up to UINT8_MAX is fine.
    2455      * @param   cb                  The size (in bytes) of the region.
    2456      * @param   fFlags              Reserved for future use, must be zero.
    2457      * @param   ppv                 Where to store the address of the ring-3 mapping
    2458      *                              of the memory.
    2459      * @param   pszDesc             Pointer to description string. This must not be
    2460      *                              freed.
    2461      * @thread  EMT.
    2462      * @deprecated
    2463      */
    2464     DECLR3CALLBACKMEMBER(int, pfnMMIO2Register,(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion, RTGCPHYS cb,
    2465                                                 uint32_t fFlags, void **ppv, const char *pszDesc));
    2466 
    2467     /**
    2468      * Deregisters and frees a MMIO or MMIO2 region.
    2469      *
    2470      * Any physical (and virtual) access handlers registered for the region must
    2471      * be deregistered before calling this function (MMIO2 only).
    2472      *
    2473      * @returns VBox status code.
    2474      * @param   pDevIns             The device instance.
    2475      * @param   pPciDev             The PCI device the region is associated with, or
    2476      *                              NULL if not associated with any.
    2477      * @param   iRegion             The region number used during registration.
    2478      * @thread  EMT.
    2479      * @deprecated
    2480      */
    2481     DECLR3CALLBACKMEMBER(int, pfnMMIOExDeregister,(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion));
    2482 
    2483     /**
    2484      * Maps a MMIO or MMIO2 region into the physical memory space.
    2485      *
    2486      * A MMIO2 range or a pre-registered MMIO range may overlap with base memory if
    2487      * a lot of RAM is configured for the VM, in  which case we'll drop the base
    2488      * memory pages.  Presently we will make no attempt to preserve anything that
    2489      * happens to be present in the base memory that is replaced, this is of course
    2490      * incorrect but it's too much effort.
    2491      *
    2492      * @returns VBox status code.
    2493      * @param   pDevIns             The device instance.
    2494      * @param   pPciDev             The PCI device the region is associated with, or
    2495      *                              NULL if not associated with any.
    2496      * @param   iRegion             The region number used during registration.
    2497      * @param   GCPhys              The physical address to map it at.
    2498      * @thread  EMT.
    2499      * @deprecated for MMIO
    2500      */
    2501     DECLR3CALLBACKMEMBER(int, pfnMMIOExMap,(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion, RTGCPHYS GCPhys));
    2502 
    2503     /**
    2504      * Unmaps a MMIO or MMIO2 region previously mapped using pfnMMIOExMap.
    2505      *
    2506      * @returns VBox status code.
    2507      * @param   pDevIns             The device instance.
    2508      * @param   pPciDev             The PCI device the region is associated with, or
    2509      *                              NULL if not associated with any.
    2510      * @param   iRegion             The region number used during registration.
    2511      * @param   GCPhys              The physical address it's currently mapped at.
    2512      * @thread  EMT.
    2513      * @deprecated for MMIO
    2514      */
    2515     DECLR3CALLBACKMEMBER(int, pfnMMIOExUnmap,(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion, RTGCPHYS GCPhys));
    2516 
    2517     /**
    2518      * Reduces the length of a MMIO2 or pre-registered MMIO range.
    2519      *
    2520      * This is for implementations of PDMPCIDEV::pfnRegionLoadChangeHookR3 and will
    2521      * only work during saved state restore.  It will not call the PCI bus code, as
    2522      * that is expected to restore the saved resource configuration.
    2523      *
    2524      * It just adjusts the mapping length of the region so that when pfnMMIOExMap is
    2525      * called it will only map @a cbRegion bytes and not the value set during
    2526      * registration.
    2527      *
    2528      * @return VBox status code.
    2529      * @param   pDevIns             The device owning the range.
    2530      * @param   pPciDev             The PCI device the region is associated with, or
    2531      *                              NULL if not associated with any.
    2532      * @param   iRegion             The region.
    2533      * @param   cbRegion            The new size, must be smaller.
    2534      */
    2535     DECLR3CALLBACKMEMBER(int, pfnMMIOExReduce,(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion, RTGCPHYS cbRegion));
    2536 
    2537     /**
    2538      * Maps a portion of an MMIO2 region into the hypervisor region.
    2539      *
    2540      * Callers of this API must never deregister the MMIO2 region before the
    2541      * VM is powered off.
    2542      *
    2543      * @return VBox status code.
    2544      * @param   pDevIns             The device owning the MMIO2 memory.
    2545      * @param   pPciDev             The PCI device the region is associated with, or
    2546      *                              NULL if not associated with any.
    2547      * @param   iRegion             The region.
    2548      * @param   off                 The offset into the region. Will be rounded down
    2549      *                              to closest page boundary.
    2550      * @param   cb                  The number of bytes to map. Will be rounded up
    2551      *                              to the closest page boundary.
    2552      * @param   pszDesc             Mapping description.
    2553      * @param   pRCPtr              Where to store the RC address.
    2554      */
    2555     DECLR3CALLBACKMEMBER(int, pfnMMHyperMapMMIO2,(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion, RTGCPHYS off,
    2556                                                   RTGCPHYS cb, const char *pszDesc, PRTRCPTR pRCPtr));
    2557 
    2558     /**
    2559      * Maps a portion of an MMIO2 region into kernel space (host).
    2560      *
    2561      * The kernel mapping will become invalid when the MMIO2 memory is deregistered
    2562      * or the VM is terminated.
    2563      *
    2564      * @return VBox status code.
    2565      * @param   pDevIns             The device owning the MMIO2 memory.
    2566      * @param   pPciDev             The PCI device the region is associated with, or
    2567      *                              NULL if not associated with any.
    2568      * @param   iRegion             The region.
    2569      * @param   off                 The offset into the region. Must be page
    2570      *                              aligned.
    2571      * @param   cb                  The number of bytes to map. Must be page
    2572      *                              aligned.
    2573      * @param   pszDesc             Mapping description.
    2574      * @param   pR0Ptr              Where to store the R0 address.
    2575      */
    2576     DECLR3CALLBACKMEMBER(int, pfnMMIO2MapKernel,(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion, RTGCPHYS off,
    2577                                                  RTGCPHYS cb, const char *pszDesc, PRTR0PTR pR0Ptr));
    25782351
    25792352    /**
     
    32273000     *                              This must be kept in the instance data.
    32283001     *                              The PCI configuration must be initialized before registration.
    3229      * @param   fFlags              Reserved for future use, PDMPCIDEVREG_F_MBZ.
     3002     * @param   fFlags              0, PDMPCIDEVREG_F_PCI_BRIDGE or
     3003     *                              PDMPCIDEVREG_F_NOT_MANDATORY_NO.
    32303004     * @param   uPciDevNo           PDMPCIDEVREG_DEV_NO_FIRST_UNUSED,
    32313005     *                              PDMPCIDEVREG_DEV_NO_SAME_AS_PREV, or a specific
     
    40883862    DECLR3CALLBACKMEMBER(void, pfnPhysBulkReleasePageMappingLocks,(PPDMDEVINS pDevIns, uint32_t cPages, PPGMPAGEMAPLOCK paLocks));
    40893863
    4090     /**
    4091      * Changes the number of an MMIO2 or pre-registered MMIO region.
    4092      *
    4093      * This should only be used to deal with saved state problems, so there is no
    4094      * convenience inline wrapper for this method.
    4095      *
    4096      * @returns VBox status code.
    4097      * @param   pDevIns             The device instance.
    4098      * @param   pPciDev             The PCI device the region is associated with, or
    4099      *                              NULL if not associated with any.
    4100      * @param   iRegion             The region.
    4101      * @param   iNewRegion          The new region index.
    4102      *
    4103      * @sa      @bugref{9359}
    4104      */
    4105     DECLR3CALLBACKMEMBER(int, pfnMMIOExChangeRegionNo,(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion,
    4106                                                        uint32_t iNewRegion));
    4107 
    41083864    /** Space reserved for future members.
    41093865     * @{ */
     
    57275483
    57285484/**
    5729  * @copydoc PDMDEVHLPR3::pfnIOPortRegister
    5730  */
    5731 DECLINLINE(int) PDMDevHlpIOPortRegister(PPDMDEVINS pDevIns, RTIOPORT Port, RTIOPORT cPorts, RTHCPTR pvUser,
    5732                                         PFNIOMIOPORTOUT pfnOut, PFNIOMIOPORTIN pfnIn,
    5733                                         PFNIOMIOPORTOUTSTRING pfnOutStr, PFNIOMIOPORTINSTRING pfnInStr, const char *pszDesc)
    5734 {
    5735     return pDevIns->pHlpR3->pfnIOPortRegister(pDevIns, Port, cPorts, pvUser, pfnOut, pfnIn, pfnOutStr, pfnInStr, pszDesc);
    5736 }
    5737 
    5738 /**
    5739  * @copydoc PDMDEVHLPR3::pfnIOPortRegisterRC
    5740  */
    5741 DECLINLINE(int) PDMDevHlpIOPortRegisterRC(PPDMDEVINS pDevIns, RTIOPORT Port, RTIOPORT cPorts, RTRCPTR pvUser,
    5742                                           const char *pszOut, const char *pszIn, const char *pszOutStr,
    5743                                           const char *pszInStr, const char *pszDesc)
    5744 {
    5745     return pDevIns->pHlpR3->pfnIOPortRegisterRC(pDevIns, Port, cPorts, pvUser, pszOut, pszIn, pszOutStr, pszInStr, pszDesc);
    5746 }
    5747 
    5748 /**
    5749  * @copydoc PDMDEVHLPR3::pfnIOPortRegisterR0
    5750  */
    5751 DECLINLINE(int) PDMDevHlpIOPortRegisterR0(PPDMDEVINS pDevIns, RTIOPORT Port, RTIOPORT cPorts, RTR0PTR pvUser,
    5752                                           const char *pszOut, const char *pszIn, const char *pszOutStr,
    5753                                           const char *pszInStr, const char *pszDesc)
    5754 {
    5755     return pDevIns->pHlpR3->pfnIOPortRegisterR0(pDevIns, Port, cPorts, pvUser, pszOut, pszIn, pszOutStr, pszInStr, pszDesc);
    5756 }
    5757 
    5758 /**
    5759  * @copydoc PDMDEVHLPR3::pfnIOPortDeregister
    5760  */
    5761 DECLINLINE(int) PDMDevHlpIOPortDeregister(PPDMDEVINS pDevIns, RTIOPORT Port, RTIOPORT cPorts)
    5762 {
    5763     return pDevIns->pHlpR3->pfnIOPortDeregister(pDevIns, Port, cPorts);
    5764 }
    5765 
    5766 /**
    57675485 * Combines PDMDevHlpIoPortCreate() & PDMDevHlpIoPortMap().
    57685486 */
     
    61745892#endif /* !IN_RING3 || DOXYGEN_RUNNING */
    61755893#ifdef IN_RING3
    6176 
    6177 /**
    6178  * @copydoc PDMDEVHLPR3::pfnMMIO2Register
    6179  */
    6180 DECLINLINE(int) PDMDevHlpMMIO2Register(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion, RTGCPHYS cb,
    6181                                        uint32_t fFlags, void **ppv, const char *pszDesc)
    6182 {
    6183     return pDevIns->pHlpR3->pfnMMIO2Register(pDevIns, pPciDev, iRegion, cb, fFlags, ppv, pszDesc);
    6184 }
    6185 
    6186 /**
    6187  * @copydoc PDMDEVHLPR3::pfnMMIOExDeregister
    6188  * @param   pPciDev             The PCI device the region is associated with, use
    6189  *                              NULL to indicate it is not associated with a device.
    6190  */
    6191 DECLINLINE(int) PDMDevHlpMMIOExDeregister(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion)
    6192 {
    6193     return pDevIns->pHlpR3->pfnMMIOExDeregister(pDevIns, pPciDev, iRegion);
    6194 }
    6195 
    6196 /**
    6197  * @copydoc PDMDEVHLPR3::pfnMMIOExMap
    6198  * @param   pPciDev             The PCI device the region is associated with, use
    6199  *                              NULL to indicate it is not associated with a device.
    6200  */
    6201 DECLINLINE(int) PDMDevHlpMMIOExMap(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion, RTGCPHYS GCPhys)
    6202 {
    6203     return pDevIns->pHlpR3->pfnMMIOExMap(pDevIns, pPciDev, iRegion, GCPhys);
    6204 }
    6205 
    6206 /**
    6207  * @copydoc PDMDEVHLPR3::pfnMMIOExUnmap
    6208  * @param   pPciDev             The PCI device the region is associated with, use
    6209  *                              NULL to indicate it is not associated with a device.
    6210  */
    6211 DECLINLINE(int) PDMDevHlpMMIOExUnmap(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion, RTGCPHYS GCPhys)
    6212 {
    6213     return pDevIns->pHlpR3->pfnMMIOExUnmap(pDevIns, pPciDev, iRegion, GCPhys);
    6214 }
    6215 
    6216 /**
    6217  * @copydoc PDMDEVHLPR3::pfnMMIOExReduce
    6218  */
    6219 DECLINLINE(int) PDMDevHlpMMIOExReduce(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion, RTGCPHYS cbRegion)
    6220 {
    6221     return pDevIns->pHlpR3->pfnMMIOExReduce(pDevIns, pPciDev, iRegion, cbRegion);
    6222 }
    6223 
    6224 #ifdef VBOX_WITH_RAW_MODE_KEEP
    6225 /**
    6226  * @copydoc PDMDEVHLPR3::pfnMMHyperMapMMIO2
    6227  */
    6228 DECLINLINE(int) PDMDevHlpMMHyperMapMMIO2(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion, RTGCPHYS off, RTGCPHYS cb,
    6229                                          const char *pszDesc, PRTRCPTR pRCPtr)
    6230 {
    6231     return pDevIns->pHlpR3->pfnMMHyperMapMMIO2(pDevIns, pPciDev, iRegion, off, cb, pszDesc, pRCPtr);
    6232 }
    6233 #endif
    6234 
    6235 /**
    6236  * @copydoc PDMDEVHLPR3::pfnMMIO2MapKernel
    6237  */
    6238 DECLINLINE(int) PDMDevHlpMMIO2MapKernel(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion, RTGCPHYS off, RTGCPHYS cb,
    6239                                          const char *pszDesc, PRTR0PTR pR0Ptr)
    6240 {
    6241     return pDevIns->pHlpR3->pfnMMIO2MapKernel(pDevIns, pPciDev, iRegion, off, cb, pszDesc, pR0Ptr);
    6242 }
    62435894
    62445895/**
     
    68316482
    68326483/**
    6833  * Registers a I/O region (memory mapped or I/O ports) for the default PCI
    6834  * device.
    6835  *
    6836  * @returns VBox status code.
    6837  * @param   pDevIns             The device instance.
    6838  * @param   iRegion             The region number.
    6839  * @param   cbRegion            Size of the region.
    6840  * @param   enmType             PCI_ADDRESS_SPACE_MEM, PCI_ADDRESS_SPACE_IO or PCI_ADDRESS_SPACE_MEM_PREFETCH.
    6841  * @param   pfnMapUnmap         Callback for doing the mapping.
    6842  * @remarks The callback will be invoked holding the PDM lock. The device lock
    6843  *          is NOT take because that is very likely be a lock order violation.
    6844  * @remarks Old callback style, won't get unmap calls.
    6845  */
    6846 DECLINLINE(int) PDMDevHlpPCIIORegionRegister(PPDMDEVINS pDevIns, uint32_t iRegion, RTGCPHYS cbRegion,
    6847                                              PCIADDRESSSPACE enmType, PFNPCIIOREGIONMAP pfnMapUnmap)
    6848 {
    6849     return pDevIns->pHlpR3->pfnPCIIORegionRegister(pDevIns, NULL, iRegion, cbRegion, enmType,
    6850                                                    PDMPCIDEV_IORGN_F_NO_HANDLE, UINT64_MAX, pfnMapUnmap);
    6851 }
    6852 
    6853 /**
    6854  * @sa PDMDEVHLPR3::pfnPCIIORegionRegister
    6855  * @remarks Old callback style, won't get unmap calls.
    6856  */
    6857 DECLINLINE(int) PDMDevHlpPCIIORegionRegisterEx(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion, RTGCPHYS cbRegion,
    6858                                                PCIADDRESSSPACE enmType, PFNPCIIOREGIONMAP pfnMapUnmap)
    6859 {
    6860     return pDevIns->pHlpR3->pfnPCIIORegionRegister(pDevIns, pPciDev, iRegion, cbRegion, enmType,
    6861                                                    PDMPCIDEV_IORGN_F_NO_HANDLE, UINT64_MAX, pfnMapUnmap);
    6862 }
    6863 
    6864 /**
    68656484 * Registers a I/O port region for the default PCI device.
    68666485 *
     
    70626681    if (RT_SUCCESS(rc))
    70636682        rc = pDevIns->pHlpR3->pfnPCIIORegionRegister(pDevIns, pDevIns->apPciDevs[0], iPciRegion, cbRegion, enmType,
    7064                                                      PDMPCIDEV_IORGN_F_MMIO2_HANDLE, *phRegion, NULL /*pfnCallback*/);
     6683                                                     PDMPCIDEV_IORGN_F_MMIO2_HANDLE | PDMPCIDEV_IORGN_F_NEW_STYLE,
     6684                                                     *phRegion, NULL /*pfnCallback*/);
    70656685    return rc;
    70666686}
     
    70976717    if (RT_SUCCESS(rc))
    70986718        rc = pDevIns->pHlpR3->pfnPCIIORegionRegister(pDevIns, pDevIns->apPciDevs[0], iPciRegion, cbRegion, enmType,
    7099                                                      PDMPCIDEV_IORGN_F_MMIO2_HANDLE, *phRegion, pfnMapUnmap);
     6719                                                     PDMPCIDEV_IORGN_F_MMIO2_HANDLE | PDMPCIDEV_IORGN_F_NEW_STYLE,
     6720                                                     *phRegion, pfnMapUnmap);
    71006721    return rc;
    71016722}
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