VirtualBox

Changeset 34458 in vbox for trunk/src/VBox/Devices/PC


Ignore:
Timestamp:
Nov 29, 2010 12:29:23 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
68232
Message:

BIOS: removed generic vars mechanism

Location:
trunk/src/VBox/Devices/PC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/BIOS/rombios.c

    r34455 r34458  
    46454645}
    46464646
    4647 Bit32u readBiosVar(varNum)
    4648     Bit16u varNum;
    4649 {
    4650     int i, iPort = 0x402;
    4651     Bit32u result = 0;
    4652     Bit8u bits[4];
    4653 
    4654     outw(iPort, varNum);
    4655 
    4656     for (i=0; i<4; i++)
    4657         bits[i] = inb(iPort);
    4658 
    4659     result = (((Bit32u)bits[3]) << 24) | (((Bit32u)bits[2]) <<  16) |
    4660              (((Bit32u)bits[1]) <<  8) | (((Bit32u)bits[0]) <<  0);
    4661 
    4662     return result;
    4663 }
    4664 
    46654647  void
    46664648int15_function32(regs, ES, DS, FLAGS)
     
    47664748#endif /* !VBOX */
    47674749
    4768                 mcfgStart = readBiosVar(1);
    4769                 mcfgSize  = readBiosVar(2);
     4750                mcfgStart = 0;
     4751                mcfgSize  = 0;
    47704752
    47714753                switch(regs.u.r16.bx)
  • trunk/src/VBox/Devices/PC/DevPcBios.cpp

    r34426 r34458  
    180180    uint32_t        u32McfgBase;
    181181    uint32_t        cbMcfgLength;
    182     uint16_t        iVarNum;
    183     uint16_t        iVarPos;
    184182} DEVPCBIOS, *PDEVPCBIOS;
    185183
     
    638636}
    639637
    640 static uint8_t pcbiosReadVar(PDEVPCBIOS pThis)
    641 {
    642     uint32_t u32Val = 0, u32Size = 4;
    643     switch (pThis->iVarNum)
    644     {
    645         case 1:
    646             u32Val = pThis->u32McfgBase;
    647             u32Size = 4;
    648             break;
    649         case 2:
    650             u32Val = pThis->cbMcfgLength;
    651             u32Size = 4;
    652             break;
    653         default:
    654             AssertMsgFailed(("Unknown variable: %d\n", pThis->iVarNum));
    655     }
    656     uint32_t iPos = pThis->iVarPos++;
    657     if (pThis->iVarPos >= u32Size)
    658             pThis->iVarPos = 0;
    659 
    660     Log(("Read pos %d of var %d: %x\n",
    661          iPos, pThis->iVarNum, (u32Val >> (iPos*8)) & 0xff));
    662 
    663     return (u32Val >> (iPos*8)) & 0xff;
    664 }
    665 
    666638/**
    667639 * Port I/O Handler for IN operations.
     
    677649static DECLCALLBACK(int) pcbiosIOPortRead(PPDMDEVINS pDevIns, void *pvUser, RTIOPORT Port, uint32_t *pu32, unsigned cb)
    678650{
    679     if (cb == 1 && Port == 0x402)
    680     {
    681         PDEVPCBIOS pThis = PDMINS_2_DATA(pDevIns, PDEVPCBIOS);
    682         uint8_t u8Val = pcbiosReadVar(pThis);
    683         *(uint8_t*)pu32 = u8Val;
    684         return VINF_SUCCESS;
    685     }
    686 
    687651    return VERR_IOM_IOPORT_UNUSED;
    688652}
     
    750714            pThis->szMsg[++pThis->iMsg] = '\0';
    751715        }
    752         return VINF_SUCCESS;
    753     }
    754 
    755     if (cb == 2 && Port == 0x402)
    756     {
    757         PDEVPCBIOS pThis = PDMINS_2_DATA(pDevIns, PDEVPCBIOS);
    758         pThis->iVarNum = u32;
    759         pThis->iVarPos = 0;
    760716        return VINF_SUCCESS;
    761717    }
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