|
766804b3a0
|
Use get_blocks_from_size instead of +1
|
2022-12-04 15:52:56 +01:00 |
|
|
0d10c98477
|
SImplify init_physical_frame_allocator() even more
|
2022-12-04 15:50:21 +01:00 |
|
|
5f6c48bd12
|
Use a friendlier way of iterating over the memory map
|
2022-12-04 15:45:13 +01:00 |
|
|
5aa2d1fa18
|
Add a Bitmap class to provide common functionality and use that in the MemoryManager
|
2022-12-04 15:14:07 +01:00 |
|
|
c7ab6bc2d3
|
Reorganize the luna/ directory so that headers aren't in the top level include path
|
2022-12-04 12:42:43 +01:00 |
|
|
985d45ddfb
|
Switch to logging functions everywhere
|
2022-11-30 17:16:36 +01:00 |
|
|
d2856d8812
|
Provide meaningful error numbers
|
2022-11-30 17:13:59 +01:00 |
|
|
fe47e0d5cb
|
Clean init() up
|
2022-11-30 16:30:42 +01:00 |
|
|
cb88630d86
|
Bugfix: Make alloc_at return the start of the virtual memory range instead of the end
|
2022-11-20 15:11:53 +01:00 |
|
|
af267772f0
|
Rename MemoryManager::map to map_frames_at
To make it clearer that this API is only intented for mapping contiguous frames of physical memory (for MMIO perhaps?)
|
2022-11-19 22:32:48 +01:00 |
|
|
1b41a3e9cf
|
Introduce a few helpers to allocate/map/unmap several pages, which wrap around the MMU functionality
|
2022-11-19 22:28:45 +01:00 |
|
|
c886669d56
|
Break down operations to make protect_kernel_sections() more readable
|
2022-11-19 22:27:59 +01:00 |
|
|
d96cb73995
|
Rename physical "pages" to "frames"
AFAIK, this is the proper naming scheme. "Pages" are virtual, and "frames" physical.
|
2022-11-19 22:27:08 +01:00 |
|
|
847f2b4f4c
|
Replace more usage of stdint.h types with Luna's Types.h
|
2022-11-19 22:25:03 +01:00 |
|
|
047f445651
|
Kernel: Add helpers to validate memory addresses
|
2022-11-19 18:38:47 +01:00 |
|
|
70c6b78e35
|
Organize source tree
|
2022-11-19 17:59:49 +01:00 |
|
|
cf758fdfdc
|
Initial commit :)
|
2022-11-13 10:09:09 +01:00 |
|
|
58fb422161
|
Kernel: Return a Result in MemoryManager and strdup_from_user
|
2022-11-12 11:56:40 +01:00 |
|
|
662afad426
|
Kernel: Add a Result class
|
2022-11-12 11:30:28 +01:00 |
|
|
1ea216dfd1
|
Kernel: Rename assert.h to ensure.h
The macro is named "ensure", the header file should reflect that.
|
2022-11-09 15:28:35 +01:00 |
|
|
98da473fdc
|
Run clang-format
|
2022-11-08 19:07:43 +01:00 |
|
|
8f2308c80d
|
Kernel: Implement mmap-able device files (regular files are not mmap-able yet)
|
2022-11-02 20:24:07 +01:00 |
|
|
c604c074a1
|
Kernel: Rename ASSERT() to ensure()
Doesn't get stripped on release builds, so it shouldn't be named assert.
|
2022-11-02 19:38:15 +01:00 |
|
|
22740e69bf
|
Kernel: Add support for the NX bit
Not support, actually. We now REQUIRE it.
|
2022-11-02 18:34:57 +01:00 |
|
|
712f4f5e51
|
KernelHeap: Add more debug logging
|
2022-10-20 18:49:33 +02:00 |
|
|
b035795eb3
|
Kernel: Move errno.h and (k)assert.h out of the main include directory
This is mostly so IDEs don't pick them up instead of the userspace headers :)
|
2022-10-19 17:41:23 +02:00 |
|
|
62d631f1b4
|
Kernel: Rename assert.h to kassert.h so IDEs pickup the kernel header instead of the userspace one
|
2022-10-15 12:56:48 +02:00 |
|
|
ee712432bd
|
Some more multiple address space stuff
This page-faults. This is because the memory where the ELF should be is all zeroes, which the CPU tries to interpret.
|
2022-10-13 21:14:39 +02:00 |
|
|
83e6b8cd21
|
VMM: Fix naming convention
|
2022-10-13 18:42:53 +02:00 |
|
|
69a9f7f06a
|
Kernel: Move VMM from a class to a namespace
Also, rename the ugly Paging::VirtualMemoryManager name to just 'VMM'. Which is now used instead of kernelVMM.
|
2022-10-12 20:02:25 +02:00 |
|
|
eaea4603c6
|
MemoryManager: Fix logging when built with debug logging
That is to say, -DMM_DEBUG
|
2022-10-12 14:29:30 +02:00 |
|
|
d5f59b666a
|
Kernel/Memory: Use %p in printf
|
2022-10-08 18:21:02 +02:00 |
|
|
abcf1b6118
|
Define PAGE_SIZE as 4096 and use it everywhere instead of using 4096 as a magic number
|
2022-10-08 14:52:28 +02:00 |
|
|
8f310dd307
|
PMM: Map the page bitmap to kernel heap once the PMM and VMM are both initialized
|
2022-10-04 18:36:09 +02:00 |
|
|
e769cb45a7
|
MemoryManager: add get_page_at and get_pages_at functions to map any physical memory at a fixed virtual address (inverse of get_mapping and get_mappings)
|
2022-10-01 12:12:50 +02:00 |
|
|
a078a11dde
|
Move PMM and VMM initialization into MemoryManager::init
|
2022-09-25 17:38:17 +02:00 |
|
|
704a23d0ad
|
Sanity checks
|
2022-09-24 23:09:39 +02:00 |
|
|
2511b7d7a1
|
Add optional (compile-opt-in) debug logging to the MemoryManager (which helped catch the bug that got fixed in the previous commit)
|
2022-09-24 22:38:07 +02:00 |
|
|
3891d0c52e
|
Rename KernelMemoryManager to MemoryManager
Kind of a more catchy name, isn't it?
|
2022-09-24 21:45:13 +02:00 |
|