All of lore.kernel.org
 help / color / mirror / Atom feed
* Design: partitions in partitions
@ 2009-02-14 18:00 phcoder
  0 siblings, 0 replies; only message in thread
From: phcoder @ 2009-02-14 18:00 UTC (permalink / raw)
  To: The development of GRUB 2

Hello I would like to implement partition in partitions support (it's on 
the TODO list) and necessary as a pre-requisite to access solaris' zfs 
partitions. I would also like to integrate current bsd partition support 
to it. I propose the following design:
Unified naming scheme: purely numerical. It means that
(hd0,1,a) becomes (hd0,1,1)

get_name is removed from grub_partition_map

Unlimited depth support. It means that partitions like
fdisk in sun in apple in gpt will be detected (silly but is 
theoretically possible)
Partitions describing whole parent partition or laying outside of parent 
partition will be filtered
An arbitrary limit may be put to avoid endless loop

Add pointer to struct grub_disk * in struct grub_partition.
Then the prototypes in grub_partition_map are:
   /* Call HOOK with each partition, until HOOK returns non-zero.  */
   grub_err_t (*iterate) (grub_partition_t parent,
                          int (*hook) (struct grub_disk *disk,
                                       const grub_partition_t partition));

   /* Return the partition NUM on the partition PARENT.  */
   grub_partition_t (*probe) (grub_partition_t parent,
                              int num);

For the first level a fake grub_partition_t describing the whole disk 
will be created

What do you think about such a design?
Regards
Vladimir 'phcoder' Serbinenko



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2009-02-14 18:01 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-14 18:00 Design: partitions in partitions phcoder

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.