diff options
Diffstat (limited to 'fdisk/disksize.c')
-rw-r--r-- | fdisk/disksize.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/fdisk/disksize.c b/fdisk/disksize.c new file mode 100644 index 00000000..a0a210e9 --- /dev/null +++ b/fdisk/disksize.c @@ -0,0 +1,17 @@ +#include "common.h" + +int disksize(int fd, unsigned long long *sectors) { + int err; + long sz; + long long b; + + err = ioctl (fd, BLKGETSIZE, &sz); + if (err) + return err; + err = ioctl(fd, BLKGETSIZE64, &b); + if (err || b == 0 || b == sz) + *sectors = sz; + else + *sectors = (b >> 9); + return 0; +} |