diff options
author | google <google@daverabbitz.ath.cx> | 2012-09-09 17:22:12 +1200 |
---|---|---|
committer | google <google@daverabbitz.ath.cx> | 2012-09-09 17:22:12 +1200 |
commit | dd1b8df8808df4fe295a90ab494da90162c5654f (patch) | |
tree | eabbba5b00e6a1288001f4fb8ae5a5ee667cc234 /sys/src/libdisk | |
parent | aead11533ec4d17f4382b1e10f850042391bccb2 (diff) |
Add alignment hints for e512 ATA drives.
Diffstat (limited to 'sys/src/libdisk')
-rw-r--r-- | sys/src/libdisk/disk.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/src/libdisk/disk.c b/sys/src/libdisk/disk.c index dadb92cf2..0ac988438 100644 --- a/sys/src/libdisk/disk.c +++ b/sys/src/libdisk/disk.c @@ -247,13 +247,17 @@ opensd(Disk *disk) disk->s = strtol(f[5], 0, 0); } } + if(nf >= 3 && strcmp(f[0], "alignment") == 0) { + disk->psecsize = strtol(f[1], 0, 0); + disk->physalign = strtol(f[2], 0, 0); + } if(nf >= 4 && strcmp(f[0], "part") == 0 && strcmp(f[1], disk->part) == 0) { disk->offset = strtoll(f[2], 0, 0); disk->secs = strtoll(f[3], 0, 0) - disk->offset; } } - + if (!disk->psecsize) disk->psecsize = disk->secsize; disk->size = disk->secs * disk->secsize; if(disk->size <= 0) { strcpy(disk->part, ""); |