diff options
author | jhb <jhb@FreeBSD.org> | 2004-03-16 17:07:06 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2004-03-16 17:07:06 +0000 |
commit | b7e56e9eea26be625659f4a99d9094c501a0a3bc (patch) | |
tree | 5aa997ef67b14b420649f8ea11a120707fde3633 /lib/libdisk/open_disk.c | |
parent | 662b843050ffa69c81e8bd9be635806f6abd5739 (diff) | |
download | FreeBSD-src-b7e56e9eea26be625659f4a99d9094c501a0a3bc.zip FreeBSD-src-b7e56e9eea26be625659f4a99d9094c501a0a3bc.tar.gz |
Change libdisk and sysinstall to use d_addr_t rather than u_long for disk
addresses. For arch's with 64-bit longs, this is a nop, but for i386 this
allows sysinstall to properly handle disks and filesystems > 1 TB.
Changes from the original patch include:
- Use d_addr_t rather than inventing a blkcnt type based on int64_t.
- Use strtoimax() rather than strtoull() to parse d_addr_t's from config
files.
- Use intmax_t casts and %jd rather than %llu to printf d_addr_t values.
Tested on: i386
Tested by: kuriyama
Submitted by: julian
MFC after: 1 month
Diffstat (limited to 'lib/libdisk/open_disk.c')
-rw-r--r-- | lib/libdisk/open_disk.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/libdisk/open_disk.c b/lib/libdisk/open_disk.c index 99abba5..b0d4ac7 100644 --- a/lib/libdisk/open_disk.c +++ b/lib/libdisk/open_disk.c @@ -45,9 +45,9 @@ Int_Open_Disk(const char *name, char *conftxt) struct disk *d; int i; char *p, *q, *r, *a, *b, *n, *t, *sn; - off_t o, len, off; + daddr_t o, len, off; u_int l, s, ty, sc, hd, alt; - off_t lo[10]; + daddr_t lo[10]; for (p = conftxt; p != NULL && *p; p = strchr(p, '\n')) { if (*p == '\n') @@ -103,7 +103,7 @@ Int_Open_Disk(const char *name, char *conftxt) if (a == NULL) break; b = strsep(&p, " "); - o = strtoul(b, &r, 0); + o = strtoimax(b, &r, 0); if (*r) { printf("BARF %d <%d>\n", __LINE__, *r); exit (0); |