/[grub]/grub2/kern/partition.c
ViewVC logotype

Diff of /grub2/kern/partition.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by okuji, Tue Jul 19 22:30:36 2005 UTC revision 1.4 by okuji, Fri Aug 12 19:53:32 2005 UTC
# Line 42  grub_partition_map_unregister (grub_part Line 42  grub_partition_map_unregister (grub_part
42        }        }
43  }  }
44    
45  void  int
46  grub_partition_map_iterate (int (*hook) (const grub_partition_map_t partmap))  grub_partition_map_iterate (int (*hook) (const grub_partition_map_t partmap))
47  {  {
48    grub_partition_map_t p;    grub_partition_map_t p;
49    
50    for (p = grub_partition_map_list; p; p = p->next)    for (p = grub_partition_map_list; p; p = p->next)
51      if (hook (p))      if (hook (p))
52        break;        return 1;
53    
54      return 0;
55  }  }
56    
57  grub_partition_t  grub_partition_t
# Line 85  grub_err_t Line 87  grub_err_t
87  grub_partition_iterate (struct grub_disk *disk,  grub_partition_iterate (struct grub_disk *disk,
88                          int (*hook) (const grub_partition_t partition))                          int (*hook) (const grub_partition_t partition))
89  {  {
90    auto int part_map_iterate (const grub_partition_map_t partmap);    grub_partition_map_t partmap = 0;
91    
92      auto int part_map_iterate (const grub_partition_map_t p);
93      auto int part_map_iterate_hook (const grub_partition_t partition);
94    
95    int part_map_iterate (const grub_partition_map_t partmap)    int part_map_iterate_hook (const grub_partition_t partition __attribute__ ((unused)))
96        {
97          return 1;
98        }
99      
100      int part_map_iterate (const grub_partition_map_t p)
101      {      {
102        grub_err_t err = partmap->iterate (disk, hook);        grub_err_t err = p->iterate (disk, part_map_iterate_hook);
103    
104        if (err == GRUB_ERR_BAD_PART_TABLE)        if (err != GRUB_ERR_NONE)
105          {          {
106            /* Continue to next partition map type.  */            /* Continue to next partition map type.  */
107            grub_errno = GRUB_ERR_NONE;            grub_errno = GRUB_ERR_NONE;
108            return 0;            return 0;
109          }          }
110    
111          partmap = p;
112        return 1;        return 1;
113      }      }
114    
115    grub_partition_map_iterate (part_map_iterate);    grub_partition_map_iterate (part_map_iterate);
116      if (partmap)
117        partmap->iterate (disk, hook);
118      
119    return grub_errno;    return grub_errno;
120  }  }
121    

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26