summaryrefslogtreecommitdiff
path: root/kernel/src/arch/x86_64/asm/scheduling.asm
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/arch/x86_64/asm/scheduling.asm')
-rw-r--r--kernel/src/arch/x86_64/asm/scheduling.asm121
1 files changed, 0 insertions, 121 deletions
diff --git a/kernel/src/arch/x86_64/asm/scheduling.asm b/kernel/src/arch/x86_64/asm/scheduling.asm
deleted file mode 100644
index 2e67154..0000000
--- a/kernel/src/arch/x86_64/asm/scheduling.asm
+++ /dev/null
@@ -1,121 +0,0 @@
-
-extern schedulingSchedule
-global schedulingEnter
-global schedulingEnd
-global yield
-
-yield:
- pop rax
- mov rdx, rsp
- mov rsp,[gs:16]
- push qword 0
- push rdx
- pushfq
- push qword 0x08
- push qword rax
- jmp schedulingEnter
-
-global yield0
-
-yield0:
- sti
- pause
- cli
- pop rax
- mov rdx, rsp
- mov rsp,[gs:16]
- push qword 0
- push rdx
- pushfq
- push qword 0x08
- push qword rax
- jmp schedulingEnter
-
-
-schedulingEnter:
- cli
- push qword 0
- push qword 0
- push r15
- push r14
- push r13
- push r12
- push r11
- push r10
- push r9
- push r8
- push rbp
- push rdi
- push rsi
- push rdx
- push rcx
- push rbx
- push rax
- mov rax,cr3
- push rax
- mov rdi,rsp
- jmp schedulingSchedule
-
-global schedulingScheduleSaveAndChangeStack
-schedulingScheduleSaveAndChangeStack:
- cli
- mov rsi,rsp
- pop rdx
- mov rsp,rdi
-
- push 0x10
- push rsi
- pushfq
- push 0x08
- push rdx
-
- push qword 0
- push qword 0
- push r15
- push r14
- push r13
- push r12
- push r11
- push r10
- push r9
- push r8
- push rbp
- push rdi
- push rsi
- push rdx
- push rcx
- push rbx
- push rax
- mov rax,cr3
- push rax
- mov rdi,rsp
- jmp schedulingSchedule
-
-
-global schedulingScheduleAndChangeStack
-schedulingScheduleAndChangeStack:
- mov rsp,rdi
- mov rdi,rsi
- jmp schedulingSchedule
-
-schedulingEnd:
- mov rsp,rdi
- pop rax
- mov cr3,rax
- pop rax
- pop rbx
- pop rcx
- pop rdx
- pop rsi
- pop rdi
- pop rbp
- pop r8
- pop r9
- pop r10
- pop r11
- pop r12
- pop r13
- pop r14
- pop r15
- add rsp,16
- iretq \ No newline at end of file