VirtualBox

Changeset 18143 in vbox for trunk/include


Ignore:
Timestamp:
Mar 23, 2009 3:10:24 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
44841
Message:

VMM,Devices: Changed ROM registration and fixed some shadowed ROM issues in the new phys code.

Location:
trunk/include/VBox
Files:
2 edited

Legend:

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

    r18101 r18143  
    18981898     *                              This must be cbRange bytes big.
    18991899     *                              It will be copied and doesn't have to stick around if fShadow is clear.
    1900      * @param   fShadow             Whether to emulate ROM shadowing. This involves leaving
    1901      *                              the ROM writable for a while during the POST and refreshing
    1902      *                              it at reset. When this flag is set, the memory pointed to by
    1903      *                              pvBinary has to stick around for the lifespan of the VM.
     1900     * @param   fFlags              Shadow ROM flags, PGMPHYS_ROM_FLAGS_* in pgm.h.
    19041901     * @param   pszDesc             Pointer to description string. This must not be freed.
    19051902     *
     
    19071904     *          manually from the device yet. At present I doubt we need such features...
    19081905     */
    1909     DECLR3CALLBACKMEMBER(int, pfnROMRegister,(PPDMDEVINS pDevIns, RTGCPHYS GCPhysStart, RTUINT cbRange, const void *pvBinary, bool fShadow, const char *pszDesc));
     1906    DECLR3CALLBACKMEMBER(int, pfnROMRegister,(PPDMDEVINS pDevIns, RTGCPHYS GCPhysStart, RTUINT cbRange, const void *pvBinary, uint32_t fFlags, const char *pszDesc));
    19101907
    19111908    /**
     
    19131910     *
    19141911     * @returns VBox status.
    1915      * @param   pDevIns         Device instance.
    1916      * @param   pszName         Data unit name.
    1917      * @param   u32Instance     The instance identifier of the data unit.
    1918      *                          This must together with the name be unique.
    1919      * @param   u32Version      Data layout version number.
    1920      * @param   cbGuess         The approximate amount of data in the unit.
    1921      *                          Only for progress indicators.
    1922      * @param   pfnSavePrep     Prepare save callback, optional.
    1923      * @param   pfnSaveExec     Execute save callback, optional.
    1924      * @param   pfnSaveDone     Done save callback, optional.
    1925      * @param   pfnLoadPrep     Prepare load callback, optional.
    1926      * @param   pfnLoadExec     Execute load callback, optional.
    1927      * @param   pfnLoadDone     Done load callback, optional.
     1912     * @param   pDevIns             Device instance.
     1913     * @param   pszName             Data unit name.
     1914     * @param   u32Instance         The instance identifier of the data unit.
     1915     *                              This must together with the name be unique.
     1916     * @param   u32Version          Data layout version number.
     1917     * @param   cbGuess             The approximate amount of data in the unit.
     1918     *                              Only for progress indicators.
     1919     * @param   pfnSavePrep         Prepare save callback, optional.
     1920     * @param   pfnSaveExec         Execute save callback, optional.
     1921     * @param   pfnSaveDone         Done save callback, optional.
     1922     * @param   pfnLoadPrep         Prepare load callback, optional.
     1923     * @param   pfnLoadExec         Execute load callback, optional.
     1924     * @param   pfnLoadDone         Done load callback, optional.
    19281925     */
    19291926    DECLR3CALLBACKMEMBER(int, pfnSSMRegister,(PPDMDEVINS pDevIns, const char *pszName, uint32_t u32Instance, uint32_t u32Version, size_t cbGuess,
     
    19351932     *
    19361933     * @returns VBox status.
    1937      * @param   pDevIns         Device instance.
    1938      * @param   enmClock        The clock to use on this timer.
    1939      * @param   pfnCallback     Callback function.
    1940      * @param   pszDesc         Pointer to description string which must stay around
    1941      *                          until the timer is fully destroyed (i.e. a bit after TMTimerDestroy()).
    1942      * @param   ppTimer         Where to store the timer on success.
     1934     * @param   pDevIns             Device instance.
     1935     * @param   enmClock            The clock to use on this timer.
     1936     * @param   pfnCallback         Callback function.
     1937     * @param   pszDesc             Pointer to description string which must stay around
     1938     *                              until the timer is fully destroyed (i.e. a bit after TMTimerDestroy()).
     1939     * @param   ppTimer             Where to store the timer on success.
    19431940     */
    19441941    DECLR3CALLBACKMEMBER(int, pfnTMTimerCreate,(PPDMDEVINS pDevIns, TMCLOCK enmClock, PFNTMTIMERDEV pfnCallback, const char *pszDesc, PPTMTIMERR3 ppTimer));
     
    19481945     *
    19491946     * @returns timer pointer
    1950      * @param   pDevIns         Device instance.
    1951      * @param   enmClock        The clock to use on this timer.
    1952      * @param   pfnCallback     Callback function.
    1953      * @param   pvUser          User pointer
    1954      * @param   pszDesc         Pointer to description string which must stay around
    1955      *                          until the timer is fully destroyed (i.e. a bit after TMTimerDestroy()).
     1947     * @param   pDevIns             Device instance.
     1948     * @param   enmClock            The clock to use on this timer.
     1949     * @param   pfnCallback         Callback function.
     1950     * @param   pvUser              User pointer
     1951     * @param   pszDesc             Pointer to description string which must stay around
     1952     *                              until the timer is fully destroyed (i.e. a bit after TMTimerDestroy()).
    19561953     */
    19571954    DECLR3CALLBACKMEMBER(PTMTIMERR3, pfnTMTimerCreateExternal,(PPDMDEVINS pDevIns, TMCLOCK enmClock, PFNTMTIMEREXT pfnCallback, void *pvUser, const char *pszDesc));
     
    19611958     *
    19621959     * @returns VBox status code.
    1963      * @param   pDevIns         Device instance.
    1964      * @param   pPciDev         The PCI device structure.
    1965      *                          Any PCI enabled device must keep this in it's instance data!
    1966      *                          Fill in the PCI data config before registration, please.
     1960     * @param   pDevIns             Device instance.
     1961     * @param   pPciDev             The PCI device structure.
     1962     *                              Any PCI enabled device must keep this in it's instance data!
     1963     *                              Fill in the PCI data config before registration, please.
    19671964     * @remark  This is the simple interface, a Ex interface will be created if
    19681965     *          more features are needed later.
     
    19741971     *
    19751972     * @returns VBox status code.
    1976      * @param   pDevIns         Device instance.
    1977      * @param   iRegion         The region number.
    1978      * @param   cbRegion        Size of the region.
    1979      * @param   enmType         PCI_ADDRESS_SPACE_MEM, PCI_ADDRESS_SPACE_IO or PCI_ADDRESS_SPACE_MEM_PREFETCH.
    1980      * @param   pfnCallback     Callback for doing the mapping.
     1973     * @param   pDevIns             Device instance.
     1974     * @param   iRegion             The region number.
     1975     * @param   cbRegion            Size of the region.
     1976     * @param   enmType             PCI_ADDRESS_SPACE_MEM, PCI_ADDRESS_SPACE_IO or PCI_ADDRESS_SPACE_MEM_PREFETCH.
     1977     * @param   pfnCallback         Callback for doing the mapping.
    19811978     */
    19821979    DECLR3CALLBACKMEMBER(int, pfnPCIIORegionRegister,(PPDMDEVINS pDevIns, int iRegion, uint32_t cbRegion, PCIADDRESSSPACE enmType, PFNPCIIOREGIONMAP pfnCallback));
     
    19851982     * Register PCI configuration space read/write callbacks.
    19861983     *
    1987      * @param   pDevIns         Device instance.
    1988      * @param   pPciDev         The PCI device structure.
    1989      *                          If NULL the default PCI device for this device instance is used.
    1990      * @param   pfnRead         Pointer to the user defined PCI config read function.
    1991      * @param   ppfnReadOld     Pointer to function pointer which will receive the old (default)
    1992      *                          PCI config read function. This way, user can decide when (and if)
    1993      *                          to call default PCI config read function. Can be NULL.
    1994      * @param   pfnWrite        Pointer to the user defined PCI config write function.
    1995      * @param   pfnWriteOld     Pointer to function pointer which will receive the old (default)
    1996      *                          PCI config write function. This way, user can decide when (and if)
    1997      *                          to call default PCI config write function. Can be NULL.
     1984     * @param   pDevIns             Device instance.
     1985     * @param   pPciDev             The PCI device structure.
     1986     *                              If NULL the default PCI device for this device instance is used.
     1987     * @param   pfnRead             Pointer to the user defined PCI config read function.
     1988     * @param   ppfnReadOld         Pointer to function pointer which will receive the old (default)
     1989     *                              PCI config read function. This way, user can decide when (and if)
     1990     *                              to call default PCI config read function. Can be NULL.
     1991     * @param   pfnWrite            Pointer to the user defined PCI config write function.
     1992     * @param   pfnWriteOld         Pointer to function pointer which will receive the old (default)
     1993     *                              PCI config write function. This way, user can decide when (and if)
     1994     *                              to call default PCI config write function. Can be NULL.
    19981995     * @thread  EMT
    19991996     */
     
    20042001     * Set the IRQ for a PCI device.
    20052002     *
    2006      * @param   pDevIns         Device instance.
    2007      * @param   iIrq            IRQ number to set.
    2008      * @param   iLevel          IRQ level. See the PDM_IRQ_LEVEL_* \#defines.
     2003     * @param   pDevIns             Device instance.
     2004     * @param   iIrq                IRQ number to set.
     2005     * @param   iLevel              IRQ level. See the PDM_IRQ_LEVEL_* \#defines.
    20092006     * @thread  Any thread, but will involve the emulation thread.
    20102007     */
     
    20152012     * the request when not called from EMT.
    20162013     *
    2017      * @param   pDevIns         Device instance.
    2018      * @param   iIrq            IRQ number to set.
    2019      * @param   iLevel          IRQ level.
     2014     * @param   pDevIns             Device instance.
     2015     * @param   iIrq                IRQ number to set.
     2016     * @param   iLevel              IRQ level.
    20202017     * @thread  Any thread, but will involve the emulation thread.
    20212018     */
     
    20252022     * Set ISA IRQ for a device.
    20262023     *
    2027      * @param   pDevIns         Device instance.
    2028      * @param   iIrq            IRQ number to set.
    2029      * @param   iLevel          IRQ level. See the PDM_IRQ_LEVEL_* \#defines.
     2024     * @param   pDevIns             Device instance.
     2025     * @param   iIrq                IRQ number to set.
     2026     * @param   iLevel              IRQ level. See the PDM_IRQ_LEVEL_* \#defines.
    20302027     * @thread  Any thread, but will involve the emulation thread.
    20312028     */
     
    20362033     * the request when not called from EMT.
    20372034     *
    2038      * @param   pDevIns         Device instance.
    2039      * @param   iIrq            IRQ number to set.
    2040      * @param   iLevel          IRQ level. See the PDM_IRQ_LEVEL_* \#defines.
     2035     * @param   pDevIns             Device instance.
     2036     * @param   iIrq                IRQ number to set.
     2037     * @param   iLevel              IRQ level. See the PDM_IRQ_LEVEL_* \#defines.
    20412038     * @thread  Any thread, but will involve the emulation thread.
    20422039     */
     
    20642061     *
    20652062     * @returns Pointer to allocated memory. The memory is *NOT* zero-ed.
    2066      * @param   pDevIns         Device instance.
    2067      * @param   cb              Number of bytes to allocate.
     2063     * @param   pDevIns             Device instance.
     2064     * @param   cb                  Number of bytes to allocate.
    20682065     */
    20692066    DECLR3CALLBACKMEMBER(void *, pfnMMHeapAlloc,(PPDMDEVINS pDevIns, size_t cb));
     
    20742071     *
    20752072     * @returns Pointer to allocated memory. The memory is *NOT* zero-ed.
    2076      * @param   pDevIns         Device instance.
    2077      * @param   cb              Number of bytes to allocate.
     2073     * @param   pDevIns             Device instance.
     2074     * @param   cb                  Number of bytes to allocate.
    20782075     */
    20792076    DECLR3CALLBACKMEMBER(void *, pfnMMHeapAllocZ,(PPDMDEVINS pDevIns, size_t cb));
     
    20822079     * Free memory allocated with pfnMMHeapAlloc() and pfnMMHeapAllocZ().
    20832080     *
    2084      * @param   pDevIns         Device instance.
    2085      * @param   pv              Pointer to the memory to free.
     2081     * @param   pDevIns             Device instance.
     2082     * @param   pv                  Pointer to the memory to free.
    20862083     */
    20872084    DECLR3CALLBACKMEMBER(void, pfnMMHeapFree,(PPDMDEVINS pDevIns, void *pv));
     
    20912088     *
    20922089     * @returns rc.
    2093      * @param   pDevIns         Device instance.
    2094      * @param   rc              VBox status code.
    2095      * @param   RT_SRC_POS_DECL Use RT_SRC_POS.
    2096      * @param   pszFormat       Error message format string.
    2097      * @param   ...             Error message arguments.
     2090     * @param   pDevIns             Device instance.
     2091     * @param   rc                  VBox status code.
     2092     * @param   RT_SRC_POS_DECL     Use RT_SRC_POS.
     2093     * @param   pszFormat           Error message format string.
     2094     * @param   ...                 Error message arguments.
    20982095     */
    20992096    DECLR3CALLBACKMEMBER(int, pfnVMSetError,(PPDMDEVINS pDevIns, int rc, RT_SRC_POS_DECL, const char *pszFormat, ...));
     
    21032100     *
    21042101     * @returns rc.
    2105      * @param   pDevIns         Device instance.
    2106      * @param   rc              VBox status code.
    2107      * @param   RT_SRC_POS_DECL Use RT_SRC_POS.
    2108      * @param   pszFormat       Error message format string.
    2109      * @param   va              Error message arguments.
     2102     * @param   pDevIns             Device instance.
     2103     * @param   rc                  VBox status code.
     2104     * @param   RT_SRC_POS_DECL     Use RT_SRC_POS.
     2105     * @param   pszFormat           Error message format string.
     2106     * @param   va                  Error message arguments.
    21102107     */
    21112108    DECLR3CALLBACKMEMBER(int, pfnVMSetErrorV,(PPDMDEVINS pDevIns, int rc, RT_SRC_POS_DECL, const char *pszFormat, va_list va));
     
    21152112     *
    21162113     * @returns VBox status code.
    2117      * @param   pDevIns         Device instance.
    2118      * @param   fFatal          Whether it is a fatal error or not.
    2119      * @param   pszErrorID      Error ID string.
    2120      * @param   pszFormat       Error message format string.
    2121      * @param   ...             Error message arguments.
     2114     * @param   pDevIns             Device instance.
     2115     * @param   fFatal              Whether it is a fatal error or not.
     2116     * @param   pszErrorID          Error ID string.
     2117     * @param   pszFormat           Error message format string.
     2118     * @param   ...                 Error message arguments.
    21222119     */
    21232120    DECLR3CALLBACKMEMBER(int, pfnVMSetRuntimeError,(PPDMDEVINS pDevIns, bool fFatal, const char *pszErrorID, const char *pszFormat, ...));
     
    21272124     *
    21282125     * @returns VBox status code.
    2129      * @param   pDevIns         Device instance.
    2130      * @param   fFatal          Whether it is a fatal error or not.
    2131      * @param   pszErrorID      Error ID string.
    2132      * @param   pszFormat       Error message format string.
    2133      * @param   va              Error message arguments.
     2126     * @param   pDevIns             Device instance.
     2127     * @param   fFatal              Whether it is a fatal error or not.
     2128     * @param   pszErrorID          Error ID string.
     2129     * @param   pszFormat           Error message format string.
     2130     * @param   va                  Error message arguments.
    21342131     */
    21352132    DECLR3CALLBACKMEMBER(int, pfnVMSetRuntimeErrorV,(PPDMDEVINS pDevIns, bool fFatal, const char *pszErrorID, const char *pszFormat, va_list va));
     
    21402137     * @returns True if correct.
    21412138     * @returns False if wrong.
    2142      * @param   pDevIns         Device instance.
    2143      * @param   pszFile         Filename of the assertion location.
    2144      * @param   iLine           The linenumber of the assertion location.
    2145      * @param   pszFunction     Function of the assertion location.
     2139     * @param   pDevIns             Device instance.
     2140     * @param   pszFile             Filename of the assertion location.
     2141     * @param   iLine               The linenumber of the assertion location.
     2142     * @param   pszFunction         Function of the assertion location.
    21462143     */
    21472144    DECLR3CALLBACKMEMBER(bool, pfnAssertEMT,(PPDMDEVINS pDevIns, const char *pszFile, unsigned iLine, const char *pszFunction));
     
    21522149     * @returns True if correct.
    21532150     * @returns False if wrong.
    2154      * @param   pDevIns         Device instance.
    2155      * @param   pszFile         Filename of the assertion location.
    2156      * @param   iLine           The linenumber of the assertion location.
    2157      * @param   pszFunction     Function of the assertion location.
     2151     * @param   pDevIns             Device instance.
     2152     * @param   pszFile             Filename of the assertion location.
     2153     * @param   iLine               The linenumber of the assertion location.
     2154     * @param   pszFunction         Function of the assertion location.
    21582155     */
    21592156    DECLR3CALLBACKMEMBER(bool, pfnAssertOther,(PPDMDEVINS pDevIns, const char *pszFile, unsigned iLine, const char *pszFunction));
     
    21662163     *
    21672164     * @returns VBox status code which must be passed up to the VMM.
    2168      * @param   pDevIns         Device instance.
    2169      * @param   pszFile         Filename of the assertion location.
    2170      * @param   iLine           The linenumber of the assertion location.
    2171      * @param   pszFunction     Function of the assertion location.
    2172      * @param   pszFormat       Message. (optional)
    2173      * @param   args            Message parameters.
     2165     * @param   pDevIns             Device instance.
     2166     * @param   pszFile             Filename of the assertion location.
     2167     * @param   iLine               The linenumber of the assertion location.
     2168     * @param   pszFunction         Function of the assertion location.
     2169     * @param   pszFormat           Message. (optional)
     2170     * @param   args                Message parameters.
    21742171     */
    21752172    DECLR3CALLBACKMEMBER(int, pfnDBGFStopV,(PPDMDEVINS pDevIns, const char *pszFile, unsigned iLine, const char *pszFunction, const char *pszFormat, va_list args));
     
    21792176     *
    21802177     * @returns VBox status code.
    2181      * @param   pDevIns         Device instance.
    2182      * @param   pszName         The identifier of the info.
    2183      * @param   pszDesc         The description of the info and any arguments the handler may take.
    2184      * @param   pfnHandler      The handler function to be called to display the info.
     2178     * @param   pDevIns             Device instance.
     2179     * @param   pszName             The identifier of the info.
     2180     * @param   pszDesc             The description of the info and any arguments
     2181     *                              the handler may take.
     2182     * @param   pfnHandler          The handler function to be called to display the
     2183     *                              info.
    21852184     */
    21862185    DECLR3CALLBACKMEMBER(int, pfnDBGFInfoRegister,(PPDMDEVINS pDevIns, const char *pszName, const char *pszDesc, PFNDBGFHANDLERDEV pfnHandler));
     
    21892188     * Registers a statistics sample if statistics are enabled.
    21902189     *
    2191      * @param   pDevIns         Device instance of the DMA.
    2192      * @param   pvSample        Pointer to the sample.
    2193      * @param   enmType         Sample type. This indicates what pvSample is pointing at.
    2194      * @param   pszName         Sample name. The name is on this form "/<component>/<sample>".
    2195      *                          Further nesting is possible.
    2196      * @param   enmUnit         Sample unit.
    2197      * @param   pszDesc         Sample description.
     2190     * @param   pDevIns             Device instance of the DMA.
     2191     * @param   pvSample            Pointer to the sample.
     2192     * @param   enmType             Sample type. This indicates what pvSample is
     2193     *                              pointing at.
     2194     * @param   pszName             Sample name. The name is on this form
     2195     *                              "/<component>/<sample>". Further nesting is
     2196     *                              possible.
     2197     * @param   enmUnit             Sample unit.
     2198     * @param   pszDesc             Sample description.
    21982199     */
    21992200    DECLR3CALLBACKMEMBER(void, pfnSTAMRegister,(PPDMDEVINS pDevIns, void *pvSample, STAMTYPE enmType, const char *pszName, STAMUNIT enmUnit, const char *pszDesc));
     
    22042205     *
    22052206     * @returns VBox status.
    2206      * @param   pDevIns         Device instance of the DMA.
    2207      * @param   pvSample        Pointer to the sample.
    2208      * @param   enmType         Sample type. This indicates what pvSample is pointing at.
    2209      * @param   enmVisibility   Visibility type specifying whether unused statistics should be visible or not.
    2210      * @param   enmUnit         Sample unit.
    2211      * @param   pszDesc         Sample description.
    2212      * @param   pszName         The sample name format string.
    2213      * @param   ...             Arguments to the format string.
     2207     * @param   pDevIns             Device instance of the DMA.
     2208     * @param   pvSample            Pointer to the sample.
     2209     * @param   enmType             Sample type. This indicates what pvSample is
     2210     *                              pointing at.
     2211     * @param   enmVisibility       Visibility type specifying whether unused
     2212     *                              statistics should be visible or not.
     2213     * @param   enmUnit             Sample unit.
     2214     * @param   pszDesc             Sample description.
     2215     * @param   pszName             The sample name format string.
     2216     * @param   ...                 Arguments to the format string.
    22142217     */
    22152218    DECLR3CALLBACKMEMBER(void, pfnSTAMRegisterF,(PPDMDEVINS pDevIns, void *pvSample, STAMTYPE enmType, STAMVISIBILITY enmVisibility,
     
    22212224     *
    22222225     * @returns VBox status.
    2223      * @param   pDevIns         Device instance of the DMA.
    2224      * @param   pvSample        Pointer to the sample.
    2225      * @param   enmType         Sample type. This indicates what pvSample is pointing at.
    2226      * @param   enmVisibility   Visibility type specifying whether unused statistics should be visible or not.
    2227      * @param   enmUnit         Sample unit.
    2228      * @param   pszDesc         Sample description.
    2229      * @param   pszName         The sample name format string.
    2230      * @param   args            Arguments to the format string.
     2226     * @param   pDevIns             Device instance of the DMA.
     2227     * @param   pvSample            Pointer to the sample.
     2228     * @param   enmType             Sample type. This indicates what pvSample is
     2229     *                              pointing at.
     2230     * @param   enmVisibility       Visibility type specifying whether unused
     2231     *                              statistics should be visible or not.
     2232     * @param   enmUnit             Sample unit.
     2233     * @param   pszDesc             Sample description.
     2234     * @param   pszName             The sample name format string.
     2235     * @param   args                Arguments to the format string.
    22312236     */
    22322237    DECLR3CALLBACKMEMBER(void, pfnSTAMRegisterV,(PPDMDEVINS pDevIns, void *pvSample, STAMTYPE enmType, STAMVISIBILITY enmVisibility,
     
    22372242     *
    22382243     * @returns VBox status code.
    2239      * @param   pDevIns         Device instance.
    2240      * @param   pRtcReg         Pointer to a RTC registration structure.
    2241      * @param   ppRtcHlp        Where to store the pointer to the helper functions.
     2244     * @param   pDevIns             Device instance.
     2245     * @param   pRtcReg             Pointer to a RTC registration structure.
     2246     * @param   ppRtcHlp            Where to store the pointer to the helper
     2247     *                              functions.
    22422248     */
    22432249    DECLR3CALLBACKMEMBER(int, pfnRTCRegister,(PPDMDEVINS pDevIns, PCPDMRTCREG pRtcReg, PCPDMRTCHLP *ppRtcHlp));
     
    22672273     *
    22682274     * @returns VBox status code.
    2269      * @param   pDevIns         Device instance.
    2270      * @param   pCritSect       Pointer to the critical section.
    2271      * @param   pszName         The name of the critical section (for statistics).
     2275     * @param   pDevIns             Device instance.
     2276     * @param   pCritSect           Pointer to the critical section.
     2277     * @param   pszName             The name of the critical section (for
     2278     *                              statistics).
    22722279     */
    22732280    DECLR3CALLBACKMEMBER(int, pfnCritSectInit,(PPDMDEVINS pDevIns, PPDMCRITSECT pCritSect, const char *pszName));
     
    22772284     *
    22782285     * @returns pTime.
    2279      * @param   pDevIns         Device instance.
    2280      * @param   pTime           Where to store the time.
     2286     * @param   pDevIns             Device instance.
     2287     * @param   pTime               Where to store the time.
    22812288     */
    22822289    DECLR3CALLBACKMEMBER(PRTTIMESPEC, pfnUTCNow,(PPDMDEVINS pDevIns, PRTTIMESPEC pTime));
     
    22892296     *
    22902297     * @returns VBox status code.
    2291      * @param   pDevIns     The device instance.
    2292      * @param   ppThread    Where to store the thread 'handle'.
    2293      * @param   pvUser      The user argument to the thread function.
    2294      * @param   pfnThread   The thread function.
    2295      * @param   pfnWakeup   The wakup callback. This is called on the EMT thread when
    2296      *                      a state change is pending.
    2297      * @param   cbStack     See RTThreadCreate.
    2298      * @param   enmType     See RTThreadCreate.
    2299      * @param   pszName     See RTThreadCreate.
     2298     * @param   pDevIns             The device instance.
     2299     * @param   ppThread            Where to store the thread 'handle'.
     2300     * @param   pvUser              The user argument to the thread function.
     2301     * @param   pfnThread           The thread function.
     2302     * @param   pfnWakeup           The wakup callback. This is called on the EMT
     2303     *                              thread when a state change is pending.
     2304     * @param   cbStack             See RTThreadCreate.
     2305     * @param   enmType             See RTThreadCreate.
     2306     * @param   pszName             See RTThreadCreate.
    23002307     */
    23012308    DECLR3CALLBACKMEMBER(int, pfnPDMThreadCreate,(PPDMDEVINS pDevIns, PPPDMTHREAD ppThread, void *pvUser, PFNPDMTHREADDEV pfnThread,
     
    23062313     *
    23072314     * @returns VBox status code.
    2308      * @param   pDevIns         Device instance.
    2309      * @param   GCPtr           Guest virtual address.
    2310      * @param   pGCPhys         Where to store the GC physical address corresponding to GCPtr.
     2315     * @param   pDevIns             Device instance.
     2316     * @param   GCPtr               Guest virtual address.
     2317     * @param   pGCPhys             Where to store the GC physical address
     2318     *                              corresponding to GCPtr.
    23112319     * @thread  The emulation thread.
    23122320     * @remark  Careful with page boundraries.
     
    23182326     *
    23192327     * @returns VM state.
    2320      * @param   pDevIns         The device instance.
     2328     * @param   pDevIns             The device instance.
    23212329     * @thread  Any thread (just keep in mind that it's volatile info).
    23222330     */
     
    23462354     *
    23472355     * @returns VM Handle.
    2348      * @param   pDevIns         Device instance.
     2356     * @param   pDevIns             Device instance.
    23492357     */
    23502358    DECLR3CALLBACKMEMBER(PVM, pfnGetVM,(PPDMDEVINS pDevIns));
     
    23542362     *
    23552363     * @returns VBox status code.
    2356      * @param   pDevIns         Device instance.
    2357      * @param   pPciBusReg      Pointer to PCI bus registration structure.
    2358      * @param   ppPciHlpR3      Where to store the pointer to the PCI Bus helpers.
     2364     * @param   pDevIns             Device instance.
     2365     * @param   pPciBusReg          Pointer to PCI bus registration structure.
     2366     * @param   ppPciHlpR3          Where to store the pointer to the PCI Bus
     2367     *                              helpers.
    23592368     */
    23602369    DECLR3CALLBACKMEMBER(int, pfnPCIBusRegister,(PPDMDEVINS pDevIns, PPDMPCIBUSREG pPciBusReg, PCPDMPCIHLPR3 *ppPciHlpR3));
     
    23642373     *
    23652374     * @returns VBox status code.
    2366      * @param   pDevIns         Device instance.
    2367      * @param   pPicReg         Pointer to a PIC registration structure.
    2368      * @param   ppPicHlpR3      Where to store the pointer to the PIC HC helpers.
     2375     * @param   pDevIns             Device instance.
     2376     * @param   pPicReg             Pointer to a PIC registration structure.
     2377     * @param   ppPicHlpR3          Where to store the pointer to the PIC HC
     2378     *                              helpers.
    23692379     */
    23702380    DECLR3CALLBACKMEMBER(int, pfnPICRegister,(PPDMDEVINS pDevIns, PPDMPICREG pPicReg, PCPDMPICHLPR3 *ppPicHlpR3));
     
    23742384     *
    23752385     * @returns VBox status code.
    2376      * @param   pDevIns         Device instance.
    2377      * @param   pApicReg        Pointer to a APIC registration structure.
    2378      * @param   ppApicHlpR3     Where to store the pointer to the APIC helpers.
     2386     * @param   pDevIns             Device instance.
     2387     * @param   pApicReg            Pointer to a APIC registration structure.
     2388     * @param   ppApicHlpR3         Where to store the pointer to the APIC helpers.
    23792389     */
    23802390    DECLR3CALLBACKMEMBER(int, pfnAPICRegister,(PPDMDEVINS pDevIns, PPDMAPICREG pApicReg, PCPDMAPICHLPR3 *ppApicHlpR3));
     
    23842394     *
    23852395     * @returns VBox status code.
    2386      * @param   pDevIns         Device instance.
    2387      * @param   pIoApicReg      Pointer to a I/O APIC registration structure.
    2388      * @param   ppIoApicHlpR3   Where to store the pointer to the IOAPIC helpers.
     2396     * @param   pDevIns             Device instance.
     2397     * @param   pIoApicReg          Pointer to a I/O APIC registration structure.
     2398     * @param   ppIoApicHlpR3       Where to store the pointer to the IOAPIC
     2399     *                              helpers.
    23892400     */
    23902401    DECLR3CALLBACKMEMBER(int, pfnIOAPICRegister,(PPDMDEVINS pDevIns, PPDMIOAPICREG pIoApicReg, PCPDMIOAPICHLPR3 *ppIoApicHlpR3));
     
    23942405     *
    23952406     * @returns VBox status code.
    2396      * @param   pDevIns         Device instance.
    2397      * @param   pDmacReg        Pointer to a DMAC registration structure.
    2398      * @param   ppDmacHlp       Where to store the pointer to the DMA helpers.
     2407     * @param   pDevIns             Device instance.
     2408     * @param   pDmacReg            Pointer to a DMAC registration structure.
     2409     * @param   ppDmacHlp           Where to store the pointer to the DMA helpers.
    23992410     */
    24002411    DECLR3CALLBACKMEMBER(int, pfnDMACRegister,(PPDMDEVINS pDevIns, PPDMDMACREG pDmacReg, PCPDMDMACHLP *ppDmacHlp));
     
    24022413    /**
    24032414     * Read physical memory.
    2404      * 
     2415     *
    24052416     * @returns VINF_SUCCESS (for now).
    2406      * @param   pDevIns         Device instance.
    2407      * @param   GCPhys          Physical address start reading from.
    2408      * @param   pvBuf           Where to put the read bits.
    2409      * @param   cbRead          How many bytes to read.
     2417     * @param   pDevIns             Device instance.
     2418     * @param   GCPhys              Physical address start reading from.
     2419     * @param   pvBuf               Where to put the read bits.
     2420     * @param   cbRead              How many bytes to read.
    24102421     * @thread  Any thread, but the call may involve the emulation thread.
    24112422     */
     
    24162427     *
    24172428     * @returns VINF_SUCCESS for now, and later maybe VERR_EM_MEMORY.
    2418      * @param   pDevIns         Device instance.
    2419      * @param   GCPhys          Physical address to write to.
    2420      * @param   pvBuf           What to write.
    2421      * @param   cbWrite         How many bytes to write.
     2429     * @param   pDevIns             Device instance.
     2430     * @param   GCPhys              Physical address to write to.
     2431     * @param   pvBuf               What to write.
     2432     * @param   cbWrite             How many bytes to write.
    24222433     * @thread  Any thread, but the call may involve the emulation thread.
    24232434     */
     
    24282439     *
    24292440     * When you're done with the page, call pfnPhysReleasePageMappingLock() ASAP to
    2430      * release it. 
    2431      *
    2432      * This API will assume your intention is to write to the page, and will 
    2433      * therefore replace shared and zero pages. If you do not intend to modify the 
    2434      * page, use the pfnPhysGCPhys2CCPtrReadOnly() API. 
     2441     * release it.
     2442     *
     2443     * This API will assume your intention is to write to the page, and will
     2444     * therefore replace shared and zero pages. If you do not intend to modify the
     2445     * page, use the pfnPhysGCPhys2CCPtrReadOnly() API.
    24352446     *
    24362447     * @returns VBox status code.
    24372448     * @retval  VINF_SUCCESS on success.
    2438      * @retval  VERR_PGM_PHYS_PAGE_RESERVED it it's a valid page but has no physical 
     2449     * @retval  VERR_PGM_PHYS_PAGE_RESERVED it it's a valid page but has no physical
    24392450     *          backing or if the page has any active access handlers. The caller
    24402451     *          must fall back on using PGMR3PhysWriteExternal.
    24412452     * @retval  VERR_PGM_INVALID_GC_PHYSICAL_ADDRESS if it's not a valid physical address.
    24422453     *
    2443      * @param   pVM             The VM handle.
    2444      * @param   GCPhys          The guest physical address of the page that should be mapped.
    2445      * @param   fFlags          Flags reserved for future use, MBZ.
    2446      * @param   ppv             Where to store the address corresponding to GCPhys.
    2447      * @param   pLock           Where to store the lock information that
    2448      *                          pfnPhysReleasePageMappingLock needs.
     2454     * @param   pVM                 The VM handle.
     2455     * @param   GCPhys              The guest physical address of the page that
     2456     *                              should be mapped.
     2457     * @param   fFlags              Flags reserved for future use, MBZ.
     2458     * @param   ppv                 Where to store the address corresponding to
     2459     *                              GCPhys.
     2460     * @param   pLock               Where to store the lock information that
     2461     *                              pfnPhysReleasePageMappingLock needs.
    24492462     *
    24502463     * @remark  Avoid calling this API from within critical sections (other than the
     
    24572470    /**
    24582471     * Requests the mapping of a guest page into ring-3, external threads.
    2459      * 
     2472     *
    24602473     * When you're done with the page, call pfnPhysReleasePageMappingLock() ASAP to
    24612474     * release it.
     
    24632476     * @returns VBox status code.
    24642477     * @retval  VINF_SUCCESS on success.
    2465      * @retval  VERR_PGM_PHYS_PAGE_RESERVED it it's a valid page but has no physical 
     2478     * @retval  VERR_PGM_PHYS_PAGE_RESERVED it it's a valid page but has no physical
    24662479     *          backing or if the page as an active ALL access handler. The caller
    24672480     *          must fall back on using PGMPhysRead.
    24682481     * @retval  VERR_PGM_INVALID_GC_PHYSICAL_ADDRESS if it's not a valid physical address.
    24692482     *
    2470      * @param   pDevIns         Device instance.
    2471      * @param   GCPhys          The guest physical address of the page that should be mapped.
    2472      * @param   fFlags          Flags reserved for future use, MBZ.
    2473      * @param   ppv             Where to store the address corresponding to GCPhys.
    2474      * @param   pLock           Where to store the lock information that
    2475      *                          pfnPhysReleasePageMappingLock needs.
    2476      *
    2477      * @remark  Avoid calling this API from within critical sections.
     2483     * @param   pDevIns             Device instance.
     2484     * @param   GCPhys              The guest physical address of the page that
     2485     *                              should be mapped.
     2486     * @param   fFlags              Flags reserved for future use, MBZ.
     2487     * @param   ppv                 Where to store the address corresponding to
     2488     *                              GCPhys.
     2489     * @param   pLock               Where to store the lock information that
     2490     *                              pfnPhysReleasePageMappingLock needs.
     2491     *
     2492     * @remark  Avoid calling this API from within critical sections.
    24782493     * @thread  Any.
    24792494     */
     
    24832498     * Release the mapping of a guest page.
    24842499     *
    2485      * This is the counter part of pfnPhysGCPhys2CCPtr and
    2486      * pfnPhysGCPhys2CCPtrReadOnly.
    2487      *
    2488      * @param   pDevIns         Device instance.
    2489      * @param   pLock           The lock structure initialized by the mapping function.
     2500     * This is the counter part of pfnPhysGCPhys2CCPtr and
     2501     * pfnPhysGCPhys2CCPtrReadOnly.
     2502     *
     2503     * @param   pDevIns             Device instance.
     2504     * @param   pLock               The lock structure initialized by the mapping
     2505     *                              function.
    24902506     */
    24912507    DECLR3CALLBACKMEMBER(void, pfnPhysReleasePageMappingLock,(PPDMDEVINS pDevIns, PPGMPAGEMAPLOCK pLock));
     
    24942510     * Read guest physical memory by virtual address.
    24952511     *
    2496      * @param   pDevIns         Device instance.
    2497      * @param   pvDst           Where to put the read bits.
    2498      * @param   GCVirtSrc       Guest virtual address to start reading from.
    2499      * @param   cb              How many bytes to read.
     2512     * @param   pDevIns             Device instance.
     2513     * @param   pvDst               Where to put the read bits.
     2514     * @param   GCVirtSrc           Guest virtual address to start reading from.
     2515     * @param   cb                  How many bytes to read.
    25002516     * @thread  The emulation thread.
    25012517     */
     
    25052521     * Write to guest physical memory by virtual address.
    25062522     *
    2507      * @param   pDevIns         Device instance.
    2508      * @param   GCVirtDst       Guest virtual address to write to.
    2509      * @param   pvSrc           What to write.
    2510      * @param   cb              How many bytes to write.
     2523     * @param   pDevIns             Device instance.
     2524     * @param   GCVirtDst           Guest virtual address to write to.
     2525     * @param   pvSrc               What to write.
     2526     * @param   cb                  How many bytes to write.
    25112527     * @thread  The emulation thread.
    25122528     */
     
    25182534     * @returns true if A20 is enabled.
    25192535     * @returns false if A20 is disabled.
    2520      * @param   pDevIns         Device instance.
     2536     * @param   pDevIns             Device instance.
    25212537     * @thread  The emulation thread.
    25222538     */
     
    25262542     * Enables or disables the Gate A20.
    25272543     *
    2528      * @param   pDevIns         Device instance.
    2529      * @param   fEnable         Set this flag to enable the Gate A20; clear it to disable.
     2544     * @param   pDevIns             Device instance.
     2545     * @param   fEnable             Set this flag to enable the Gate A20; clear it
     2546     *                              to disable.
    25302547     * @thread  The emulation thread.
    25312548     */
     
    25362553     *
    25372554     * @returns The appropriate VBox status code to pass around on reset.
    2538      * @param   pDevIns         Device instance.
     2555     * @param   pDevIns             Device instance.
    25392556     * @thread  The emulation thread.
    25402557     */
     
    25452562     *
    25462563     * @returns The appropriate VBox status code to pass around on suspend.
    2547      * @param   pDevIns         Device instance.
     2564     * @param   pDevIns             Device instance.
    25482565     * @thread  The emulation thread.
    25492566     */
     
    25542571     *
    25552572     * @returns The appropriate VBox status code to pass around on power off.
    2556      * @param   pDevIns         Device instance.
     2573     * @param   pDevIns             Device instance.
    25572574     * @thread  The emulation thread.
    25582575     */
     
    25632580     *
    25642581     * @returns VBox status code
    2565      * @param   pDevIns         Device instance.
     2582     * @param   pDevIns             Device instance.
    25662583     */
    25672584    DECLR3CALLBACKMEMBER(int , pfnLockVM,(PPDMDEVINS pDevIns));
     
    25712588     *
    25722589     * @returns VBox status code
    2573      * @param   pDevIns         Device instance.
     2590     * @param   pDevIns             Device instance.
    25742591     */
    25752592    DECLR3CALLBACKMEMBER(int, pfnUnlockVM,(PPDMDEVINS pDevIns));
     
    25792596     *
    25802597     * @returns boolean
    2581      * @param   pDevIns         Device instance.
    2582      * @param   pszFile         Filename of the assertion location.
    2583      * @param   iLine           Linenumber of the assertion location.
    2584      * @param   pszFunction     Function of the assertion location.
     2598     * @param   pDevIns             Device instance.
     2599     * @param   pszFile             Filename of the assertion location.
     2600     * @param   iLine               Linenumber of the assertion location.
     2601     * @param   pszFunction         Function of the assertion location.
    25852602     */
    25862603    DECLR3CALLBACKMEMBER(bool, pfnAssertVMLock,(PPDMDEVINS pDevIns, const char *pszFile, unsigned iLine, const char *pszFunction));
     
    26022619     *
    26032620     * @returns VBox status code.
    2604      * @param   pDevIns         Device instance.
    2605      * @param   uChannel        Channel number.
    2606      * @param   pvBuffer        Pointer to target buffer.
    2607      * @param   off             DMA position.
    2608      * @param   cbBlock         Block size.
    2609      * @param   pcbRead         Where to store the number of bytes which was read. optional.
     2621     * @param   pDevIns             Device instance.
     2622     * @param   uChannel            Channel number.
     2623     * @param   pvBuffer            Pointer to target buffer.
     2624     * @param   off                 DMA position.
     2625     * @param   cbBlock             Block size.
     2626     * @param   pcbRead             Where to store the number of bytes which was
     2627     *                              read. optional.
    26102628     * @thread  EMT
    26112629     */
     
    26162634     *
    26172635     * @returns VBox status code.
    2618      * @param   pDevIns         Device instance.
    2619      * @param   uChannel        Channel number.
    2620      * @param   pvBuffer        Memory to write.
    2621      * @param   off             DMA position.
    2622      * @param   cbBlock         Block size.
    2623      * @param   pcbWritten      Where to store the number of bytes which was written. optional.
     2636     * @param   pDevIns             Device instance.
     2637     * @param   uChannel            Channel number.
     2638     * @param   pvBuffer            Memory to write.
     2639     * @param   off                 DMA position.
     2640     * @param   cbBlock             Block size.
     2641     * @param   pcbWritten          Where to store the number of bytes which was
     2642     *                              written. optional.
    26242643     * @thread  EMT
    26252644     */
     
    26302649     *
    26312650     * @returns VBox status code.
    2632      * @param pDevIns           Device instance.
    2633      * @param uChannel          Channel number.
    2634      * @param uLevel            Level of the line.
     2651     * @param pDevIns               Device instance.
     2652     * @param uChannel              Channel number.
     2653     * @param uLevel                Level of the line.
    26352654     * @thread  EMT
    26362655     */
     
    26412660     *
    26422661     * @returns Channel mode. See specs.
    2643      * @param   pDevIns         Device instance.
    2644      * @param   uChannel        Channel number.
     2662     * @param   pDevIns             Device instance.
     2663     * @param   uChannel            Channel number.
    26452664     * @thread  EMT
    26462665     */
     
    26502669     * Schedule DMA execution.
    26512670     *
    2652      * @param   pDevIns         Device instance.
     2671     * @param   pDevIns             Device instance.
    26532672     * @thread  Any thread.
    26542673     */
     
    26592678     *
    26602679     * @returns VBox status code.
    2661      * @param   pDevIns     Device instance.
    2662      * @param   iReg        The CMOS register index.
    2663      * @param   u8Value     The CMOS register value.
     2680     * @param   pDevIns             Device instance.
     2681     * @param   iReg                The CMOS register index.
     2682     * @param   u8Value             The CMOS register value.
    26642683     * @thread  EMT
    26652684     */
     
    26702689     *
    26712690     * @returns VBox status code.
    2672      * @param   pDevIns     Device instance.
    2673      * @param   iReg        The CMOS register index.
    2674      * @param   pu8Value    Where to store the CMOS register value.
     2691     * @param   pDevIns             Device instance.
     2692     * @param   iReg                The CMOS register index.
     2693     * @param   pu8Value            Where to store the CMOS register value.
    26752694     * @thread  EMT
    26762695     */
     
    26802699     * Get CPUID.
    26812700     *
    2682      * @param   pDevIns     Device instance.
    2683      * @param   iLeaf       The CPUID leaf to get.
    2684      * @param   pEax        Where to store the EAX value.
    2685      * @param   pEbx        Where to store the EBX value.
    2686      * @param   pEcx        Where to store the ECX value.
    2687      * @param   pEdx        Where to store the EDX value.
     2701     * @param   pDevIns             Device instance.
     2702     * @param   iLeaf               The CPUID leaf to get.
     2703     * @param   pEax                Where to store the EAX value.
     2704     * @param   pEbx                Where to store the EBX value.
     2705     * @param   pEcx                Where to store the ECX value.
     2706     * @param   pEdx                Where to store the EDX value.
    26882707     */
    26892708    DECLR3CALLBACKMEMBER(void, pfnGetCpuId,(PPDMDEVINS pDevIns, uint32_t iLeaf, uint32_t *pEax, uint32_t *pEbx, uint32_t *pEcx, uint32_t *pEdx));
     
    26952714     * change the protection of shadowed ROM code after init and on reset.
    26962715     *
    2697      * @param   pDevIns     Device instance.
    2698      * @param   GCPhysStart Where the mapping starts.
    2699      * @param   cbRange     The size of the mapping.
    2700      * @param   enmProt     The new protection type.
     2716     * @param   pDevIns             Device instance.
     2717     * @param   GCPhysStart         Where the mapping starts.
     2718     * @param   cbRange             The size of the mapping.
     2719     * @param   enmProt             The new protection type.
    27012720     */
    27022721    DECLR3CALLBACKMEMBER(int, pfnROMProtectShadow,(PPDMDEVINS pDevIns, RTGCPHYS GCPhysStart, RTUINT cbRange, PGMROMPROT enmProt));
     
    27102729     *
    27112730     * @returns VBox status.
    2712      * @param   pDevIns         The device instance.
    2713      * @param   iRegion         The region number. Use the PCI region number as
    2714      *                          this must be known to the PCI bus device too. If it's not associated
    2715      *                          with the PCI device, then any number up to UINT8_MAX is fine.
    2716      * @param   cb              The size (in bytes) of the region.
    2717      * @param   fFlags          Reserved for future use, must be zero.
    2718      * @param   ppv             Where to store the address of the ring-3 mapping of the memory.
    2719      * @param   pszDesc         Pointer to description string. This must not be freed.
     2731     * @param   pDevIns             The device instance.
     2732     * @param   iRegion             The region number. Use the PCI region number as
     2733     *                              this must be known to the PCI bus device too. If
     2734     *                              it's not associated with the PCI device, then
     2735     *                              any number up to UINT8_MAX is fine.
     2736     * @param   cb                  The size (in bytes) of the region.
     2737     * @param   fFlags              Reserved for future use, must be zero.
     2738     * @param   ppv                 Where to store the address of the ring-3 mapping
     2739     *                              of the memory.
     2740     * @param   pszDesc             Pointer to description string. This must not be
     2741     *                              freed.
    27202742     * @thread  EMT.
    27212743     */
     
    27292751     *
    27302752     * @returns VBox status code.
    2731      * @param   pDevIns         The device instance.
    2732      * @param   iRegion         The region number used during registration.
     2753     * @param   pDevIns             The device instance.
     2754     * @param   iRegion             The region number used during registration.
    27332755     * @thread  EMT.
    27342756     */
     
    27462768     *
    27472769     * @returns VBox status code.
    2748      * @param   pDevIns         The device instance.
    2749      * @param   iRegion         The region number used during registration.
    2750      * @param   GCPhys          The physical address to map it at.
     2770     * @param   pDevIns             The device instance.
     2771     * @param   iRegion             The region number used during registration.
     2772     * @param   GCPhys              The physical address to map it at.
    27512773     * @thread  EMT.
    27522774     */
     
    27572779     *
    27582780     * @returns VBox status code.
    2759      * @param   pDevIns         The device instance.
    2760      * @param   iRegion         The region number used during registration.
    2761      * @param   GCPhys          The physical address it's currently mapped at.
     2781     * @param   pDevIns             The device instance.
     2782     * @param   iRegion             The region number used during registration.
     2783     * @param   GCPhys              The physical address it's currently mapped at.
    27622784     * @thread  EMT.
    27632785     */
     
    27712793     *
    27722794     * @return VBox status code.
    2773      * @param   pDevIns         The device owning the MMIO2 memory.
    2774      * @param   iRegion         The region.
    2775      * @param   off             The offset into the region. Will be rounded down to closest page boundrary.
    2776      * @param   cb              The number of bytes to map. Will be rounded up to the closest page boundrary.
    2777      * @param   pszDesc         Mapping description.
    2778      * @param   pRCPtr          Where to store the RC address.
     2795     * @param   pDevIns             The device owning the MMIO2 memory.
     2796     * @param   iRegion             The region.
     2797     * @param   off                 The offset into the region. Will be rounded down
     2798     *                              to closest page boundrary.
     2799     * @param   cb                  The number of bytes to map. Will be rounded up
     2800     *                              to the closest page boundrary.
     2801     * @param   pszDesc             Mapping description.
     2802     * @param   pRCPtr              Where to store the RC address.
    27792803     */
    27802804    DECLR3CALLBACKMEMBER(int, pfnMMHyperMapMMIO2,(PPDMDEVINS pDevIns, uint32_t iRegion, RTGCPHYS off, RTGCPHYS cb,
     
    27882812     *
    27892813     * @return VBox status code.
    2790      * @param   pDevIns         The device owning the MMIO2 memory.
    2791      * @param   iRegion         The region.
    2792      * @param   off             The offset into the region. Must be page aligned.
    2793      * @param   cb              The number of bytes to map. Must be page aligned.
    2794      * @param   pszDesc         Mapping description.
    2795      * @param   pR0Ptr          Where to store the R0 address.
     2814     * @param   pDevIns             The device owning the MMIO2 memory.
     2815     * @param   iRegion             The region.
     2816     * @param   off                 The offset into the region. Must be page
     2817     *                              aligned.
     2818     * @param   cb                  The number of bytes to map. Must be page
     2819     *                              aligned.
     2820     * @param   pszDesc             Mapping description.
     2821     * @param   pR0Ptr              Where to store the R0 address.
    27962822     */
    27972823    DECLR3CALLBACKMEMBER(int, pfnMMIO2MapKernel,(PPDMDEVINS pDevIns, uint32_t iRegion, RTGCPHYS off, RTGCPHYS cb,
     
    28022828     *
    28032829     * @returns VBox status code.
    2804      * @param   pDevIns         The device instance.
    2805      * @param   GCPhys          The physical address.
    2806      * @param   pvHeap          Ring 3 heap pointer.
    2807      * @param   cbSize          Size of the heap.
     2830     * @param   pDevIns             The device instance.
     2831     * @param   GCPhys              The physical address.
     2832     * @param   pvHeap              Ring 3 heap pointer.
     2833     * @param   cbSize              Size of the heap.
    28082834     * @thread  EMT.
    28092835     */
     
    28142840     *
    28152841     * @returns VBox status code.
    2816      * @param   pDevIns         The device instance.
    2817      * @param   GCPhys          The physical address.
     2842     * @param   pDevIns             The device instance.
     2843     * @param   GCPhys              The physical address.
    28182844     * @thread  EMT.
    28192845     */
     
    33293355 * @copydoc PDMDEVHLPR3::pfnROMRegister
    33303356 */
    3331 DECLINLINE(int) PDMDevHlpROMRegister(PPDMDEVINS pDevIns, RTGCPHYS GCPhysStart, RTUINT cbRange, const void *pvBinary, bool fShadow, const char *pszDesc)
    3332 {
    3333     return pDevIns->pDevHlpR3->pfnROMRegister(pDevIns, GCPhysStart, cbRange, pvBinary, fShadow, pszDesc);
     3357DECLINLINE(int) PDMDevHlpROMRegister(PPDMDEVINS pDevIns, RTGCPHYS GCPhysStart, RTUINT cbRange, const void *pvBinary, uint32_t fFlags, const char *pszDesc)
     3358{
     3359    return pDevIns->pDevHlpR3->pfnROMRegister(pDevIns, GCPhysStart, cbRange, pvBinary, fFlags, pszDesc);
    33343360}
    33353361/**
  • trunk/include/VBox/pgm.h

    r18101 r18143  
    496496 * @{ */
    497497/** Inidicates that ROM shadowing should be enabled. */
    498 #define PGMPHYS_ROM_FLAG_SHADOWED           RT_BIT_32(0)
     498#define PGMPHYS_ROM_FLAGS_SHADOWED          RT_BIT_32(0)
    499499/** Indicates that what pvBinary points to won't go away
    500500 * and can be used for strictness checks. */
    501 #define PGMPHYS_ROM_FLAG_PERMANENT_BINARY   RT_BIT_32(1)
     501#define PGMPHYS_ROM_FLAGS_PERMANENT_BINARY  RT_BIT_32(1)
    502502/** @} */
    503503
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette