[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: Jessica Hamilton <jessica.l.hamilton@xxxxxxxxx>
  • To: "haiku-commits@xxxxxxxxxxxxx" <haiku-commits@xxxxxxxxxxxxx>
  • Date: Thu, 24 Sep 2015 21:34:09 +1200

On 24 September 2015 at 21:21, Axel Dörfler <axeld@xxxxxxxxxxxxxxxx> wrote:

Am 24/09/2015 um 11:09 schrieb Jessica Hamilton:

The loader and boot VFS code appear to be extremely limited
in how to approach things, I'm continuing to discover :(


Care to elaborate? The loader is meant to be as concise as possible to make
the system boot, it doesn't do fancy :-)
But it should be very easy to enhance it for whatever more you need.

Or rather, perhaps my lack of understanding :p

I found in the platform_get_boot_partition hook that the list of
boot::Partition objects, which subclass the partition_data struct,
were provided without the partition_data actually filled properly by
the partitioning system, so the uuid field at that stage was empty,
and I couldn't identify the partition.

I've been trying to overhaul it so platform_add_boot_device doesn't
add the partitions, just the partitioning system device (I still need
to walk the partitions to find the right partitioning system device),
and then trying to identify the boot::Partition from the list of
objects it gives me with its neutered partition_data fields...

But all this refactored code has just ended up giving my Invalid
Opcode exceptions in Node::Open, which I can't fathom. Perhaps the
pointers returned by NodeIterator can't be used? I really don't know
what's wrong.

See https://gist.github.com/jessicah/ee554151a4dc71323963 for more
details. Calling add_block_devices with DEVICE_NODES causes Invalid
Opcode, but with PARTITION_NODES, no CPU exceptions. I can't see
anything obviously wrong between the two class definitions, so I'm
understandably getting rather frustrated ;-)

Other related posts: