X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Fata.h;h=cb0193e965d29ad5e3e1cfeb820e43076a4e40d2;hp=4cf6cd27f7c1c475db3bbcc505ad1e4d33b812e4;hb=0121a4503305424096e2b5c5bd3b6c3af2d813e5;hpb=ec01e0d8a7a3debd92ce2787a9d8bfd15d38df04 diff --git a/palacios/src/devices/ata.h b/palacios/src/devices/ata.h index 4cf6cd2..cb0193e 100644 --- a/palacios/src/devices/ata.h +++ b/palacios/src/devices/ata.h @@ -64,10 +64,10 @@ static void ata_identify_device(struct ide_drive * drive) { drive_id->lba_enable = 1; // Drive Capacity (28 bit LBA) - drive_id->lba_capacity = drive->ops->get_capacity(drive->private_data); + drive_id->lba_capacity = drive->ops->get_capacity(drive->private_data) / HD_SECTOR_SIZE; // Drive Capacity (48 bit LBA) - drive_id->lba_capacity_2 = drive->ops->get_capacity(drive->private_data); + drive_id->lba_capacity_2 = drive->ops->get_capacity(drive->private_data) / HD_SECTOR_SIZE; // lower byte is the maximum multiple sector size... @@ -124,6 +124,9 @@ static int ata_read(struct vm_device * dev, struct ide_channel * channel, uint8_ } return 0; + + + } @@ -168,7 +171,7 @@ static int ata_get_lba(struct vm_device * dev, struct ide_channel * channel, uin if ((lba_addr.addr + sect_cnt) > - drive->ops->get_capacity(drive->private_data)) { + drive->ops->get_capacity(drive->private_data) / HD_SECTOR_SIZE) { PrintError("IDE: request size exceeds disk capacity (lba=%d) (sect_cnt=%d) (ReadEnd=%d) (capacity=%p)\n", lba_addr.addr, sect_cnt, lba_addr.addr + (sect_cnt * HD_SECTOR_SIZE),