aboutsummaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)AuthorFilesLines
2025-12-03x86_64/memory: only deallocate allocated framesFelix Morgner2-12/+28
2025-12-03x86_64/memory: add missing noexcept specifiersFelix Morgner1-2/+2
2025-12-03x86_64/memory: improve scoped_mapping docsFelix Morgner1-5/+30
2025-12-03x86_64/memory: fix return in scoped_mapping::mapFelix Morgner1-1/+1
Previously, scoped_mapping::map returned the start address of the frame. Unfortunately, the initial mapping performed in the bootstrap code maps physical memory starting at 0x0000'0000'0000'0000, which means no fault was triggered. The map function now correctly return the start address of the scoped_mapping's page, which must alway work by definition.
2025-12-03x86_64/boot: move stack to higher halfFelix Morgner2-7/+13
2025-12-02x86_64/memory: fix temporary page unmappingFelix Morgner2-1/+35
2025-12-02x86_64/memory: introduce frame allocation bufferFelix Morgner3-2/+72
2025-12-02x86_64: basic code cleanupFelix Morgner3-4/+6
2025-12-02kapi: make PLATFORM_*_SIZE constexprFelix Morgner3-4/+7
2025-12-02x86_64/build: automatically collect headersFelix Morgner1-23/+3
2025-12-02x86_64/memory: extract PML4 injectionFelix Morgner6-84/+103
2025-12-02x86_64/memory: extend scoped_mappingFelix Morgner4-1/+71
2025-12-01x86_64/memory: prepare scoped_mapping extractionFelix Morgner4-0/+126
2025-12-01x86_64/memory: implement PML4 injectionFelix Morgner1-3/+71
2025-12-01x86_64/memory: prevent copying of page rootFelix Morgner1-0/+5
2025-11-30x86_64/memory: fix entry checksFelix Morgner1-2/+2
2025-11-28x86_64: port basic page and page table abstractionsFelix Morgner6-4/+252
2025-11-24x86_64/vga: rely less on magic stateFelix Morgner7-37/+104
2025-11-24x86_64/kapi: clean up one linter warningFelix Morgner1-3/+2
2025-11-24x86-64/kapi: reimplement ia32_efer supportFelix Morgner3-3/+115
2025-11-21x86_64: fix enabling of write protectionFelix Morgner1-1/+1
2025-11-21x86_64: rework control register accessFelix Morgner6-137/+201
2025-11-18x86_64/memory: perform slight cleanupFelix Morgner2-4/+13
2025-10-31build: enable lintingFelix Morgner3-8/+8
2025-10-30chore: fix header groupingFelix Morgner2-0/+2
2025-10-29chore: configure clang-tidyFelix Morgner7-24/+40
2025-10-29chore: reformat source codeFelix Morgner43-121/+247
2025-10-29x86_64/boot: add missing linker script symbolsFelix Morgner1-23/+43
2025-10-29x86_64/memory: fix region_allocator initializationFelix Morgner1-2/+2
2025-10-29x86_64/memory: fix region allocator initializationFelix Morgner1-1/+1
During construction, the memory map was not extracted from the supplied memory information. This lead to a situation in which the allocator would never allocate any frames since it believed that there was no memory in the system.
2025-10-29x86_64/memory: simplify region allocatorFelix Morgner1-5/+8
2025-10-29x86_64: extract early boot stepsFelix Morgner1-14/+19
2025-10-29x86_64: reduce using namespace useFelix Morgner1-10/+10
2025-10-29kapi: export frame_allocator interfaceFelix Morgner3-6/+19
2025-10-29kapi: move halt to cpu namespaceFelix Morgner2-4/+4
2025-10-29kapi: move frame and address to KAPIFelix Morgner16-194/+54
2025-10-27x86_64: move kapi implementation to srcFelix Morgner4-5/+5
2025-07-24kapi: rework text device interfaceFelix Morgner5-119/+80
2025-07-24x86_64: move files out of the wayFelix Morgner96-0/+0
2025-07-24x86_64: clean up hw detailsFelix Morgner7-62/+51
2025-07-24x86_64: clean up vga hierarchyFelix Morgner4-42/+38
2025-07-24build: rename targetsFelix Morgner1-6/+6
2025-07-24build: clean up configurationFelix Morgner5-184/+11
2025-07-24build: factor out kernel APIFelix Morgner8-81/+37
2025-07-24build: move linker script dependency to kernelFelix Morgner2-8/+2
2025-07-24x86_64: provide a clean slate on entry to long modeFelix Morgner2-2/+16
2025-07-24x86_64: implement robust C++ global initializationFelix Morgner6-57/+36
Implement a comprehensive mechanism to ensure correct C++ runtime initialization before the kernel main function is called. This replaces the previous, incomplete reliance on an `_init` function. The new design robustly handles both legacy `.ctors` and modern `.init_array` initialization schemes used by the GNU toolchain. A single C++ function, `invoke_global_constructors`, now iterates through both arrays of function pointers to ensure all types of global initializers are executed.
2025-07-24x86_64: implement high/low splitFelix Morgner3-51/+90
2025-07-23x86_64: rename _*_linear to _*_physicalFelix Morgner3-11/+11
2025-07-23x86_64: improve linker script interface docsFelix Morgner1-13/+38
- Add file-level Doxygen block to provide overall context. - Clarify the origin of the declared symbols. - Add information regarding their intended use.