VirtualBox

Changeset 34994 in vbox


Ignore:
Timestamp:
Dec 13, 2010 12:11:53 PM (14 years ago)
Author:
vboxsync
Message:

BIOS: Properly report the number of sectors transferred by ata_cmd_data_in().

File:
1 edited

Legend:

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

    r34966 r34994  
    28562856{
    28572857  Bit16u ebda_seg=read_word(0x0040,0x000E);
    2858   Bit16u iobase1, iobase2, blksize;
     2858  Bit16u iobase1, iobase2, blksize, mult_blk_cnt;
    28592859  Bit8u  channel, slave;
    28602860  Bit8u  status, current, mode;
     
    28742874  if (status & ATA_CB_STAT_BSY)
    28752875  {
     2876    BX_DEBUG_ATA("ata_cmd_data_in : disk busy\n");
    28762877    // Enable interrupts
    28772878    outb(iobase2+ATA_CB_DC, ATA_CB_DC_HD15);
     
    29222923  outb(iobase1 + ATA_CB_CMD, command);
    29232924
    2924   if (command == ATA_CMD_READ_MULTIPLE)
     2925  if (command == ATA_CMD_READ_MULTIPLE || command == ATA_CMD_READ_MULTIPLE_EXT) {
     2926    mult_blk_cnt = count;
    29252927    count = 1;
     2928  } else {
     2929    mult_blk_cnt = 1;
     2930  }
    29262931
    29272932  while (1) {
     
    29932998ASM_END
    29942999
    2995     current++;
     3000    current += mult_blk_cnt;
    29963001    write_word(ebda_seg, &EbdaData->ata.trsfsectors,current);
    29973002    count--;
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