Index: head/sys/boot/common/disk.h =================================================================== --- head/sys/boot/common/disk.h +++ head/sys/boot/common/disk.h @@ -86,7 +86,7 @@ void *d_opendata; int d_slice; int d_partition; - off_t d_offset; + uint64_t d_offset; }; enum disk_ioctl { @@ -97,17 +97,17 @@ /* * Parse disk metadata and initialise dev->d_offset. */ -extern int disk_open(struct disk_devdesc *dev, off_t mediasize, +extern int disk_open(struct disk_devdesc *dev, uint64_t mediasize, u_int sectorsize, u_int flags); #define DISK_F_NOCACHE 0x0001 /* Do not use metadata caching */ extern int disk_close(struct disk_devdesc *dev); extern void disk_cleanup(const struct devsw *d_dev); extern int disk_ioctl(struct disk_devdesc *dev, u_long cmd, void *buf); -extern int disk_read(struct disk_devdesc *dev, void *buf, off_t offset, +extern int disk_read(struct disk_devdesc *dev, void *buf, uint64_t offset, u_int blocks); -extern int disk_write(struct disk_devdesc *dev, void *buf, off_t offset, +extern int disk_write(struct disk_devdesc *dev, void *buf, uint64_t offset, u_int blocks); -extern int ptblread(void *d, void *buf, size_t blocks, off_t offset); +extern int ptblread(void *d, void *buf, size_t blocks, uint64_t offset); /* * Print information about slices on a disk. Index: head/sys/boot/common/disk.c =================================================================== --- head/sys/boot/common/disk.c +++ head/sys/boot/common/disk.c @@ -45,7 +45,7 @@ struct open_disk { struct ptable *table; - off_t mediasize; + uint64_t mediasize; u_int sectorsize; u_int flags; int rcnt; @@ -64,7 +64,7 @@ int d_partition; struct open_disk *od; - off_t d_offset; + uint64_t d_offset; STAILQ_ENTRY(dentry) entry; #ifdef DISK_DEBUG uint32_t count; @@ -171,7 +171,7 @@ } int -ptblread(void *d, void *buf, size_t blocks, off_t offset) +ptblread(void *d, void *buf, size_t blocks, uint64_t offset) { struct disk_devdesc *dev; struct open_disk *od; @@ -238,7 +238,7 @@ } int -disk_read(struct disk_devdesc *dev, void *buf, off_t offset, u_int blocks) +disk_read(struct disk_devdesc *dev, void *buf, uint64_t offset, u_int blocks) { struct open_disk *od; int ret; @@ -251,7 +251,7 @@ } int -disk_write(struct disk_devdesc *dev, void *buf, off_t offset, u_int blocks) +disk_write(struct disk_devdesc *dev, void *buf, uint64_t offset, u_int blocks) { struct open_disk *od; int ret; @@ -274,7 +274,7 @@ } int -disk_open(struct disk_devdesc *dev, off_t mediasize, u_int sectorsize, +disk_open(struct disk_devdesc *dev, uint64_t mediasize, u_int sectorsize, u_int flags) { struct open_disk *od; Index: head/sys/boot/common/part.h =================================================================== --- head/sys/boot/common/part.h +++ head/sys/boot/common/part.h @@ -62,11 +62,11 @@ }; /* The offset and size are in sectors */ -typedef int (diskread_t)(void *arg, void *buf, size_t blocks, off_t offset); +typedef int (diskread_t)(void *arg, void *buf, size_t blocks, uint64_t offset); typedef int (ptable_iterate_t)(void *arg, const char *partname, const struct ptable_entry *part); -struct ptable *ptable_open(void *dev, off_t sectors, uint16_t sectorsize, +struct ptable *ptable_open(void *dev, uint64_t sectors, uint16_t sectorsize, diskread_t *dread); void ptable_close(struct ptable *table); enum ptable_type ptable_gettype(const struct ptable *table); Index: head/sys/boot/common/part.c =================================================================== --- head/sys/boot/common/part.c +++ head/sys/boot/common/part.c @@ -584,7 +584,7 @@ #endif /* LOADER_VTOC8_SUPPORT */ struct ptable* -ptable_open(void *dev, off_t sectors, uint16_t sectorsize, +ptable_open(void *dev, uint64_t sectors, uint16_t sectorsize, diskread_t *dread) { struct dos_partition *dp; Index: head/sys/boot/i386/libi386/biosdisk.c =================================================================== --- head/sys/boot/i386/libi386/biosdisk.c +++ head/sys/boot/i386/libi386/biosdisk.c @@ -493,7 +493,7 @@ *(u_int *)data = BD(dev).bd_sectorsize; break; case DIOCGMEDIASIZE: - *(off_t *)data = BD(dev).bd_sectors * BD(dev).bd_sectorsize; + *(uint64_t *)data = BD(dev).bd_sectors * BD(dev).bd_sectorsize; break; default: return (ENOTTY); Index: head/sys/boot/uboot/lib/disk.c =================================================================== --- head/sys/boot/uboot/lib/disk.c +++ head/sys/boot/uboot/lib/disk.c @@ -282,7 +282,7 @@ *(u_int *)data = SI(dev).bsize; break; case DIOCGMEDIASIZE: - *(off_t *)data = SI(dev).bsize * SI(dev).blocks; + *(uint64_t *)data = SI(dev).bsize * SI(dev).blocks; break; default: return (ENOTTY); Index: head/sys/boot/usb/storage/umass_loader.c =================================================================== --- head/sys/boot/usb/storage/umass_loader.c +++ head/sys/boot/usb/storage/umass_loader.c @@ -143,14 +143,14 @@ uint32_t blocksize; switch (cmd) { - case IOCTL_GET_BLOCK_SIZE: - case IOCTL_GET_BLOCKS: + case DIOCGSECTORSIZE: + case DIOCGMEDIASIZE: if (usb_msc_read_capacity(umass_uaa.device, 0, &nblock, &blocksize) != 0) return (EINVAL); - if (cmd == IOCTL_GET_BLOCKS) - *(uint32_t*)buf = nblock; + if (cmd == DIOCGMEDIASIZE) + *(uint64_t*)buf = nblock; else *(uint32_t*)buf = blocksize; Index: head/sys/boot/zfs/zfs.c =================================================================== --- head/sys/boot/zfs/zfs.c +++ head/sys/boot/zfs/zfs.c @@ -417,7 +417,7 @@ }; static int -zfs_diskread(void *arg, void *buf, size_t blocks, off_t offset) +zfs_diskread(void *arg, void *buf, size_t blocks, uint64_t offset) { struct zfs_probe_args *ppa;