diff --git a/src/system/boot/platform/next_m68k/devices.cpp b/src/system/boot/platform/next_m68k/devices.cpp index bf94817a4a..f61211199f 100644 --- a/src/system/boot/platform/next_m68k/devices.cpp +++ b/src/system/boot/platform/next_m68k/devices.cpp @@ -37,8 +37,8 @@ platform_add_boot_device(struct stage2_args *args, NodeList *devicesList) status_t -platform_get_boot_partition(struct stage2_args *args, Node *bootDevice, - NodeList *list, boot::Partition **_partition) +platform_get_boot_partitions(struct stage2_args *args, Node *device, + NodeList *list, NodeList *partitionList) { return B_ENTRY_NOT_FOUND; } diff --git a/src/system/boot/platform/riscv/devices.cpp b/src/system/boot/platform/riscv/devices.cpp index 56add58e2e..d04a0d2d9b 100644 --- a/src/system/boot/platform/riscv/devices.cpp +++ b/src/system/boot/platform/riscv/devices.cpp @@ -182,16 +182,17 @@ platform_add_block_devices(struct stage2_args* args, NodeList* devicesList) status_t -platform_get_boot_partition( - struct stage2_args* args, Node* bootDevice, - NodeList* partitions, boot::Partition** _partition -) +platform_get_boot_partitions(struct stage2_args* args, Node* bootDevice, + NodeList *list, NodeList *partitionList) { - // return B_ENTRY_NOT_FOUND; - - *_partition = (boot::Partition*)partitions->GetIterator().Next(); - dprintf("*_partition: %p\n", *_partition); - return *_partition != NULL ? B_OK : B_ENTRY_NOT_FOUND; + NodeIterator iterator = list->GetIterator(); + boot::Partition *partition = NULL; + while ((partition = (boot::Partition *)iterator.Next()) != NULL) { + // ToDo: just take the first partition for now + partitionList->Insert(partition); + return B_OK; + } + return B_ENTRY_NOT_FOUND; } diff --git a/src/tests/system/boot/loader/platform_devices.cpp b/src/tests/system/boot/loader/platform_devices.cpp index 024cf5fc79..c365bd2df5 100644 --- a/src/tests/system/boot/loader/platform_devices.cpp +++ b/src/tests/system/boot/loader/platform_devices.cpp @@ -154,17 +154,16 @@ platform_add_boot_device(struct stage2_args *args, NodeList *devicesList) status_t -platform_get_boot_partition(struct stage2_args *args, Node *device, - NodeList *list, boot::Partition **_partition) +platform_get_boot_partitions(struct stage2_args* args, Node* bootDevice, + NodeList *list, NodeList *partitionList) { NodeIterator iterator = list->GetIterator(); boot::Partition *partition = NULL; while ((partition = (boot::Partition *)iterator.Next()) != NULL) { - // just take the first partition - *_partition = partition; + // ToDo: just take the first partition for now + partitionList->Insert(partition); return B_OK; } - return B_ENTRY_NOT_FOUND; }