summaryrefslogtreecommitdiff
path: root/kernel/src/sys
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksav013@gmail.com>2022-09-03 23:53:53 +0200
committerAleksa Vuckovic <aleksav013@gmail.com>2022-09-04 16:42:56 +0200
commit6e9b3275d75e0cdbae1e8f7e4dda8880bb6346bc (patch)
treed6c7daf073f41ec2df196a322e8d1210d8e126a1 /kernel/src/sys
parent11ced165e0df11cc3c889eb0cc402467361c421b (diff)
gdt & tss
Diffstat (limited to 'kernel/src/sys')
-rw-r--r--kernel/src/sys/syscall.S0
-rw-r--r--kernel/src/sys/userspace.c9
-rw-r--r--kernel/src/sys/userspace_asm.S20
3 files changed, 29 insertions, 0 deletions
diff --git a/kernel/src/sys/syscall.S b/kernel/src/sys/syscall.S
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/kernel/src/sys/syscall.S
diff --git a/kernel/src/sys/userspace.c b/kernel/src/sys/userspace.c
new file mode 100644
index 0000000..4add4d5
--- /dev/null
+++ b/kernel/src/sys/userspace.c
@@ -0,0 +1,9 @@
+#include <types.h>
+#include <userspace.h>
+
+void begin_userspace()
+{
+ while(true) {
+
+ }
+}
diff --git a/kernel/src/sys/userspace_asm.S b/kernel/src/sys/userspace_asm.S
new file mode 100644
index 0000000..5838051
--- /dev/null
+++ b/kernel/src/sys/userspace_asm.S
@@ -0,0 +1,20 @@
+.text
+
+.extern begin_userspace
+
+.global jump_userspace
+jump_userspace:
+ mov $0x23, %ax
+ mov %ax, %ds
+ mov %ax, %es
+ mov %ax, %fs
+ mov %ax, %gs
+
+ mov %esp, %eax
+ push $0x23
+ push %rax
+ pushf
+ push $0x1b
+ sub $8, %rsp
+ movabs $begin_userspace, %rsp
+ iretq