VirtualBox

Changeset 99743 in vbox for trunk/include/VBox


Ignore:
Timestamp:
May 11, 2023 9:59:52 AM (20 months ago)
Author:
vboxsync
Message:

VMM: Add full support for reading/writing I/O ports on ARMv8 in order to emulate PIO accesses to PCI devices through a dedicated MMIO region by the host to PCI bridge, bugref:10445

File:
1 edited

Legend:

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

    r99739 r99743  
    24302430
    24312431/** Current PDMDEVHLPR3 version number. */
    2432 #define PDM_DEVHLPR3_VERSION                    PDM_VERSION_MAKE_PP(0xffe7, 65, 0)
     2432#define PDM_DEVHLPR3_VERSION                    PDM_VERSION_MAKE_PP(0xffe7, 66, 0)
    24332433
    24342434/**
     
    25162516
    25172517    /**
    2518      * Writes to an I/O port register.
     2518     * Reads from an I/O port register.
    25192519     *
    25202520     * @returns Strict VBox status code. Informational status codes other than the one documented
     
    25302530     *
    25312531     * @thread EMT
    2532      * @todo r=aeichner This is only used by DevPCI.cpp to write the ELCR of the PIC. This shouldn't be done that way
    2533      *       and removed again as soon as possible (no time right now)...
     2532     *
     2533     * @note This is required for the ARM platform in order to emulate PIO accesses through a dedicated MMIO region.
     2534     */
     2535    DECLR3CALLBACKMEMBER(VBOXSTRICTRC, pfnIoPortRead,(PPDMDEVINS pDevIns, RTIOPORT Port, uint32_t *pu32Value, size_t cbValue));
     2536
     2537    /**
     2538     * Writes to an I/O port register.
     2539     *
     2540     * @returns Strict VBox status code. Informational status codes other than the one documented
     2541     *          here are to be treated as internal failure. Use IOM_SUCCESS() to check for success.
     2542     * @retval  VINF_SUCCESS                Success.
     2543     * @retval  VINF_EM_FIRST-VINF_EM_LAST  Success with some exceptions (see IOM_SUCCESS()), the
     2544     *                                      status code must be passed on to EM.
     2545     *
     2546     * @param   pDevIns     The device instance to register the ports with.
     2547     * @param   Port        The port to write to.
     2548     * @param   u32Value    The value to write.
     2549     * @param   cbValue     The size of the register to read in bytes. 1, 2 or 4 bytes.
     2550     *
     2551     * @thread EMT
     2552     *
     2553     * @note This is required for the ARM platform in order to emulate PIO accesses through a dedicated MMIO region.
    25342554     */
    25352555    DECLR3CALLBACKMEMBER(VBOXSTRICTRC, pfnIoPortWrite,(PPDMDEVINS pDevIns, RTIOPORT Port, uint32_t u32Value, size_t cbValue));
     
    66386658}
    66396659
     6660/**
     6661 * @copydoc PDMDEVHLPR3::pfnIoPortRead
     6662 */
     6663DECLINLINE(VBOXSTRICTRC) PDMDevHlpIoPortRead(PPDMDEVINS pDevIns, RTIOPORT Port, uint32_t *pu32Value, size_t cbValue)
     6664{
     6665    return pDevIns->pHlpR3->pfnIoPortRead(pDevIns, Port, pu32Value, cbValue);
     6666}
     6667
     6668/**
     6669 * @copydoc PDMDEVHLPR3::pfnIoPortWrite
     6670 */
     6671DECLINLINE(VBOXSTRICTRC) PDMDevHlpIoPortWrite(PPDMDEVINS pDevIns, RTIOPORT Port, uint32_t u32Value, size_t cbValue)
     6672{
     6673    return pDevIns->pHlpR3->pfnIoPortWrite(pDevIns, Port, u32Value, cbValue);
     6674}
     6675
    66406676
    66416677#endif /* IN_RING3 */
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