From 165651a553aa4039a7d33cdd9fedcd29478de95b Mon Sep 17 00:00:00 2001 From: Marcel Moolenaar Date: Sun, 8 Feb 2009 20:15:08 +0000 Subject: [PATCH] o Add the "PART::scheme" attribute that returns the name of the underlying partitioning scheme. o Put the start and end of the partition in the XML configuration. The start and end are the LBAs of the first and last sector (resp.) of the partition. They are currently identical to the offset and size attributes, which describe the partition as an offset and size in bytes, but may not in the future. The start and end will be used for the logical partition boundaries and may include metadata. The offset and size will always represent the useful storage space within the partition. Typically these two notions are the same, but for logical partitions in an extended partition, the EBR is more naturally treated as being part of the partition. --- sys/geom/part/g_part.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/geom/part/g_part.c b/sys/geom/part/g_part.c index 0ad3c617bc5f..ac8b3d7b1bf2 100644 --- a/sys/geom/part/g_part.c +++ b/sys/geom/part/g_part.c @@ -1579,6 +1579,10 @@ g_part_dumpconf(struct sbuf *sb, const char *indent, struct g_geom *gp, entry = pp->private; if (entry == NULL) return; + sbuf_printf(sb, "%s%ju\n", indent, + (uintmax_t)entry->gpe_start); + sbuf_printf(sb, "%s%ju\n", indent, + (uintmax_t)entry->gpe_end); sbuf_printf(sb, "%s%u\n", indent, entry->gpe_index); sbuf_printf(sb, "%s%s\n", indent, @@ -1687,6 +1691,9 @@ g_part_start(struct bio *bp) if (g_handleattr_int(bp, "PART::offset", table->gpt_offset + entry->gpe_start)) return; + if (g_handleattr_str(bp, "PART::scheme", + table->gpt_scheme->name)) + return; if (!strcmp("GEOM::kerneldump", bp->bio_attribute)) { /* * Check that the partition is suitable for kernel