diff options
Diffstat (limited to 'libblkid/wholedisk.c')
-rw-r--r-- | libblkid/wholedisk.c | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/libblkid/wholedisk.c b/libblkid/wholedisk.c deleted file mode 100644 index 1dbb90c5c..000000000 --- a/libblkid/wholedisk.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * No copyright is claimed. This code is in the public domain; do with - * it what you wish. - * - * Written by Karel Zak <kzak@redhat.com> - */ -#include <stdio.h> -#include <stdlib.h> -#include <ctype.h> - -#include "blkdev.h" -#include "wholedisk.h" - -int is_whole_disk_fd(int fd, const char *name) -{ -#ifdef HDIO_GETGEO - if (fd != -1) { - struct hd_geometry geometry; - int i = ioctl(fd, HDIO_GETGEO, &geometry); - if (i == 0) - return geometry.start == 0; - } -#endif - /* - * The "silly heuristic" is still sexy for us, because - * for example Xen doesn't implement HDIO_GETGEO for virtual - * block devices (/dev/xvda). - * - * -- kzak@redhat.com (23-Feb-2006) - */ - while (*name) - name++; - return !isdigit(name[-1]); -} - -int is_whole_disk(const char *name) -{ - int fd = -1, res = 0; -#ifdef HDIO_GETGEO - fd = open(name, O_RDONLY); - if (fd != -1) -#endif - res = is_whole_disk_fd(fd, name); - - if (fd != -1) - close(fd); - return res; -} - -#ifdef TEST_PROGRAM -int main(int argc, char **argv) -{ - if (argc < 2) { - fprintf(stderr, "usage: %s <device>\n", argv[0]); - exit(EXIT_FAILURE); - } - - printf("%s: is%s whole disk\n", argv[1], - is_whole_disk(argv[1]) ? "" : " NOT"); - exit(EXIT_SUCCESS); -} -#endif |