+ return vid;
+}
+
+static unsigned long long get_size(struct volume_id *vid)
+{
+ unsigned long long size;
+
+ if (ioctl(vid->fd, BLKGETSIZE64, &size) != 0)
+ size = 0;
+
+ return size;
+}
+
+static char *usage_id_name(enum volume_id_usage usage)
+{
+ switch(usage) {
+ case VOLUME_ID_UNUSED:
+ return "unused";
+ case VOLUME_ID_UNPROBED:
+ return "unprobed";
+ case VOLUME_ID_OTHER:
+ return "other";
+ case VOLUME_ID_PARTITIONTABLE:
+ return "partitiontable";
+ case VOLUME_ID_FILESYSTEM:
+ return "filesystem";
+ case VOLUME_ID_RAID:
+ return "raid";
+ default:
+ return "unknown type_id";
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ const char help[] = "usage: udev_volume_id [-t|-l|-u|-d]\n"
+ " -t filesystem type\n"
+ " -l filesystem label\n"
+ " -u filesystem uuid\n"
+ " -d disk label from main device\n"
+ "\n";
+ static const char short_options[] = "htlud";
+ char sysfs_path[SYSFS_PATH_MAX];
+ char dev_path[SYSFS_PATH_MAX];
+ struct sysfs_class_device *class_dev = NULL;
+ struct sysfs_class_device *class_dev_parent = NULL;
+ struct volume_id *vid = NULL;
+ char *devpath;
+ char probe = 'p';
+ char print = 'a';
+ char dasd_label[7];
+ static char name[VOLUME_ID_LABEL_SIZE];
+ int len, i, j;
+ unsigned long long size;
+ int rc = 1;