VirtualBox

Changeset 14879 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Dec 1, 2008 5:15:41 PM (16 years ago)
Author:
vboxsync
Message:

Added a few VGA register dump debug helpers (see 'info help').

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/DevVGA.cpp

    r14829 r14879  
    43374337}
    43384338
     4339/**
     4340 * Info handler, device version. Dumps VGA Sequencer registers.
     4341 *
     4342 * @param   pDevIns     Device instance which registered the info.
     4343 * @param   pHlp        Callback functions for doing output.
     4344 * @param   pszArgs     Argument string. Optional and specific to the handler.
     4345 */
     4346static DECLCALLBACK(void) vgaInfoSR(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, const char *pszArgs)
     4347{
     4348    PVGASTATE   s = PDMINS_2_DATA(pDevIns, PVGASTATE);
     4349    unsigned    i;
     4350
     4351    pHlp->pfnPrintf(pHlp, "VGA Sequencer (3C5): SR index 3C4:%02X\n", s->sr_index);
     4352    Assert(sizeof(s->sr) >= 8);
     4353    for (i = 0; i < 5; ++i)
     4354    {
     4355        pHlp->pfnPrintf(pHlp, " SR%02X:%02X", i, s->sr[i]);
     4356    }
     4357    pHlp->pfnPrintf(pHlp, "\n");
     4358}
     4359
     4360/**
     4361 * Info handler, device version. Dumps VGA CRTC registers.
     4362 *
     4363 * @param   pDevIns     Device instance which registered the info.
     4364 * @param   pHlp        Callback functions for doing output.
     4365 * @param   pszArgs     Argument string. Optional and specific to the handler.
     4366 */
     4367static DECLCALLBACK(void) vgaInfoCR(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, const char *pszArgs)
     4368{
     4369    PVGASTATE   s = PDMINS_2_DATA(pDevIns, PVGASTATE);
     4370    unsigned    i;
     4371
     4372    pHlp->pfnPrintf(pHlp, "VGA CRTC (3D5): CRTC index 3D4:%02X\n", s->cr_index);
     4373    Assert(sizeof(s->cr) >= 24);
     4374    for (i = 0; i < 10; ++i)
     4375    {
     4376        pHlp->pfnPrintf(pHlp, " CR%02X:%02X", i, s->cr[i]);
     4377    }
     4378    pHlp->pfnPrintf(pHlp, "\n");
     4379    for (i = 10; i < 20; ++i)
     4380    {
     4381        pHlp->pfnPrintf(pHlp, " CR%02X:%02X", i, s->cr[i]);
     4382    }
     4383    pHlp->pfnPrintf(pHlp, "\n");
     4384    for (i = 20; i < 25; ++i)
     4385    {
     4386        pHlp->pfnPrintf(pHlp, " CR%02X:%02X", i, s->cr[i]);
     4387    }
     4388    pHlp->pfnPrintf(pHlp, "\n");
     4389}
     4390
     4391/**
     4392 * Info handler, device version. Dumps VGA Sequencer registers.
     4393 *
     4394 * @param   pDevIns     Device instance which registered the info.
     4395 * @param   pHlp        Callback functions for doing output.
     4396 * @param   pszArgs     Argument string. Optional and specific to the handler.
     4397 */
     4398static DECLCALLBACK(void) vgaInfoAR(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, const char *pszArgs)
     4399{
     4400    PVGASTATE   s = PDMINS_2_DATA(pDevIns, PVGASTATE);
     4401    unsigned    i;
     4402
     4403    pHlp->pfnPrintf(pHlp, "VGA Attribute Controller (3C0): index reg %02X, flip-flop: %d (%s)\n",
     4404                    s->ar_index, s->ar_flip_flop, s->ar_flip_flop ? "data" : "index" );
     4405    Assert(sizeof(s->ar) >= 0x14);
     4406    pHlp->pfnPrintf(pHlp, " Palette:");
     4407    for (i = 0; i < 0x10; ++i)
     4408    {
     4409        pHlp->pfnPrintf(pHlp, " %02X", i, s->ar[i]);
     4410    }
     4411    pHlp->pfnPrintf(pHlp, "\n");
     4412    for (i = 0x10; i <= 0x14; ++i)
     4413    {
     4414        pHlp->pfnPrintf(pHlp, " AR%02X:%02X", i, s->ar[i]);
     4415    }
     4416    pHlp->pfnPrintf(pHlp, "\n");
     4417}
     4418
    43394419
    43404420/* -=-=-=-=-=- Ring 3: IBase -=-=-=-=-=- */
     
    57845864
    57855865    /*
    5786      * Register debugger info callback.
     5866     * Register debugger info callbacks.
    57875867     */
    57885868    PDMDevHlpDBGFInfoRegister(pDevIns, "vgatext", "Display VGA memory formatted as text.", vgaInfoText);
     5869    PDMDevHlpDBGFInfoRegister(pDevIns, "vgacr", "Dump VGA CRTC registers.", vgaInfoCR);
     5870    PDMDevHlpDBGFInfoRegister(pDevIns, "vgasr", "Dump VGA Sequencer registers.", vgaInfoSR);
     5871    PDMDevHlpDBGFInfoRegister(pDevIns, "vgaar", "Dump VGA Attribute Controller registers.", vgaInfoAR);
    57895872
    57905873    /*
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