VirtualBox

Changeset 4738 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Sep 12, 2007 4:00:54 PM (18 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
24414
Message:

more new phys code.

Location:
trunk/include/VBox
Files:
4 edited

Legend:

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

    r4722 r4738  
    11081108/** @} */
    11091109
     1110/** @name VBox GMM Status Codes
     1111 * @{
     1112 */
     1113/** The GMM is out of pages and needs to be give another chunk of user memory that
     1114 * it can lock down and borrow pages from. */
     1115#define VERR_GMM_SEED_ME                            (-4150)
     1116/** @} */
     1117
     1118
    11101119/* SED-END */
    11111120
  • trunk/include/VBox/pgm.h

    r4713 r4738  
    12831283
    12841284
     1285#ifdef IN_RING0
     1286/** @defgroup grp_pgm_r0  The PGM Host Context Ring-0 API
     1287 * @ingroup grp_pgm
     1288 * @{
     1289 */
     1290/**
     1291 * Worker function for PGMR3PhysAllocateHandyPages and pgmPhysEnsureHandyPage.
     1292 *
     1293 * @returns The following VBox status codes.
     1294 * @retval  VINF_SUCCESS on success. FF cleared.
     1295 * @retval  VINF_EM_NO_MEMORY if we're out of memory. The FF is set in this case.
     1296 *
     1297 * @param   pVM         The VM handle.
     1298 *
     1299 * @remarks Must be called from within the PGM critical section.
     1300 */
     1301PGMR0DECL(int) PGMR0PhysAllocateHandyPages(PVM pVM);
     1302
     1303/** @} */
     1304#endif
     1305
     1306
     1307
    12851308#ifdef IN_RING3
    12861309/** @defgroup grp_pgm_r3  The PGM Host Context Ring-3 API
     
    17531776
    17541777/**
     1778 * Response to VM_FF_PGM_NEED_HANDY_PAGES and VMMCALLHOST_PGM_ALLOCATE_HANDY_PAGES.
     1779 *
     1780 * @returns VBox status code.
     1781 * @retval  VINF_SUCCESS on success. FF cleared.
     1782 * @retval  VINF_EM_NO_MEMORY if we're out of memory. The FF is not cleared in this case.
     1783 *
     1784 * @param   pVM         The VM handle.
     1785 */
     1786PDMR3DECL(int) PGMR3PhysAllocateHandyPages(PVM pVM);
     1787
     1788/**
    17551789 * Perform an integrity check on the PGM component.
    17561790 *
  • trunk/include/VBox/vm.h

    r4071 r4738  
    4343 */
    4444/** This action forces the VM to service check and pending interrups on the APIC. */
    45 #define VM_FF_INTERRUPT_APIC            BIT(0)
     45#define VM_FF_INTERRUPT_APIC            RT_BIT_32(0)
    4646/** This action forces the VM to service check and pending interrups on the PIC. */
    47 #define VM_FF_INTERRUPT_PIC             BIT(1)
     47#define VM_FF_INTERRUPT_PIC             RT_BIT_32(1)
    4848/** This action forces the VM to schedule and run pending timer (TM). */
    49 #define VM_FF_TIMER                     BIT(2)
     49#define VM_FF_TIMER                     RT_BIT_32(2)
    5050/** PDM Queues are pending. */
    51 #define VM_FF_PDM_QUEUES                BIT(3)
     51#define VM_FF_PDM_QUEUES                RT_BIT_32(3)
    5252/** PDM DMA transfers are pending. */
    53 #define VM_FF_PDM_DMA                   BIT(4)
     53#define VM_FF_PDM_DMA                   RT_BIT_32(4)
    5454/** PDM critical section unlocking is pending, process promptly upon return to R3. */
    55 #define VM_FF_PDM_CRITSECT              BIT(5)
     55#define VM_FF_PDM_CRITSECT              RT_BIT_32(5)
    5656
    5757/** This action forces the VM to call DBGF so DBGF can service debugger
    5858 * requests in the emulation thread.
    5959 * This action flag stays asserted till DBGF clears it.*/
    60 #define VM_FF_DBGF                      BIT(8)
     60#define VM_FF_DBGF                      RT_BIT_32(8)
    6161/** This action forces the VM to service pending requests from other
    6262 * thread or requests which must be executed in another context. */
    63 #define VM_FF_REQUEST                   BIT(9)
     63#define VM_FF_REQUEST                   RT_BIT_32(9)
    6464/** Terminate the VM immediately. */
    65 #define VM_FF_TERMINATE                 BIT(10)
     65#define VM_FF_TERMINATE                 RT_BIT_32(10)
    6666/** Reset the VM. (postponed) */
    67 #define VM_FF_RESET                     BIT(11)
     67#define VM_FF_RESET                     RT_BIT_32(11)
    6868
    6969/** This action forces the VM to resync the page tables before going
    7070 * back to execute guest code. (GLOBAL FLUSH) */
    71 #define VM_FF_PGM_SYNC_CR3              BIT(16)
     71#define VM_FF_PGM_SYNC_CR3              RT_BIT_32(16)
    7272/** Same as VM_FF_PGM_SYNC_CR3 except that global pages can be skipped.
    7373 * (NON-GLOBAL FLUSH) */
    74 #define VM_FF_PGM_SYNC_CR3_NON_GLOBAL   BIT(17)
     74#define VM_FF_PGM_SYNC_CR3_NON_GLOBAL   RT_BIT_32(17)
     75/** PGM needs to allocate handy pages. */
     76#define VM_FF_PGM_NEED_HANDY_PAGES      RT_BIT_32(18)
    7577/** Check the interupt and trap gates */
    76 #define VM_FF_TRPM_SYNC_IDT             BIT(18)
     78#define VM_FF_TRPM_SYNC_IDT             RT_BIT_32(19)
    7779/** Check Guest's TSS ring 0 stack */
    78 #define VM_FF_SELM_SYNC_TSS             BIT(19)
     80#define VM_FF_SELM_SYNC_TSS             RT_BIT_32(20)
    7981/** Check Guest's GDT table */
    80 #define VM_FF_SELM_SYNC_GDT             BIT(20)
     82#define VM_FF_SELM_SYNC_GDT             RT_BIT_32(21)
    8183/** Check Guest's LDT table */
    82 #define VM_FF_SELM_SYNC_LDT             BIT(21)
     84#define VM_FF_SELM_SYNC_LDT             RT_BIT_32(22)
    8385/** Inhibit interrupts pending. See EMGetInhibitInterruptsPC(). */
    84 #define VM_FF_INHIBIT_INTERRUPTS        BIT(22)
     86#define VM_FF_INHIBIT_INTERRUPTS        RT_BIT_32(23)
    8587
    8688/** CSAM needs to scan the page that's being executed */
    87 #define VM_FF_CSAM_SCAN_PAGE            BIT(24)
     89#define VM_FF_CSAM_SCAN_PAGE            RT_BIT_32(24)
    8890/** CSAM needs to do some homework. */
    89 #define VM_FF_CSAM_PENDING_ACTION       BIT(25)
     91#define VM_FF_CSAM_PENDING_ACTION       RT_BIT_32(25)
    9092
    9193/** Force return to Ring-3. */
    92 #define VM_FF_TO_R3                     BIT(28)
     94#define VM_FF_TO_R3                     RT_BIT_32(28)
    9395
    9496/** Suspend the VM - debug only. */
    95 #define VM_FF_DEBUG_SUSPEND             BIT(31)
     97#define VM_FF_DEBUG_SUSPEND             RT_BIT_32(31)
    9698
    9799/** Externally forced actions. Used to quit the idle/wait loop. */
     
    101103/** High priority pre-execution actions. */
    102104#define VM_FF_HIGH_PRIORITY_PRE_MASK    (VM_FF_TERMINATE | VM_FF_DBGF | VM_FF_INTERRUPT_APIC | VM_FF_INTERRUPT_PIC | VM_FF_TIMER | VM_FF_DEBUG_SUSPEND \
    103                                         | VM_FF_PGM_SYNC_CR3 | VM_FF_PGM_SYNC_CR3_NON_GLOBAL | VM_FF_SELM_SYNC_TSS | VM_FF_TRPM_SYNC_IDT | VM_FF_SELM_SYNC_GDT | VM_FF_SELM_SYNC_LDT)
     105                                        | VM_FF_PGM_SYNC_CR3 | VM_FF_PGM_SYNC_CR3_NON_GLOBAL | VM_FF_SELM_SYNC_TSS | VM_FF_TRPM_SYNC_IDT | VM_FF_SELM_SYNC_GDT | VM_FF_SELM_SYNC_LDT | VM_FF_PGM_NEED_HANDY_PAGES)
    104106/** High priority pre raw-mode execution mask. */
    105 #define VM_FF_HIGH_PRIORITY_PRE_RAW_MASK (VM_FF_PGM_SYNC_CR3 | VM_FF_PGM_SYNC_CR3_NON_GLOBAL | VM_FF_SELM_SYNC_TSS | VM_FF_TRPM_SYNC_IDT | VM_FF_SELM_SYNC_GDT | VM_FF_SELM_SYNC_LDT | VM_FF_INHIBIT_INTERRUPTS)
     107#define VM_FF_HIGH_PRIORITY_PRE_RAW_MASK (VM_FF_PGM_SYNC_CR3 | VM_FF_PGM_SYNC_CR3_NON_GLOBAL | VM_FF_SELM_SYNC_TSS | VM_FF_TRPM_SYNC_IDT | VM_FF_SELM_SYNC_GDT | VM_FF_SELM_SYNC_LDT | VM_FF_PGM_NEED_HANDY_PAGES \
     108                                        | VM_FF_INHIBIT_INTERRUPTS)
    106109/** High priority post-execution actions. */
    107 #define VM_FF_HIGH_PRIORITY_POST_MASK   (VM_FF_PDM_CRITSECT|VM_FF_CSAM_PENDING_ACTION)
     110#define VM_FF_HIGH_PRIORITY_POST_MASK   (VM_FF_PDM_CRITSECT | VM_FF_CSAM_PENDING_ACTION)
    108111/** Normal priority post-execution actions. */
    109112#define VM_FF_NORMAL_PRIORITY_POST_MASK (VM_FF_TERMINATE | VM_FF_DBGF | VM_FF_RESET | VM_FF_CSAM_SCAN_PAGE)
  • trunk/include/VBox/vmm.h

    r4689 r4738  
    7676    /** Maps a chunk into ring-3. */
    7777    VMMCALLHOST_PGM_MAP_CHUNK,
     78    /** Allocates more handy pages. */
     79    VMMCALLHOST_PGM_ALLOCATE_HANDY_PAGES,
    7880#ifndef NEW_PHYS_CODE
    7981    /** Dynamically allocate physical guest RAM. */
     
    362364    VMMR0_DO_CALL_HYPERVISOR,
    363365
     366    /** Call PGMR0PhysAllocateHandyPages(). */
     367    VMMR0_DO_PGM_ALLOCATE_HANDY_PAGES,
     368    /** Call GMMR0AllocatePages(). */
     369    VMMR0_DO_GMM_ALLOCATE_PAGES,
     370    /** Call GMMR0FreePages(). */
     371    VMMR0_DO_GMM_FREE_PAGES,
     372    /** Call GMMR0MapUnmapChunk(). */
     373    VMMR0_DO_GMM_MAP_UNMAP_CHUNK,
     374    /** Call GMMR0SeedChunk(). */
     375    VMMR0_DO_GMM_SEED_CHUNK,
     376
    364377    /** The start of the R0 service operations. */
    365378    VMMR0_DO_SRV_START,
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