aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src
AgeCommit message (Collapse)AuthorFilesLines
2025-12-03x86_64/memory: only deallocate allocated framesFelix Morgner1-12/+27
2025-12-03x86_64/memory: add missing noexcept specifiersFelix Morgner1-2/+2
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 Morgner1-1/+4
2025-12-02x86_64: basic code cleanupFelix Morgner1-1/+1
2025-12-02kapi: make PLATFORM_*_SIZE constexprFelix Morgner2-3/+1
2025-12-02x86_64/memory: extract PML4 injectionFelix Morgner4-82/+98
2025-12-02x86_64/memory: extend scoped_mappingFelix Morgner2-1/+48
2025-12-01x86_64/memory: prepare scoped_mapping extractionFelix Morgner2-0/+85
2025-12-01x86_64/memory: implement PML4 injectionFelix Morgner1-3/+71
2025-11-30x86_64/memory: fix entry checksFelix Morgner1-2/+2
2025-11-28x86_64: port basic page and page table abstractionsFelix Morgner3-4/+82
2025-11-24x86_64/vga: rely less on magic stateFelix Morgner3-23/+50
2025-11-24x86_64/kapi: clean up one linter warningFelix Morgner1-3/+2
2025-11-24x86-64/kapi: reimplement ia32_efer supportFelix Morgner1-2/+1
2025-11-21x86_64: fix enabling of write protectionFelix Morgner1-1/+1
2025-11-21x86_64: rework control register accessFelix Morgner3-67/+4
2025-11-18x86_64/memory: perform slight cleanupFelix Morgner1-4/+1
2025-10-31build: enable lintingFelix Morgner3-8/+8
2025-10-29chore: configure clang-tidyFelix Morgner4-9/+17
2025-10-29chore: reformat source codeFelix Morgner3-5/+7
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 Morgner2-3/+15
2025-10-29kapi: move halt to cpu namespaceFelix Morgner1-3/+3
2025-10-29kapi: move frame and address to KAPIFelix Morgner6-22/+20
2025-10-27x86_64: move kapi implementation to srcFelix Morgner3-0/+94
2025-07-24kapi: rework text device interfaceFelix Morgner1-8/+15
2025-07-24x86_64: move files out of the wayFelix Morgner46-2270/+0
2025-07-24x86_64: clean up hw detailsFelix Morgner3-31/+30
2025-07-24x86_64: clean up vga hierarchyFelix Morgner1-3/+3
2025-07-24build: clean up configurationFelix Morgner3-114/+0
2025-07-24build: factor out kernel APIFelix Morgner3-27/+35
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 Morgner4-24/+26
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 Morgner1-36/+66
2025-07-23x86_64: rename _*_linear to _*_physicalFelix Morgner1-1/+1
2025-07-23x86_64: extract linker script interface headerFelix Morgner1-6/+19
2025-07-23libs: move asm_ptr to kstdFelix Morgner1-5/+4
2025-07-22x86_64: split bootstrap code along mode linesFelix Morgner2-19/+25
2025-07-22x86_64: extract constants from bootstrap codeFelix Morgner2-17/+7
2025-07-22x86_64: clean up bootstrap codeFelix Morgner1-247/+265
2025-07-18x86_64: set GDT entries as accessed.Felix Morgner1-2/+3
2025-07-18x86_64: add data segment to boot GDTFelix Morgner1-6/+9
2025-07-18x86_64: don't lose multi boot information pointerFelix Morgner1-2/+2
Since the transition to a PIE, more registers are required to perform the relative lookups of data references. As part of that change, a subtle mistake was introduced in _start, overwriting the multiboot information pointer that gets handed to kernel by the boot loader in %ebx.