aboutsummaryrefslogtreecommitdiffstats
path: root/src/cdrom.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2009-08-09 19:17:11 -0400
committerKevin O'Connor <kevin@koconnor.net>2009-08-09 19:17:11 -0400
commit3f6c278a595c9db1fef59afbacaee2d56c73f887 (patch)
treecc001f5a9bf98a52d2572b576fc2b81ae9581a5a /src/cdrom.c
parent9ae1e9b2c89912920a37d6e1593d4faa90a68e4b (diff)
downloadseabios-3f6c278a595c9db1fef59afbacaee2d56c73f887.tar.gz
Route disk_op commands by drive type - not by command.
Don't confuse op->command with low-level ata cmd->command. Modify __send_disk_op to route commands by drive type. Add commands for verify and seek operations. Do ata resets via disk_op also.
Diffstat (limited to 'src/cdrom.c')
-rw-r--r--src/cdrom.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/cdrom.c b/src/cdrom.c
index 443ce14b..2cb3f0f9 100644
--- a/src/cdrom.c
+++ b/src/cdrom.c
@@ -183,13 +183,13 @@ cdrom_13(struct bregs *regs, u8 device)
static void
cdemu_1302(struct bregs *regs, u8 device)
{
- cdemu_access(regs, device, ATA_CMD_READ_SECTORS);
+ cdemu_access(regs, device, CMD_READ);
}
static void
cdemu_1304(struct bregs *regs, u8 device)
{
- cdemu_access(regs, device, 0);
+ cdemu_access(regs, device, CMD_VERIFY);
}
// read disk drive parameters
@@ -414,6 +414,7 @@ cdrom_boot(int cdid)
// Read the Boot Record Volume Descriptor
u8 buffer[2048];
struct disk_op_s dop;
+ memset(&dop, 0, sizeof(dop));
dop.driveid = driveid;
dop.lba = 0x11;
dop.count = 1;