summaryrefslogtreecommitdiff
path: root/sys/src/libdisk
diff options
context:
space:
mode:
authorgoogle <google@daverabbitz.ath.cx>2012-09-09 17:22:12 +1200
committergoogle <google@daverabbitz.ath.cx>2012-09-09 17:22:12 +1200
commitdd1b8df8808df4fe295a90ab494da90162c5654f (patch)
treeeabbba5b00e6a1288001f4fb8ae5a5ee667cc234 /sys/src/libdisk
parentaead11533ec4d17f4382b1e10f850042391bccb2 (diff)
Add alignment hints for e512 ATA drives.
Diffstat (limited to 'sys/src/libdisk')
-rw-r--r--sys/src/libdisk/disk.c6
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, "");