diff options
| author | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-09-03 23:53:53 +0200 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-09-04 16:42:56 +0200 |
| commit | 6e9b3275d75e0cdbae1e8f7e4dda8880bb6346bc (patch) | |
| tree | d6c7daf073f41ec2df196a322e8d1210d8e126a1 /kernel/src/sys | |
| parent | 11ced165e0df11cc3c889eb0cc402467361c421b (diff) | |
gdt & tss
Diffstat (limited to 'kernel/src/sys')
| -rw-r--r-- | kernel/src/sys/syscall.S | 0 | ||||
| -rw-r--r-- | kernel/src/sys/userspace.c | 9 | ||||
| -rw-r--r-- | kernel/src/sys/userspace_asm.S | 20 |
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 |
