diskio: fix name for secpercyl field, remove unused type field
authorH. Peter Anvin <hpa@zytor.com>
Sat, 17 Jul 2010 19:36:26 +0000 (12:36 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Sat, 17 Jul 2010 19:36:26 +0000 (12:36 -0700)
Fix the name for the incorrectly named "t" (track) field; it is in
fact the sectors/cylinder (secpercyl) field.  Furthermore, remove the
completely unused "type" field... right now the pointer to the
rdwr_sectors field acts as a proxy, and if we need more complex stuff
in the future it is probably better handled by pointing to an ops
structure.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
core/fs/diskio.c
core/include/disk.h
core/include/fs.h

index b6722e7..449e12c 100644 (file)
@@ -12,7 +12,7 @@
 
 static inline sector_t chs_max(const struct disk *disk)
 {
-    return disk->t << 10;
+    return disk->secpercyl << 10;
 }
 
 static int chs_rdwr_sectors(struct disk *disk, void *buf,
@@ -24,7 +24,7 @@ static int chs_rdwr_sectors(struct disk *disk, void *buf,
     int sector_shift = disk->sector_shift;
     uint32_t xlba = lba + disk->part_start; /* Truncated LBA (CHS is << 2 TB) */
     uint32_t t;
-    uint16_t c, h, s;
+    uint32_t c, h, s;
     com32sys_t ireg, oreg;
     size_t done = 0;
     size_t bytes;
@@ -377,11 +377,10 @@ struct disk *disk_init(uint8_t devno, bool cdrom, sector_t part_start,
     }
 
     disk.disk_number   = devno;
-    disk.type          = ebios;
     disk.sector_size   = sector_size;
     disk.sector_shift  = ilog2(sector_size);
     disk.part_start    = part_start;
-    disk.t             = disk.h * disk.s;
+    disk.secpercyl     = disk.h * disk.s;
     disk.rdwr_sectors  = ebios ? edd_rdwr_sectors : chs_rdwr_sectors;
 
     if (!MaxTransfer || MaxTransfer > hard_max_transfer)
index f433fa9..ac23e92 100644 (file)
@@ -13,14 +13,14 @@ typedef uint64_t block_t;
  * contains the I/O function.
  */
 struct disk {
-    unsigned int disk_number;  /* in BIOS style */
-    unsigned int type;         /* CHS or EDD */
-    unsigned int sector_size;  /* gener512B or 2048B */
+    unsigned int disk_number;  /* in BIOS style */
+    unsigned int sector_size;  /* gener512B or 2048B */
     unsigned int sector_shift;
+    unsigned int maxtransfer;  /* Max sectors per transfer */
     
-    unsigned int h, s;         /* CHS geometry */
-    unsigned int t;           /* h*s */
-    uint32_t maxtransfer;      /* Max sectors per transfer */
+    unsigned int h, s;         /* CHS geometry */
+    unsigned int secpercyl;    /* h*s */
+    unsigned int _pad;
 
     sector_t part_start;   /* the start address of this partition(in sectors) */
 
index da247a9..ecd148d 100644 (file)
@@ -116,8 +116,6 @@ struct file {
     struct inode *inode;        /* The file-specific information */
 };
 
-enum dev_type {CHS, EDD};
-
 /*
  * Struct device contains:
  *     the pointer points to the disk structure,