summaryrefslogtreecommitdiffstats
path: root/lib/libdisk/write_disk.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1995-05-01 04:05:27 +0000
committerphk <phk@FreeBSD.org>1995-05-01 04:05:27 +0000
commit632f39cd533df1a0c9395254371443c5a394ba45 (patch)
treec46a25276d72afe90b217d8e55e20c80503b4c84 /lib/libdisk/write_disk.c
parent7cb2df48bc34ef37bbb1cf9d3e8ac4b8899a75c9 (diff)
downloadFreeBSD-src-632f39cd533df1a0c9395254371443c5a394ba45.zip
FreeBSD-src-632f39cd533df1a0c9395254371443c5a394ba45.tar.gz
start CHS is 0xff,0xff,0xff if past 1024.
end CHS is 1023,bios_hd,bios_sect if past 1024. This way we can find bios the geometry again. Added a primitive "scan" to tst01.
Diffstat (limited to 'lib/libdisk/write_disk.c')
-rw-r--r--lib/libdisk/write_disk.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/lib/libdisk/write_disk.c b/lib/libdisk/write_disk.c
index c97727c..818076a 100644
--- a/lib/libdisk/write_disk.c
+++ b/lib/libdisk/write_disk.c
@@ -151,7 +151,6 @@ Write_Disk(struct disk *d1)
dp[j].dp_ssect = 0xff;
dp[j].dp_shd = 0xff;
dp[j].dp_scyl = 0xff;
-
} else {
dp[j].dp_ssect = i % d1->bios_sect;
i -= dp[j].dp_ssect++;
@@ -163,26 +162,22 @@ Write_Disk(struct disk *d1)
i -= dp[j].dp_scyl;
dp[j].dp_ssect |= i >> 2;
}
+
printf("S:%lu = (%x/%x/%x)",
c1->offset,dp[j].dp_scyl,dp[j].dp_shd,dp[j].dp_ssect);
i = c1->end;
- if (i >= 1024*d1->bios_sect*d1->bios_hd) {
- dp[j].dp_esect = 0xff;
- dp[j].dp_ehd = 0xff;
- dp[j].dp_ecyl = 0xff;
- } else {
- dp[j].dp_esect = i % d1->bios_sect;
- i -= dp[j].dp_esect++;
- i /= d1->bios_sect;
- dp[j].dp_ehd = i % d1->bios_hd;
- i -= dp[j].dp_ehd;
- i /= d1->bios_hd;
- dp[j].dp_ecyl = i;
- i -= dp[j].dp_ecyl;
- dp[j].dp_esect |= i >> 2;
-
- }
+ dp[j].dp_esect = i % d1->bios_sect;
+ i -= dp[j].dp_esect++;
+ i /= d1->bios_sect;
+ dp[j].dp_ehd = i % d1->bios_hd;
+ i -= dp[j].dp_ehd;
+ i /= d1->bios_hd;
+ if (i>1023) i = 1023;
+ dp[j].dp_ecyl = i;
+ i -= dp[j].dp_ecyl;
+ dp[j].dp_esect |= i >> 2;
+
printf(" E:%lu = (%x/%x/%x)\n",
c1->end,dp[j].dp_ecyl,dp[j].dp_ehd,dp[j].dp_esect);
OpenPOWER on IntegriCloud