commit-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[2475] 2009-08-07 Felix Zielcke <address@hidden>


From: Felix Zielcke
Subject: [2475] 2009-08-07 Felix Zielcke <address@hidden>
Date: Fri, 07 Aug 2009 13:37:52 +0000

Revision: 2475
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=2475
Author:   fzielcke
Date:     2009-08-07 13:37:52 +0000 (Fri, 07 Aug 2009)
Log Message:
-----------
2009-08-07  Felix Zielcke  <address@hidden>

        * fs/uuid.c (grub_jfs_superblock): New fields unused2 and uuid.
        (grub_jfs_uuid): New function.
        (grub_jfs_fs): Set uuid field to grub_jfs_uuid.

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/fs/jfs.c

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog       2009-08-07 12:18:03 UTC (rev 2474)
+++ trunk/grub2/ChangeLog       2009-08-07 13:37:52 UTC (rev 2475)
@@ -1,5 +1,11 @@
 2009-08-07  Felix Zielcke  <address@hidden>
 
+       * fs/uuid.c (grub_jfs_superblock): New fields unused2 and uuid.
+       (grub_jfs_uuid): New function.
+       (grub_jfs_fs): Set uuid field to grub_jfs_uuid.
+
+2009-08-07  Felix Zielcke  <address@hidden>
+
        * util/grub-mkconfig_lib.in (font_path): Move the functionality
        of it to ...
        * util/grub-mkconfig.in: ... here.  Prefer unicode.pf2 and

Modified: trunk/grub2/fs/jfs.c
===================================================================
--- trunk/grub2/fs/jfs.c        2009-08-07 12:18:03 UTC (rev 2474)
+++ trunk/grub2/fs/jfs.c        2009-08-07 13:37:52 UTC (rev 2475)
@@ -51,6 +51,8 @@
 
   grub_uint8_t unused[71];
   grub_uint8_t volname[11];
+  grub_uint8_t unused2[32];
+  grub_uint8_t uuid[16];
 };
 
 struct grub_jfs_extent
@@ -832,7 +834,39 @@
   return GRUB_ERR_NONE;
 }
 
+static grub_err_t
+grub_jfs_uuid (grub_device_t device, char **uuid)
+{
+  struct grub_jfs_data *data;
+  grub_disk_t disk = device->disk;
 
+  grub_dl_ref (my_mod);
+
+  data = grub_jfs_mount (disk);
+  if (data)
+    {
+      *uuid = grub_malloc (40 + sizeof ('\0'));
+
+      grub_sprintf (*uuid, 
"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+                   data->sblock.uuid[0], data->sblock.uuid[1],
+                   data->sblock.uuid[2], data->sblock.uuid[3],
+                   data->sblock.uuid[4], data->sblock.uuid[5],
+                   data->sblock.uuid[6], data->sblock.uuid[7],
+                    data->sblock.uuid[8], data->sblock.uuid[9],
+                    data->sblock.uuid[10], data->sblock.uuid[11],
+                    data->sblock.uuid[12], data->sblock.uuid[13],
+                    data->sblock.uuid[14], data->sblock.uuid[15]);
+    }
+  else
+    *uuid = NULL;
+
+  grub_dl_unref (my_mod);
+
+  grub_free (data);
+
+  return grub_errno;
+}
+
 static grub_err_t
 grub_jfs_label (grub_device_t device, char **label)
 {
@@ -856,6 +890,7 @@
     .read = grub_jfs_read,
     .close = grub_jfs_close,
     .label = grub_jfs_label,
+    .uuid = grub_jfs_uuid,
     .next = 0
   };
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]