diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-09-10 08:53:57 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-09-10 08:53:57 +0200 |
| commit | 5449acc193f96d2ffaeb224aad5cea16bf753cdb (patch) | |
| tree | 2a939bc19d7f7f365800e2d275d3cc85a7bcbe54 /kernel/kapi | |
| parent | da6cf94fc47f38cab580e9df1c6e6a46894aded5 (diff) | |
| download | kernel-5449acc193f96d2ffaeb224aad5cea16bf753cdb.tar.xz kernel-5449acc193f96d2ffaeb224aad5cea16bf753cdb.zip | |
x86_64: replace raw pointers with observer_ptr
Diffstat (limited to 'kernel/kapi')
| -rw-r--r-- | kernel/kapi/memory.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/kernel/kapi/memory.cpp b/kernel/kapi/memory.cpp index 1c6fa2c8..7a9f7249 100644 --- a/kernel/kapi/memory.cpp +++ b/kernel/kapi/memory.cpp @@ -5,6 +5,7 @@ #include <kapi/system.hpp> +#include <kstd/memory.hpp> #include <kstd/print.hpp> #include <kstd/units.hpp> @@ -45,7 +46,7 @@ namespace kapi::memory { bad_page_mapper static instance; - auto map(page, frame, flags) -> std::byte * override + auto map(page, frame, flags) -> kstd::observer_ptr<std::byte> override { system::panic("[OS:MEM] Tried to map a page without an active mapper."); } @@ -103,7 +104,7 @@ namespace kapi::memory return get_frame_allocator().allocate_many(count); } - auto map(page page, frame frame, page_mapper::flags flags) -> std::byte * + auto map(page page, frame frame, page_mapper::flags flags) -> kstd::observer_ptr<std::byte> { return active_page_mapper->map(page, frame, flags); } @@ -135,7 +136,7 @@ namespace kapi::memory auto mapped = active_page_mapper->map(page, frame, flags); if (!bitmap_ptr) { - bitmap_ptr = reinterpret_cast<std::uint64_t *>(mapped); + bitmap_ptr = reinterpret_cast<std::uint64_t *>(mapped.get()); } }); @@ -160,7 +161,8 @@ namespace kapi::memory return {region, page_count}; } - auto map_mmio_region(mmio_region region, physical_address hw_base, page_mapper::flags flags) -> std::byte * + auto map_mmio_region(mmio_region region, physical_address hw_base, page_mapper::flags flags) + -> kstd::observer_ptr<std::byte> { auto start_page = page::containing(region.first); auto start_frame = frame::containing(hw_base); |
