commit-grub
[Top][All Lists]
Advanced

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

[2439] 2009-07-21 Vladimir Serbinenko <address@hidden>


From: Vladimir Serbinenko
Subject: [2439] 2009-07-21 Vladimir Serbinenko <address@hidden>
Date: Wed, 22 Jul 2009 11:16:12 +0000

Revision: 2439
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=2439
Author:   phcoder
Date:     2009-07-22 11:16:11 +0000 (Wed, 22 Jul 2009)
Log Message:
-----------
2009-07-21  Vladimir Serbinenko  <address@hidden>

        UUID support for UFS

        * fs/ufs.c (grub_ufs_sblock): Add uuidhi and uuidlow.
        (grub_ufs_uuid): New function.
        (grub_ufs_fs): add .uuid

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

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog       2009-07-21 20:18:44 UTC (rev 2438)
+++ trunk/grub2/ChangeLog       2009-07-22 11:16:11 UTC (rev 2439)
@@ -1,3 +1,11 @@
+2009-07-21  Vladimir Serbinenko  <address@hidden>
+
+       UUID support for UFS
+
+       * fs/ufs.c (grub_ufs_sblock): Add uuidhi and uuidlow.
+       (grub_ufs_uuid): New function.
+       (grub_ufs_fs): add .uuid
+
 2009-07-21  Pavel Roskin  <address@hidden>
 
        * kern/dl.c (grub_dl_check_header): Make static.

Modified: trunk/grub2/fs/ufs.c
===================================================================
--- trunk/grub2/fs/ufs.c        2009-07-21 20:18:44 UTC (rev 2438)
+++ trunk/grub2/fs/ufs.c        2009-07-22 11:16:11 UTC (rev 2439)
@@ -87,7 +87,10 @@
 
   /* The size of filesystem blocks to disk blocks.  */
   grub_uint32_t log2_blksz;
-  grub_uint8_t unused6[80];
+  grub_uint8_t unused6[40];
+  grub_uint32_t uuidhi;
+  grub_uint32_t uuidlow;
+  grub_uint8_t unused7[32];
 
   /* Inodes stored per cylinder group.  */
   grub_uint32_t ino_per_group;
@@ -95,14 +98,14 @@
   /* The frags per cylinder group.  */
   grub_uint32_t frags_per_group;
 
-  grub_uint8_t unused7[488];
+  grub_uint8_t unused8[488];
 
   /* Volume name for UFS2.  */
   grub_uint8_t volume_name[GRUB_UFS_VOLNAME_LEN];
-  grub_uint8_t unused8[360];
+  grub_uint8_t unused9[360];
 
   grub_uint64_t mtime2;
-  grub_uint8_t unused9[292];
+  grub_uint8_t unused10[292];
 
   /* Magic value to check if this is really a UFS filesystem.  */
   grub_uint32_t magic;
@@ -736,6 +739,33 @@
   return grub_errno;
 }
 
+static grub_err_t
+grub_ufs_uuid (grub_device_t device, char **uuid)
+{
+  struct grub_ufs_data *data;
+  grub_disk_t disk = device->disk;
+
+  grub_dl_ref (my_mod);
+
+  data = grub_ufs_mount (disk);
+  if (data)
+    {
+      *uuid = grub_malloc (16 + sizeof ('\0'));
+      grub_sprintf (*uuid, "%08x%08x",
+                   (unsigned) grub_le_to_cpu32 (data->sblock.uuidhi),
+                   (unsigned) grub_le_to_cpu32 (data->sblock.uuidlow));
+    }
+  else
+    *uuid = NULL;
+
+  grub_dl_unref (my_mod);
+
+  grub_free (data);
+
+  return grub_errno;
+}
+
+
 /* Get mtime.  */
 static grub_err_t
 grub_ufs_mtime (grub_device_t device, grub_int32_t *tm)
@@ -769,6 +799,7 @@
     .read = grub_ufs_read,
     .close = grub_ufs_close,
     .label = grub_ufs_label,
+    .uuid = grub_ufs_uuid,
     .mtime = grub_ufs_mtime,
     .next = 0
   };





reply via email to

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