chiark / gitweb /
volume_id: use md native uuid format
authorKay Sievers <kay.sievers@vrfy.org>
Thu, 3 May 2007 07:24:16 +0000 (09:24 +0200)
committerKay Sievers <kay.sievers@vrfy.org>
Thu, 3 May 2007 07:24:16 +0000 (09:24 +0200)
extras/volume_id/lib/linux_raid.c
extras/volume_id/lib/util.c
extras/volume_id/lib/util.h

index 8ce2eb5..6f37e2a 100644 (file)
@@ -87,7 +87,7 @@ static int volume_id_probe_linux_raid0(struct volume_id *id, uint64_t off, uint6
                        uuid.ints[2] = 0;
                        uuid.ints[3] = 0;
                }
-               volume_id_set_uuid(id, uuid.bytes, UUID_DCE);
+               volume_id_set_uuid(id, uuid.bytes, UUID_FOURINT);
                snprintf(id->type_version, sizeof(id->type_version)-1, "%u.%u.%u",
                         le32_to_cpu(mdp0->major_version),
                         le32_to_cpu(mdp0->minor_version),
@@ -103,7 +103,7 @@ static int volume_id_probe_linux_raid0(struct volume_id *id, uint64_t off, uint6
                        uuid.ints[2] = 0;
                        uuid.ints[3] = 0;
                }
-               volume_id_set_uuid(id, uuid.bytes, UUID_DCE);
+               volume_id_set_uuid(id, uuid.bytes, UUID_FOURINT);
                snprintf(id->type_version, sizeof(id->type_version)-1, "%u.%u.%u",
                         be32_to_cpu(mdp0->major_version),
                         be32_to_cpu(mdp0->minor_version),
@@ -131,7 +131,7 @@ static int volume_id_probe_linux_raid1(struct volume_id *id, uint64_t off, uint6
        if (le32_to_cpu(mdp1->magic) != MD_SB_MAGIC)
                return -1;
 
-       volume_id_set_uuid(id, mdp1->set_uuid, UUID_DCE);
+       volume_id_set_uuid(id, mdp1->set_uuid, UUID_FOURINT);
        volume_id_set_label_raw(id, mdp1->set_name, 32);
        volume_id_set_label_string(id, mdp1->set_name, 32);
        snprintf(id->type_version, sizeof(id->type_version)-1, "%u", le32_to_cpu(mdp1->major_version));
index 09bfc67..762e84e 100644 (file)
@@ -134,6 +134,9 @@ void volume_id_set_uuid(struct volume_id *id, const uint8_t *buf, enum uuid_form
        case UUID_DCE_STRING:
                count = 36;
                break;
+       case UUID_FOURINT:
+               count = 35;
+               break;
        }
        memcpy(id->uuid_raw, buf, count);
        id->uuid_raw_len = count;
@@ -173,6 +176,14 @@ set:
                memcpy(id->uuid, buf, count);
                id->uuid[count] = '\0';
                break;
+       case UUID_FOURINT:
+               sprintf(id->uuid,
+                       "%02x%02x%02x%02x:%02x%02x%02x%02x:%02x%02x%02x%02x:%02x%02x%02x%02x",
+                       buf[0], buf[1], buf[2], buf[3],
+                       buf[4], buf[5], buf[6], buf[7],
+                       buf[8], buf[9], buf[10], buf[11],
+                       buf[12], buf[13], buf[14],buf[15]);
+               break;
        }
 }
 
index dc60a09..2abf05d 100644 (file)
@@ -64,6 +64,7 @@ enum uuid_format {
        UUID_DOS,
        UUID_NTFS,
        UUID_HFS,
+       UUID_FOURINT,
 };
 
 enum endian {