]> hydra-www.ietfng.org Git - xv6-public/commitdiff
Using the #defines consistently, nits.
authorPeter H. Froehlich <peter.hans.froehlich@gmail.com>
Mon, 28 Sep 2015 04:06:08 +0000 (00:06 -0400)
committerPeter H. Froehlich <peter.hans.froehlich@gmail.com>
Mon, 28 Sep 2015 04:06:08 +0000 (00:06 -0400)
bootmain.c
ide.c

index 2010d6fc69ca335d60bdf7351292601c462e2dfc..2af246224cf0ce94218dc2a0353bf57a8f8a9440 100644 (file)
@@ -50,7 +50,7 @@ void
 waitdisk(void)
 {
   // Wait for disk ready.
-  while((inb(IDE_DATA_PRIMARY+IDE_REG_STATUS) & 0xC0) != 0x40)
+  while((inb(IDE_DATA_PRIMARY+IDE_REG_STATUS) & (IDE_BSY|IDE_DRDY)) != IDE_DRDY)
     ;
 }
 
@@ -60,12 +60,12 @@ readsect(void *dst, uint offset)
 {
   // Issue command.
   waitdisk();
-  outb(IDE_DATA_PRIMARY+IDE_REG_SECTORS, 1);   // count = 1
-  outb(IDE_DATA_PRIMARY+IDE_REG_LBA0, offset);
-  outb(IDE_DATA_PRIMARY+IDE_REG_LBA1, offset >> 8);
-  outb(IDE_DATA_PRIMARY+IDE_REG_LBA2, offset >> 16);
-  outb(IDE_DATA_PRIMARY+IDE_REG_DISK, (offset >> 24) | 0xE0);
-  outb(IDE_DATA_PRIMARY+IDE_REG_COMMAND, IDE_CMD_READ);  // cmd 0x20 - read sectors
+  outb(IDE_DATA_PRIMARY+IDE_REG_SECTORS, 1);
+  outb(IDE_DATA_PRIMARY+IDE_REG_LBA0, offset & 0xff);
+  outb(IDE_DATA_PRIMARY+IDE_REG_LBA1, (offset >> 8) & 0xff);
+  outb(IDE_DATA_PRIMARY+IDE_REG_LBA2, (offset >> 16) & 0xff);
+  outb(IDE_DATA_PRIMARY+IDE_REG_DISK, ((offset >> 24) & 0x0f) | IDE_DISK_LBA);
+  outb(IDE_DATA_PRIMARY+IDE_REG_COMMAND, IDE_CMD_READ);
 
   // Read data.
   waitdisk();
diff --git a/ide.c b/ide.c
index 1b0e63ea6e88c1c597f1db79b6ef08ac268be34d..e32ed0e98d034ca1734f89708a9fc51671dd814e 100644 (file)
--- a/ide.c
+++ b/ide.c
@@ -47,7 +47,7 @@ ideinit(void)
   idewait(0);
 
   // Check if disk 1 is present
-  outb(IDE_DATA_PRIMARY+IDE_REG_DISK, 0xe0 | (1<<4));
+  outb(IDE_DATA_PRIMARY+IDE_REG_DISK, IDE_DISK_LBA | (1<<4));
   for(i=0; i<1000; i++){
     if(inb(IDE_DATA_PRIMARY+IDE_REG_STATUS) != 0){
       havedisk1 = 1;
@@ -56,7 +56,7 @@ ideinit(void)
   }
 
   // Switch back to disk 0.
-  outb(IDE_DATA_PRIMARY+IDE_REG_DISK, 0xe0 | (0<<4));
+  outb(IDE_DATA_PRIMARY+IDE_REG_DISK, IDE_DISK_LBA | (0<<4));
 }
 
 // Start the request for b.  Caller must hold idelock.
@@ -78,7 +78,7 @@ idestart(struct buf *b)
   outb(IDE_DATA_PRIMARY+IDE_REG_LBA0, sector & 0xff);
   outb(IDE_DATA_PRIMARY+IDE_REG_LBA1, (sector >> 8) & 0xff);
   outb(IDE_DATA_PRIMARY+IDE_REG_LBA2, (sector >> 16) & 0xff);
-  outb(IDE_DATA_PRIMARY+IDE_REG_DISK, 0xe0 | ((b->dev&1)<<4) | ((sector>>24)&0x0f));
+  outb(IDE_DATA_PRIMARY+IDE_REG_DISK, IDE_DISK_LBA | ((b->dev&1)<<4) | ((sector>>24)&0x0f));
   if(b->flags & B_DIRTY){
     outb(IDE_DATA_PRIMARY+IDE_REG_COMMAND, IDE_CMD_WRITE);
     outsl(IDE_DATA_PRIMARY+IDE_REG_DATA, b->data, BSIZE/4);