VirtualBox

Changeset 4279 in vbox


Ignore:
Timestamp:
Aug 22, 2007 12:45:11 PM (17 years ago)
Author:
vboxsync
Message:

a special case for the ACPI index workaround (see r10335)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/DevACPI.cpp

    r4195 r4279  
    172172    uint32_t            uSleepState;
    173173    uint8_t             au8RSDPPage[0x1000];
     174    /** This is a workaround for incorrect index field handling by Intels ACPICA.
     175     *  The system info _INI method writes to offset 0x200. We either observe a
     176     *  write request to index 0x80 (in that case we don't change the index) or a
     177     *  write request to offset 0x200 (in that case we divide the index value by
     178     *  4. Note that the _STA method is sometimes called prior to the _INI method
     179     *  (ACPI spec 6.3.7, _STA). See the special case for BAT_DEVICE_STATUS in
     180     *  acpiBatIndexWrite() for handling this. */
    174181    uint8_t             u8IndexShift;
    175182    uint8_t             u8UseIOApic;
     
    980987        case 4:
    981988            u32 >>= s->u8IndexShift;
     989            /* see comment at the declaration of u8IndexShift */
     990            if (s->u8IndexShift == 0 && u32 == (BAT_DEVICE_STATUS << 2))
     991            {
     992                s->u8IndexShift = 2;
     993                u32 >>= 2;
     994            }
    982995            Assert (u32 < BAT_INDEX_LAST);
    983996            s->uBatteryIndex = u32;
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