diff --git a/repos/base-tukija/src/core/include/habitat_session_component.h b/repos/base-tukija/src/core/include/habitat_session_component.h index d52ec3262a..5cd080ce77 100644 --- a/repos/base-tukija/src/core/include/habitat_session_component.h +++ b/repos/base-tukija/src/core/include/habitat_session_component.h @@ -10,7 +10,6 @@ #include #include -#include #include @@ -22,13 +21,13 @@ class Core::Habitat_session_component : public Genode::Rpc_objectset(kernel_cpu); } } @@ -37,7 +36,7 @@ class Core::Habitat_session_component : public Genode::Rpc_object pd_cap, Genode::Affinity &affinity, Genode::uint16_t prio) override { + void create_cell(Genode::Capability pd_cap, [[maybe_unused]] Genode::Affinity &affinity, Genode::uint16_t prio) override { Genode::Pd_session_client pd(pd_cap); @@ -48,9 +47,9 @@ class Core::Habitat_session_component : public Genode::Rpc_object(ptr); }, - [&](Genode::Range_allocator::Alloc_error) {}); + platform().region_alloc().alloc_aligned(4 * Tukija::PAGE_SIZE_BYTE, Tukija::PAGE_SIZE_LOG2).with_result( + [&](void *ptr) { cip_virt = reinterpret_cast(ptr); }, + [&](Genode::Range_allocator::Alloc_error) {}); if (Tukija::create_cell(cell_pd_sel, static_cast(prio), cip_phys, cip_virt)) { @@ -58,11 +57,11 @@ class Core::Habitat_session_component : public Genode::Rpc_object(cip_phys), " to ", cip_virt); - unsigned long *cip = reinterpret_cast(cip_virt); - Genode::log("CIP ", *cip); - *cip = 0xff; + //*cip = 0xff; + Tukija::Cip *cip = reinterpret_cast(cip_virt); - _calculate_mask_for_location(coreset, affinity.location()); + _calculate_mask_for_location(&cip->cores_reserved, affinity.location()); + Genode::log("Cores reserved: ", cip->cores_reserved); }