VirtualBox

Changeset 6837 in vbox for trunk/include


Ignore:
Timestamp:
Feb 6, 2008 8:04:27 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
27956
Message:

Implemented PGMR3PhysRomRegister.

File:
1 edited

Legend:

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

    r6821 r6837  
    271271    PGMMODE_32BIT_HACK = 0x7fffffff
    272272} PGMMODE;
     273
     274/**
     275 * The current ROM page protection.
     276 */
     277typedef enum PGMROMPROT
     278{
     279    /** The customary invalid value. */
     280    PGMROMPROT_INVALID = 0,
     281    /** Read from the virgin ROM page, ignore writes.
     282     * Map the virgin page, use write access handler to ignore writes. */
     283    PGMROMPROT_READ_ROM_WRITE_IGNORE,
     284    /** Read from the virgin ROM page, write to the shadow RAM.
     285     * Map the virgin page, use write access handler change the RAM. */
     286    PGMROMPROT_READ_ROM_WRITE_RAM,
     287    /** Read from the shadow ROM page, ignore writes.
     288     * Map the shadow page read-only, use write access handler to ignore writes. */
     289    PGMROMPROT_READ_RAM_WRITE_IGNORE,
     290    /** Read from the shadow ROM page, ignore writes.
     291     * Map the shadow page read-write, no access handler. */
     292    PGMROMPROT_READ_RAM_WRITE_RAM,
     293    /** The end of valid values. */
     294    PGMROMPROT_END,
     295    /** The usual 32-bit type size hack. */
     296    PGMROMPROT_32BIT_HACK = 0x7fffffff
     297} PGMROMPROT;
     298
    273299
    274300PGMDECL(uint32_t) PGMGetHyperCR3(PVM pVM);
     
    439465#endif /* !VBOX_WITH_NEW_PHYS_CODE */
    440466PGMR3DECL(int)  PGMR3PhysRegisterRam(PVM pVM, RTGCPHYS GCPhys, RTGCPHYS cb, const char *pszDesc);
     467
     468/** @group PGMR3PhysRegisterRom flags.
     469 * @{ */
     470/** Inidicates that ROM shadowing should be enabled. */
     471#define PGMPHYS_ROM_FLAG_SHADOWED           RT_BIT_32(0)
     472/** Indicates that what pvBinary points to won't go away
     473 * and can be used for strictness checks. */
     474#define PGMPHYS_ROM_FLAG_PERMANENT_BINARY   RT_BIT_32(1)
     475/** @} */
     476
     477PGMR3DECL(int)  PGMR3PhysRomRegister(PVM pVM, PPDMDEVINS pDevIns, RTGCPHYS GCPhys, RTGCPHYS cb,
     478                                     const void *pvBinary, uint32_t fFlags, const char *pszDesc);
     479PGMR3DECL(int)  PGMR3PhysRomProtect(PVM pVM, RTGCPHYS GCPhys, RTGCPHYS cb, PGMROMPROT enmProt);
    441480PGMR3DECL(int)  PGMR3PhysRegister(PVM pVM, void *pvRam, RTGCPHYS GCPhys, size_t cb, unsigned fFlags, const SUPPAGE *paPages, const char *pszDesc);
    442481#ifndef VBOX_WITH_NEW_PHYS_CODE
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