VirtualBox

Changeset 25995 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Jan 25, 2010 11:33:03 AM (15 years ago)
Author:
vboxsync
Message:

VMM: PDM infrastructure for HPET

File:
1 edited

Legend:

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

    r25893 r25995  
    16111611
    16121612
     1613/**
     1614 * HPET registration structure.
     1615 */
     1616typedef struct PDMHPETREG
     1617{
     1618    /** Struct version+magic number (PDM_HPETREG_VERSION). */
     1619    uint32_t            u32Version;
     1620
     1621} PDMHPETREG;
     1622/** Pointer to an HPET registration structure. */
     1623typedef PDMHPETREG *PPDMHPETREG;
     1624
     1625/** Current PDMHPETREG version number. */
     1626#define PDM_HPETREG_VERSION     0x1f010000
     1627
     1628/**
     1629 * HPET RC helpers.
     1630 */
     1631typedef struct PDMHPETHLPRC
     1632{
     1633    /** Structure version. PDM_HPETHLPRC_VERSION defines the current version. */
     1634    uint32_t                u32Version;
     1635
     1636    /**
     1637     * Acquires the PDM lock.
     1638     *
     1639     * @returns VINF_SUCCESS on success.
     1640     * @returns rc if we failed to acquire the lock.
     1641     * @param   pDevIns         The HPET device instance.
     1642     * @param   rc              What to return if we fail to acquire the lock.
     1643     */
     1644    DECLRCCALLBACKMEMBER(int,   pfnLock,(PPDMDEVINS pDevIns, int rc));
     1645
     1646    /**
     1647     * Releases the PDM lock.
     1648     *
     1649     * @param   pDevIns         The HPET device instance.
     1650     */
     1651    DECLRCCALLBACKMEMBER(void,  pfnUnlock,(PPDMDEVINS pDevIns));
     1652
     1653    /** Just a safety precaution. */
     1654    uint32_t                u32TheEnd;
     1655} PDMHPETHLPRC;
     1656
     1657/** Pointer to HPET RC helpers. */
     1658typedef RCPTRTYPE(PDMHPETHLPRC *) PPDMHPETHLPRC;
     1659/** Pointer to const HPET RC helpers. */
     1660typedef RCPTRTYPE(const PDMHPETHLPRC *) PCPDMHPETHLPRC;
     1661
     1662/** Current PDMHPETHLPRC version number. */
     1663#define PDM_HPETHLPRC_VERSION  0xe1010000
     1664
     1665
     1666/**
     1667 * HPET R0 helpers.
     1668 */
     1669typedef struct PDMHPETHLPR0
     1670{
     1671    /** Structure version. PDM_HPETHLPR0_VERSION defines the current version. */
     1672    uint32_t                u32Version;
     1673
     1674    /**
     1675     * Acquires the PDM lock.
     1676     *
     1677     * @returns VINF_SUCCESS on success.
     1678     * @returns rc if we failed to acquire the lock.
     1679     * @param   pDevIns         The HPET device instance.
     1680     * @param   rc              What to return if we fail to acquire the lock.
     1681     */
     1682    DECLR0CALLBACKMEMBER(int,   pfnLock,(PPDMDEVINS pDevIns, int rc));
     1683
     1684    /**
     1685     * Releases the PDM lock.
     1686     *
     1687     * @param   pDevIns         The HPET device instance.
     1688     */
     1689    DECLR0CALLBACKMEMBER(void,  pfnUnlock,(PPDMDEVINS pDevIns));
     1690
     1691    /** Just a safety precaution. */
     1692    uint32_t                u32TheEnd;
     1693} PDMHPETHLPR0;
     1694
     1695/** Pointer to HPET R0 helpers. */
     1696typedef R0PTRTYPE(PDMHPETHLPR0 *) PPDMHPETHLPR0;
     1697/** Pointer to const HPET R0 helpers. */
     1698typedef R0PTRTYPE(const PDMHPETHLPR0 *) PCPDMHPETHLPR0;
     1699
     1700/** Current PDMHPETHLPR0 version number. */
     1701#define PDM_HPETHLPR0_VERSION  0xe1010000
     1702
     1703/**
     1704 * HPET R3 helpers.
     1705 */
     1706typedef struct PDMHPETHLPR3
     1707{
     1708    /** Structure version. PDM_HPETHLP_VERSION defines the current version. */
     1709    uint32_t                u32Version;
     1710
     1711
     1712    /**
     1713     * Set the interrupt force action flag.
     1714     *
     1715     * @returns VINF_SUCCESS on success.
     1716     * @returns rc if we failed to set legacy mode.
     1717     * @param   pDevIns         Device instance of the HPET.
     1718     * @param   fActivate       Activate or deactivate legacy mode.
     1719     */
     1720    DECLR3CALLBACKMEMBER(int, pfnSetLegacyMode,(PPDMDEVINS pDevIns, bool fActivate));
     1721
     1722    /**
     1723     * Acquires the PDM lock.
     1724     *
     1725     * @returns VINF_SUCCESS on success.
     1726     * @returns rc if we failed to acquire the lock.
     1727     * @param   pDevIns         The HPET device instance.
     1728     * @param   rc              What to return if we fail to acquire the lock.
     1729     */
     1730    DECLR3CALLBACKMEMBER(int,   pfnLock,(PPDMDEVINS pDevIns, int rc));
     1731
     1732    /**
     1733     * Releases the PDM lock.
     1734     *
     1735     * @param   pDevIns         The HPET device instance.
     1736     */
     1737    DECLR3CALLBACKMEMBER(void,  pfnUnlock,(PPDMDEVINS pDevIns));
     1738
     1739    /**
     1740     * Gets the address of the RC HPET helpers.
     1741     *
     1742     * This should be called at both construction and relocation time
     1743     * to obtain the correct address of the RC helpers.
     1744     *
     1745     * @returns RC pointer to the HPET helpers.
     1746     * @param   pDevIns         Device instance of the HPET.
     1747     */
     1748    DECLR3CALLBACKMEMBER(PCPDMHPETHLPRC, pfnGetRCHelpers,(PPDMDEVINS pDevIns));
     1749
     1750    /**
     1751     * Gets the address of the R0 HPET helpers.
     1752     *
     1753     * This should be called at both construction and relocation time
     1754     * to obtain the correct address of the R0 helpers.
     1755     *
     1756     * @returns R0 pointer to the HPET helpers.
     1757     * @param   pDevIns         Device instance of the HPET.
     1758     */
     1759    DECLR3CALLBACKMEMBER(PCPDMHPETHLPR0, pfnGetR0Helpers,(PPDMDEVINS pDevIns));
     1760
     1761    /** Just a safety precaution. */
     1762    uint32_t                u32TheEnd;
     1763} PDMHPETHLPR3;
     1764
     1765/** Pointer to HPET R3 helpers. */
     1766typedef R3PTRTYPE(PDMHPETHLPR3 *) PPDMHPETHLPR3;
     1767/** Pointer to const HPET R3 helpers. */
     1768typedef R3PTRTYPE(const PDMHPETHLPR3 *) PCPDMHPETHLPR3;
     1769
     1770/** Current PDMHPETHLPR3 version number. */
     1771#define PDM_HPETHLPR3_VERSION  0x1e010000
     1772
    16131773
    16141774#ifdef IN_RING3
     
    25082668
    25092669    /**
     2670     * Register the HPET device.
     2671     *
     2672     * @returns VBox status code.
     2673     * @param   pDevIns             Device instance.
     2674     * @param   pHpetReg            Pointer to a HPET registration structure.
     2675     * @param   ppHpetHlpR3         Where to store the pointer to the HPET
     2676     *                              helpers.
     2677     */
     2678    DECLR3CALLBACKMEMBER(int, pfnHPETRegister,(PPDMDEVINS pDevIns, PPDMHPETREG pHpetReg, PCPDMHPETHLPR3 *ppHpetHlpR3));
     2679
     2680    /**
    25102681     * Register the DMA device.
    25112682     *
     
    29473118
    29483119/** Current PDMDEVHLP version number. */
    2949 #define PDM_DEVHLP_VERSION  0xf20c0000
     3120#define PDM_DEVHLP_VERSION  0xf20c0001
    29503121
    29513122
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