diff options
| author | salmonik <salmonik@tuta.io> | 2026-07-31 15:51:28 +0200 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-07-31 15:51:28 +0200 |
| commit | 5e03409586efc37931f07b40ee0c71a9a9e109f7 (patch) | |
| tree | a1e6e014b94fb410ffce49a7611bf94295165729 /rsnix/src/lib.rs | |
| parent | rsboot: loader file buffers use LoaderData (2) instead of RuntimeData (6) (diff) | |
| download | rs-dos-5e03409586efc37931f07b40ee0c71a9a9e109f7.tar.gz rs-dos-5e03409586efc37931f07b40ee0c71a9a9e109f7.zip | |
rsnix: memory management — free-list heap, bitmap pages, paging adoption
- uefi.rs: full EfiMemoryType constants (0-14) + memory_type_name(); fix
MEMORY_TYPE_LOADER_DATA from 6 to 2 per the UEFI spec
- memory.rs: replace the bump allocator with a first-fit free-list heap
(splitting, coalescing, 8-byte back-pointer for alignment-safe free);
add a bitmap physical page allocator (heap region reserved, page-0
guard, aligned runs); grow the heap from the page allocator on demand
- paging.rs: identity page-table helpers — adopt_tables() rebuilds the
firmware map into our own tables (OVMF maps its tables read-only, so
the firmware tree can't be modified in place) and switches CR3;
map_page/unmap_page/is_mapped with 2 MB/1 GB large-page splitting
- main.rs: boot self-tests for heap, pages, and paging
Diffstat (limited to 'rsnix/src/lib.rs')
| -rw-r--r-- | rsnix/src/lib.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/rsnix/src/lib.rs b/rsnix/src/lib.rs index 0bc0cb9..d2dacf0 100644 --- a/rsnix/src/lib.rs +++ b/rsnix/src/lib.rs | |||
| @@ -6,6 +6,7 @@ pub mod font; | |||
| 6 | pub mod gop; | 6 | pub mod gop; |
| 7 | pub mod interrupts; | 7 | pub mod interrupts; |
| 8 | pub mod memory; | 8 | pub mod memory; |
| 9 | pub mod paging; | ||
| 9 | pub mod ps2; | 10 | pub mod ps2; |
| 10 | pub mod serial; | 11 | pub mod serial; |
| 11 | pub mod uefi; | 12 | pub mod uefi; |
