VirtualBox

Changeset 3753 in vbox for trunk


Ignore:
Timestamp:
Jul 20, 2007 5:40:59 PM (17 years ago)
Author:
vboxsync
Message:

info "ff"

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMM.cpp

    r3700 r3753  
    170170static DECLCALLBACK(void) vmmR3YieldEMT(PVM pVM, PTMTIMER pTimer, void *pvUser);
    171171static int vmmR3ServiceCallHostRequest(PVM pVM);
     172static DECLCALLBACK(void) vmmR3InfoFF(PVM pVM, PCDBGFINFOHLP pHlp, const char *pszArgs);
    172173
    173174
     
    481482                if (VBOX_SUCCESS(rc))
    482483                {
     484                    /*
     485                     * Debug info.
     486                     */
     487                    DBGFR3InfoRegisterInternal(pVM, "ff", "Displays the current Forced actions Flags.", vmmR3InfoFF);
     488
    483489                    /*
    484490                     * Statistics.
     
    25932599}
    25942600
     2601
     2602
     2603/**
     2604 * Displays the Force action Flags.
     2605 *
     2606 * @param   pVM         The VM handle.
     2607 * @param   pHlp        The output helpers.
     2608 * @param   pszArgs     The additional arguments (ignored).
     2609 */
     2610static DECLCALLBACK(void) vmmR3InfoFF(PVM pVM, PCDBGFINFOHLP pHlp, const char *pszArgs)
     2611{
     2612    const uint32_t fForcedActions = pVM->fForcedActions;
     2613
     2614    pHlp->pfnPrintf(pHlp, "Forced action Flags: %#RX32", fForcedActions);
     2615
     2616    /* show the flag mnemonics  */
     2617    int c = 0;
     2618    uint32_t f = fForcedActions;
     2619#define PRINT_FLAG(flag) do { \
     2620        if (f & (flag)) \
     2621        { \
     2622            static const char *s_psz = #flag; \
     2623            if (!(c % 6)) \
     2624                pHlp->pfnPrintf(pHlp, "%s\n    %s", c ? "," : "", s_psz + 6); \
     2625            else \
     2626                pHlp->pfnPrintf(pHlp, ", %s", s_psz + 6); \
     2627            c++; \
     2628            f &= ~(flag); \
     2629        } \
     2630    } while (0)
     2631    PRINT_FLAG(VM_FF_INTERRUPT_APIC);
     2632    PRINT_FLAG(VM_FF_INTERRUPT_PIC);
     2633    PRINT_FLAG(VM_FF_TIMER);
     2634    PRINT_FLAG(VM_FF_PDM_QUEUES);
     2635    PRINT_FLAG(VM_FF_PDM_DMA);
     2636    PRINT_FLAG(VM_FF_PDM_CRITSECT);
     2637    PRINT_FLAG(VM_FF_DBGF);
     2638    PRINT_FLAG(VM_FF_REQUEST);
     2639    PRINT_FLAG(VM_FF_TERMINATE);
     2640    PRINT_FLAG(VM_FF_RESET);
     2641    PRINT_FLAG(VM_FF_PGM_SYNC_CR3);
     2642    PRINT_FLAG(VM_FF_PGM_SYNC_CR3_NON_GLOBAL);
     2643    PRINT_FLAG(VM_FF_TRPM_SYNC_IDT);
     2644    PRINT_FLAG(VM_FF_SELM_SYNC_TSS);
     2645    PRINT_FLAG(VM_FF_SELM_SYNC_GDT);
     2646    PRINT_FLAG(VM_FF_SELM_SYNC_LDT);
     2647    PRINT_FLAG(VM_FF_INHIBIT_INTERRUPTS);
     2648    PRINT_FLAG(VM_FF_CSAM_SCAN_PAGE);
     2649    PRINT_FLAG(VM_FF_CSAM_PENDING_ACTION);
     2650    PRINT_FLAG(VM_FF_TO_R3);
     2651    PRINT_FLAG(VM_FF_DEBUG_SUSPEND);
     2652    if (f)
     2653        pHlp->pfnPrintf(pHlp, "%s\n    Unknown bits: %#RX32\n", c ? "," : "", f);
     2654    else
     2655        pHlp->pfnPrintf(pHlp, "\n");
     2656#undef PRINT_FLAG
     2657
     2658    /* the groups */
     2659    c = 0;
     2660#define PRINT_GROUP(grp) do { \
     2661        if (fForcedActions & (grp)) \
     2662        { \
     2663            static const char *s_psz = #grp; \
     2664            if (!(c % 5)) \
     2665                pHlp->pfnPrintf(pHlp, "%s    %s", c ? ",\n" : "Groups:\n", s_psz + 6); \
     2666            else \
     2667                pHlp->pfnPrintf(pHlp, ", %s", s_psz + 6); \
     2668            c++; \
     2669        } \
     2670    } while (0)
     2671    PRINT_GROUP(VM_FF_EXTERNAL_SUSPENDED_MASK);
     2672    PRINT_GROUP(VM_FF_EXTERNAL_HALTED_MASK);
     2673    PRINT_GROUP(VM_FF_HIGH_PRIORITY_PRE_MASK);
     2674    PRINT_GROUP(VM_FF_HIGH_PRIORITY_PRE_RAW_MASK);
     2675    PRINT_GROUP(VM_FF_HIGH_PRIORITY_POST_MASK);
     2676    PRINT_GROUP(VM_FF_NORMAL_PRIORITY_POST_MASK);
     2677    PRINT_GROUP(VM_FF_NORMAL_PRIORITY_MASK);
     2678    PRINT_GROUP(VM_FF_RESUME_GUEST_MASK);
     2679    PRINT_GROUP(VM_FF_ALL_BUT_RAW_MASK);
     2680    if (c)
     2681        pHlp->pfnPrintf(pHlp, "\n");
     2682#undef PRINT_GROUP
     2683}
     2684
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