Initial public busybox maemo commit, 3:1.10.2.legal-1osso12
[busybox4maemo] / debian / sfdisk / disksize.c
diff --git a/debian/sfdisk/disksize.c b/debian/sfdisk/disksize.c
new file mode 100644 (file)
index 0000000..f5687d2
--- /dev/null
@@ -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;
+}