#include #include "namespace.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /*================================================================ * minix_sizeup - determine device size *===============================================================*/ int minix_sizeup(device, bytes) char *device; u64_t *bytes; { int fd; struct part_geom entry; struct stat st; if ((fd = open(device, O_RDONLY)) == -1) { if (errno != ENOENT) perror("sizeup open"); return -1; } if (ioctl(fd, DIOCGETP, &entry) == -1) { perror("sizeup ioctl"); if(fstat(fd, &st) < 0) { perror("fstat"); entry.size = ((u64_t)(0)); } else { entry.size = ((u64_t)(st.st_size)); } } close(fd); *bytes = entry.size; return 0; }