From 9e35e005002ba475657c3561df1f0407b1a79a74 Mon Sep 17 00:00:00 2001 From: Aurel Feer Date: Thu, 28 Apr 2022 15:06:14 +0200 Subject: [PATCH] forge devframe instead of frame for bootinfo --- lib/spawn/rpc_server.c | 10 ++++++---- usr/init/main.c | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/spawn/rpc_server.c b/lib/spawn/rpc_server.c index 904cd9a..fce00b1 100644 --- a/lib/spawn/rpc_server.c +++ b/lib/spawn/rpc_server.c @@ -383,11 +383,13 @@ static errval_t serialize_bootinfo(struct bootinfo * bootinfo, struct bootinfo_s struct capability elf_frame_id; err = cap_direct_identify(elf_frame_cap, &elf_frame_id); - if (err_is_fail(err)) return err; - assert(elf_frame_id.type == ObjType_Frame); + if (err_is_fail(err)) return err_push(err, LIB_ERR_CAP_IDENTIFY); - serialized_bootinfo->regions[i].mrmod_frame_base = elf_frame_id.u.frame.base; - serialized_bootinfo->regions[i].mrmod_frame_bytes = elf_frame_id.u.frame.bytes; + // debug_printf("[serialize_bootinfo] elf_frame_id.type = %d\n", elf_frame_id.type); + assert(elf_frame_id.type == ObjType_DevFrame); + + serialized_bootinfo->regions[i].mrmod_frame_base = elf_frame_id.u.devframe.base; + serialized_bootinfo->regions[i].mrmod_frame_bytes = elf_frame_id.u.devframe.bytes; } return SYS_ERR_OK; diff --git a/usr/init/main.c b/usr/init/main.c index 85ceb7a..8651e46 100644 --- a/usr/init/main.c +++ b/usr/init/main.c @@ -201,8 +201,7 @@ static errval_t deserialize_bootinfo(struct bootinfo_serialized * serialized, st .cnode = cnode_module, .slot = serialized->regions[i].mrmod_slot, }; - - err = frame_forge(forge_destination, serialized->regions[i].mrmod_frame_base, serialized->regions[i].mrmod_frame_bytes, my_core_id); + err = devframe_forge(forge_destination, serialized->regions[i].mrmod_frame_base, serialized->regions[i].mrmod_frame_bytes, my_core_id); if (err_is_fail(err)) return err; } @@ -250,6 +249,7 @@ app_main(int argc, char *argv[]) { if (err_is_fail(err)) return err; err = deserialize_bootinfo(bi_ser, &bi); if (err_is_fail(err)) return err; + free(bi_ser); debug_printf("[app_main]: received bootinfo with %d regions\n", bi->regions_length);