aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/include
AgeCommit message (Collapse)AuthorFilesLines
2025-05-11make frame_allocator and active_page_table statically availableFabian Imhof3-4/+17
2025-05-11Adjust user heap allocator with expanding heap functionalityMatteo Gmür2-3/+29
2025-05-11rename page table entry functionFabian Imhof2-5/+5
2025-05-10continue experimenting with user heapFabian Imhof2-3/+11
2025-05-10experiment with globally available linker sections and page table entry flagsFabian Imhof11-55/+298
2025-05-09Switch uer heap to linked list allocatorMatteo Gmür1-21/+97
2025-05-09Move necessary code into user textMatteo Gmür3-4/+9
2025-05-08make user_allocator_instance be part of user_data sectionFabian Imhof1-1/+1
2025-05-08wip allocating heap memory in user modeFabian Imhof3-3/+54
2025-05-07wip custom heap allocation functions for user modeFabian Imhof2-8/+37
2025-05-06Remove user Mode Access to VGA / Heap and Kernel Methods.Matteo Gmür5-14/+22
2025-05-05Remove the addition of USER_ACCESSIBLE flag to every entry createdMatteo Gmür5-6/+26
2025-05-05Add comments to syscall componentsMatteo Gmür2-7/+48
2025-05-05Fix recursive include using extra fileMatteo Gmür4-14/+25
2025-05-04move user-mode code into own namespace and linker sectionFabian Imhof2-1/+11
2025-05-03write wrapper function for syscallFabian Imhof3-8/+51
2025-05-02Finish implementing 8-byte GDT entries and syscall arg loads.Matteo Gmür6-110/+98
2025-05-01WIP experiment with converting GDT to 8-Byte entriesFabian Imhof6-13/+96
2025-04-28Remove duplicate structMatteo Gmür1-2/+2
2025-04-27Move not public methods into anonymous namespaceMatteo Gmür3-11/+7
2025-04-27Simplify syscall setupMatteo Gmür2-0/+2
2025-04-27wip implement syscall in cppFabian Imhof3-2/+10
2025-04-27create trampoline for syscallFabian Imhof1-0/+2
2025-04-27Move gnu function attributes to header fileMatteo Gmür1-2/+2
2025-04-19Remove dequeMatteo Gmür2-526/+2
2025-04-17Merge branch 'syscall_interrupt_handler' into feat_inital_context_switchingFabian Imhof1-6/+14
2025-04-17add syscall interrupt handlerFabian Imhof1-6/+14
2025-04-15WIP dequeMatteo Gmür2-2/+526
2025-04-15Adjust comments and readability of stack and vector implementationMatteo Gmür2-105/+136
2025-04-14Add stack frame allocator. Fix stl vector bug and create stl stack ↵Matteo Gmür5-27/+305
implementation
2025-04-11Adjust variable nameMatteo Gmür1-3/+2
2025-04-11Document methods and move them into kernel cpu folderMatteo Gmür2-21/+86
2025-04-10add register validation and assertsFabian Imhof1-0/+6
2025-04-10move context_switch function and environment into different directoryFabian Imhof3-2/+38
2025-04-10move context_switch function into cpp codeFabian Imhof1-1/+0
2025-04-10Remove zombie codeMatteo Gmür1-3/+0
2025-04-07Fix naming from jmp to call for Far CallMatteo Gmür1-12/+5
2025-04-07Adjust idt flags bitsetMatteo Gmür1-2/+2
2025-04-06wip context switch in asmFabian Imhof1-0/+1
2025-04-05add wip context switch to user modeFabian Imhof3-32/+23
2025-04-04Multiplication by two for segment selector indexMatteo Gmür1-2/+6
2025-04-03add documentation to interrupt handlerFabian Imhof1-10/+15
2025-04-02fix interrupt handler and idtFabian Imhof2-6/+7
2025-04-01Fix invalid type field of gate descriptorMatteo Gmür2-3/+5
2025-03-31Improve create_segment readabilityMatteo Gmür4-18/+46
2025-03-31Clean up global descriptor table initalizationMatteo Gmür5-17/+40
2025-03-29fix gdt segments, improve idt and trial&error for triple faultFabian Imhof5-30/+51
2025-03-28gdt: fix reload of GDTFelix Morgner4-12/+18
The core problems were/are the following: - The flags of the segments were not entirely correct. Please recheck them against the spec! - The GDT pointer did not contain the address of the first (null) GTD entry, but the address of the stl::vector containing the GDT entries. - The far pointer must consist of: - the address to jump to - the byte index into the GDT for the desired segement descriptor to be loaded into CS. - The type of the "dummy" function we jump to was wrong (it's a function, we should declare it as such). - We cannot enable interrupts right now, since we die with a triple fault. This is caused by some initia fault which seems to lead to a general protection fault, which then triple faults since we cannot find the IDT. Some FIXMEs have been added to the code. Please look at them carefully and compare things against the specs.
2025-03-28Attempt to fix ljmp. Might not be possible in Long modeMatteo Gmür2-4/+4
2025-03-28Revert "update long jump handling"Matteo Gmür1-1/+1
This reverts commit 9ddfcd02413a93718e8cde53f9ba5a96a5b29b8f.