aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src
AgeCommit message (Collapse)AuthorFilesLines
2025-05-04fix returning from syscallFabian Imhof2-2/+5
2025-05-03rename syscall result variableFabian Imhof1-3/+3
2025-05-03write wrapper function for syscallFabian Imhof6-100/+133
2025-05-03Remove zomby code and fix 32-bit compability crashMatteo Gmür2-31/+8
2025-05-02Finish implementing 8-byte GDT entries and syscall arg loads.Matteo Gmür9-121/+127
2025-05-01WIP experiment with converting GDT to 8-Byte entriesFabian Imhof7-39/+90
2025-04-30Note linux calling contract for implementationMatteo Gmür1-1/+11
2025-04-30fix cs register after sysretqFabian Imhof1-10/+6
2025-04-29Start adding parameters to syscallMatteo Gmür1-3/+14
2025-04-27wip enable syscallFabian Imhof1-16/+12
2025-04-27Merge branch 'feat_inital_context_switching' of ↵Fabian Imhof1-0/+4
ssh://gitlab.ost.ch:45022/teachos/kernel into feat_inital_context_switching
2025-04-27test different valuesFabian Imhof1-0/+9
2025-04-27Add validate methods. For WIP systemcallMatteo Gmür1-0/+4
2025-04-27mergeFabian Imhof1-1/+0
2025-04-27Move not public methods into anonymous namespaceMatteo Gmür4-42/+39
2025-04-27Simplify syscall setupMatteo Gmür3-30/+12
2025-04-27wip implement syscall in cppFabian Imhof4-34/+55
2025-04-27create trampoline for syscallFabian Imhof2-1/+28
2025-04-27Move gnu function attributes to header fileMatteo Gmür2-4/+3
2025-04-21WIP syscallFabian Imhof3-4/+31
2025-04-19Remove dequeMatteo Gmür1-9/+1
2025-04-17Merge branch 'syscall_interrupt_handler' into feat_inital_context_switchingFabian Imhof3-1/+16
2025-04-17add syscall interrupt handlerFabian Imhof3-1/+16
2025-04-14Add stack frame allocator. Fix stl vector bug and create stl stack ↵Matteo Gmür4-4/+127
implementation
2025-04-11Remove gnu::naked functions where not necessary.Matteo Gmür1-20/+16
2025-04-11Add rax clobbered register to all segment register write callsMatteo Gmür1-3/+6
2025-04-11Adjust variable nameMatteo Gmür1-3/+2
2025-04-11Improve initialize_descriptor_tablesMatteo Gmür1-17/+14
2025-04-11Document methods and move them into kernel cpu folderMatteo Gmür3-59/+58
2025-04-10add register validation and assertsFabian Imhof2-4/+28
2025-04-10move context_switch function and environment into different directoryFabian Imhof4-61/+83
2025-04-10move context_switch function into cpp codeFabian Imhof3-63/+44
2025-04-10Merge branch 'feat_inital_context_switching' of ↵Fabian Imhof2-5/+8
ssh://gitlab.ost.ch:45022/teachos/kernel into feat_inital_context_switching
2025-04-10fix context_switch functionFabian Imhof1-8/+9
2025-04-10Also add iretq to boot.sMatteo Gmür1-1/+1
2025-04-10Replace iret with iretq (64-bit)Matteo Gmür1-2/+2
2025-04-10Move interrupt count into seperate variableMatteo Gmür1-3/+6
2025-04-07Fix naming from jmp to call for Far CallMatteo Gmür4-17/+11
2025-04-06wip context switch in asmFabian Imhof2-11/+49
2025-04-05add wip context switch to user modeFabian Imhof5-28/+72
2025-04-05fix segment_selectorFabian Imhof1-1/+1
2025-04-04Multiplication by two for segment selector indexMatteo Gmür2-2/+2
2025-04-02fix interrupt handler and idtFabian Imhof3-10/+7
2025-03-31Add missing flag to idt entry.Matteo Gmür1-8/+13
2025-03-31Improve create_segment readabilityMatteo Gmür7-40/+60
2025-03-31Clean up global descriptor table initalizationMatteo Gmür6-60/+60
2025-03-29remove empty lineFabian Imhof1-1/+0
2025-03-29fix gdt segments, improve idt and trial&error for triple faultFabian Imhof7-32/+46
2025-03-28gdt: fix reload of GDTFelix Morgner4-17/+21
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ür3-6/+6