[haiku-commits] Re: BRANCH jessicah-github.efi.merge [5a70dd7f18df] src/tests/kits/interface/flatten_picture src/system/boot/loader src/system/boot/platform/efi data/catalogs/add-ons/network_settings data/catalogs/apps

  • From: Ingo Weinhold <ingo_weinhold@xxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 24 Sep 2015 10:52:26 +0200

On 09/22/2015 02:32 AM, jessicah-github.efi.merge wrote:

diff --git a/headers/os/drivers/disk_device_manager.h
b/headers/os/drivers/disk_device_manager.h
index 17c1b78..34b1fcc 100644
--- a/headers/os/drivers/disk_device_manager.h
+++ b/headers/os/drivers/disk_device_manager.h
@@ -39,6 +39,7 @@ typedef struct partition_data {
char *content_parameters;
void *cookie;
void *content_cookie;
+ uint8 uuid[16];
} partition_data;

Not sure about this. Since UUIDs aren't universally used by partitioning systems, it doesn't feel quite right to add such a field here. The parameters field is intended for partitioning system specific properties, so it could be added there. It would make the UUID a little less readily accessible in vfs_boot.cpp, though (one would have to parse the parameters).

Alternatively, instead of passing a UUID from the boot loader it could be more generally a URI. Then either such a field is added to partition_data and compared directly or a partition system hook is added returning the confidence level that a given ID identifies the partition (or both).

At any rate, when adding a field to partition data, KPartition should be adjusted. At least the constructor to initialize the field, but probably better also UninitializeContents(), Dump(), and WriteUserData() (and with it the userland side).

CU, Ingo


Other related posts: