]> git.proxmox.com Git - grub2.git/commitdiff
Remove data member in partition structure
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 7 Feb 2010 00:48:38 +0000 (01:48 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 7 Feb 2010 00:48:38 +0000 (01:48 +0100)
include/grub/partition.h
kern/disk.c
partmap/acorn.c
partmap/amiga.c
partmap/apple.c
partmap/gpt.c
partmap/msdos.c
util/i386/pc/grub-setup.c

index bd97144c934a37b77d95f7bf1642f52921a137f2..9feb9459da9ce93a3216076696953f506b4ef8ff 100644 (file)
@@ -60,9 +60,6 @@ struct grub_partition
   /* The index of this partition in the partition table.  */
   int index;
 
-  /* Partition map type specific data.  */
-  void *data;
-
   /* Parent partition map.  */
   struct grub_partition *parent;
 
index 514f28c159b18dbd80fa74ece42cb1266e3efdce..ccd5f200f9bb9a60858b9331a0ce2143860666e9 100644 (file)
@@ -342,7 +342,6 @@ grub_disk_close (grub_disk_t disk)
   while (disk->partition)
     {
       part = disk->partition->parent;
-      grub_free (disk->partition->data);
       grub_free (disk->partition);
       disk->partition = part;
     }
index 0c3abf11d27c3e9a88e4c5734a6a80f791fa5ba8..f3b36106e9f2ba4506cb2079cf4c9f21ab815b76 100644 (file)
@@ -106,7 +106,6 @@ acorn_partition_map_iterate (grub_disk_t disk,
     return err;
 
   part.partmap = &grub_acorn_partition_map;
-  part.data = 0;
 
   for (i = 0; i != LINUX_MAP_ENTRIES; ++i)
     {
index 5b6a4598f5359485512c5aca19aaad20e34d9a3b..b5fba0dbc9a57c2ef8fda952898875d4965491a8 100644 (file)
@@ -99,8 +99,6 @@ amiga_partition_map_iterate (grub_disk_t disk,
     return grub_error (GRUB_ERR_BAD_PART_TABLE,
                       "Amiga partition map not found");
 
-  part.data = 0;
-
   /* The end of the partition list is marked using "-1".  */
   while (next != -1)
     {
index 35bdcc8d7fc8efef68e78a57739316e58d834db2..b9d3e917496b39b7b393b4a04b243f4663795d71 100644 (file)
@@ -122,17 +122,16 @@ apple_partition_map_iterate (grub_disk_t disk,
       goto fail;
     }
 
-  part.data = 0;
   pos = grub_be_to_cpu16 (aheader.blocksize);
 
   do
     {
-       part.offset = pos / GRUB_DISK_SECTOR_SIZE;
-       part.index = pos % GRUB_DISK_SECTOR_SIZE;
+      part.offset = pos / GRUB_DISK_SECTOR_SIZE;
+      part.index = pos % GRUB_DISK_SECTOR_SIZE;
 
-       if (grub_disk_read (disk, part.offset, part.index,
-                          sizeof (struct grub_apple_part),  &apart))
-        return grub_errno;
+      if (grub_disk_read (disk, part.offset, part.index,
+                         sizeof (struct grub_apple_part),  &apart))
+       return grub_errno;
 
       if (grub_be_to_cpu16 (apart.magic) != GRUB_APPLE_PART_MAGIC)
        {
index 2c942e164b4aa7faa6efdd7826f386b1b7f9d7db..8b799d4d5fdd5406ca97bc00e3168afc164ff411 100644 (file)
@@ -71,15 +71,11 @@ gpt_partition_map_iterate (grub_disk_t disk,
   grub_dprintf ("gpt", "Read a valid GPT header\n");
 
   entries = grub_le_to_cpu64 (gpt.partitions);
-  part.data = grub_malloc (sizeof (entry));
   for (i = 0; i < grub_le_to_cpu32 (gpt.maxpart); i++)
     {
       if (grub_disk_read (disk, entries, last_offset,
                          sizeof (entry), &entry))
-       {
-         grub_free (part.data);
-         return grub_errno;
-       }
+       return grub_errno;
 
       if (grub_memcmp (&grub_gpt_partition_type_empty, &entry.type,
                       sizeof (grub_gpt_partition_type_empty)))
@@ -92,7 +88,6 @@ gpt_partition_map_iterate (grub_disk_t disk,
          part.number = i;
          part.index = last_offset;
          part.partmap = &grub_gpt_partition_map;
-         grub_memcpy (part.data, &entry, sizeof (entry));
 
          grub_dprintf ("gpt", "GPT entry %d: start=%lld, length=%lld\n", i,
                        (unsigned long long) part.start,
@@ -110,8 +105,6 @@ gpt_partition_map_iterate (grub_disk_t disk,
        }
     }
 
-  grub_free (part.data);
-
   return GRUB_ERR_NONE;
 }
 
index accf3fdbadbed8106a73f48c89389e20bc93328f..bafd86eb6ae74cf1af16a2002c99314b5d883e20 100644 (file)
@@ -40,7 +40,6 @@ pc_partition_map_iterate (grub_disk_t disk,
 
   p.offset = 0;
   ext_offset = 0;
-  p.data = 0;
   p.number = -1;
   p.partmap = &grub_msdos_partition_map;
 
index 27c9cd4343534478c618001835854cb1699ca8a3..af0217d103fd2a123192c11787ad0671a4d7f26e 100644 (file)
@@ -130,17 +130,21 @@ setup (const char *dir,
   int NESTED_FUNC_ATTR find_usable_region_gpt (grub_disk_t disk __attribute__ ((unused)),
                                               const grub_partition_t p)
     {
-      struct grub_gpt_partentry *gptdata = p->data;
+      struct grub_gpt_partentry gptdata;
+
+      disk->partition = p->parent;
+      if (grub_disk_read (disk, p->offset, p->index,
+                         sizeof (gptdata), &gptdata))
+       return 0;
 
       /* If there's an embed region, it is in a dedicated partition.  */
-      if (! memcmp (&gptdata->type, &grub_gpt_partition_type_bios_boot, 16))
+      if (! memcmp (&gptdata.type, &grub_gpt_partition_type_bios_boot, 16))
        {
          embed_region.start = p->start;
          embed_region.end = p->start + p->len;
 
          return 1;
        }
-
       return 0;
     }