aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/context_switching
AgeCommit message (Collapse)AuthorFilesLines
2025-03-28gdt: fix reload of GDTFelix Morgner3-17/+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ür1-1/+1
2025-03-28Revert "update long jump handling"Matteo Gmür1-2/+4
This reverts commit 9ddfcd02413a93718e8cde53f9ba5a96a5b29b8f.
2025-03-27update long jump handlingFabian Imhof1-4/+2
2025-03-27Attempt to fix crash in far jump. WIP does not return from call to assembler ↵Matteo Gmür2-17/+10
method
2025-03-26add llm suggestion to idt creationFabian Imhof1-13/+16
2025-03-26Fixing pointer values and adding basic idt valueMatteo Gmür2-3/+22
2025-03-25Implement idtr structure and document possible flags.Matteo Gmür8-67/+139
2025-03-25Adjust file structure and fix compilation issuesMatteo Gmür13-88/+86
2025-03-20begin implementation of IDTFabian Imhof5-39/+69
2025-03-18Attempt to add calls that Reload code segment and data segment registerMatteo Gmür1-0/+31
2025-03-18Fix invalid bit values in access byte and typo in create_segment_descriptor ↵Matteo Gmür1-1/+1
method
2025-03-17Debug and adjust load task register assembly call. WIPMatteo Gmür2-24/+20
2025-03-17Fix issue in vectorMatteo Gmür1-15/+12
2025-03-16Move base value out into variableMatteo Gmür1-3/+4
2025-03-16start implementing TSSFabian Imhof1-37/+71
2025-03-15Merge branch 'feat_inital_context_switching' of ↵Fabian Imhof1-2/+0
ssh://gitlab.ost.ch:45022/teachos/kernel into feat_inital_context_switching
2025-03-15create TSS descriptorFabian Imhof1-0/+10
2025-03-15Use empty bit field to implement reservedMatteo Gmür1-2/+0
2025-03-15implement loading of gdtr registerMatteo Gmür6-51/+54
2025-03-14Fix header recursion problemMatteo Gmür1-5/+2
2025-03-13fixup typing and continue adding gdtFabian Imhof1-9/+8
2025-03-13Merge branch 'feat_inital_context_switching' of ↵Fabian Imhof1-6/+10
ssh://gitlab.ost.ch:45022/teachos/kernel into feat_inital_context_switching
2025-03-13IN_PROGRESS implement gdt initializationFabian Imhof1-0/+57
2025-03-13Fix segment descriptor bit order of private membersMatteo Gmür1-6/+10
2025-03-13create GDT and fix segment descriptor bit orderFabian Imhof3-6/+22
2025-03-10Implement segment descriptorMatteo Gmür2-21/+18
2025-03-10Adjust segment descriptor to use defined helpersMatteo Gmür1-0/+13
2025-03-10Adjust register segment descriptors to possible statesMatteo Gmür3-8/+43
2025-02-27add descriptor_table access_byteFabian Imhof1-0/+14
2025-02-27Add files to cmake and implement gdt flagsMatteo Gmür1-0/+6