diff options
| author | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-09-05 23:54:12 +0200 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-09-07 17:46:10 +0200 |
| commit | 956bb743a3ba6939aaff2372fc45628cda6a9840 (patch) | |
| tree | 0d1fd304eb584c892e28e43bbc851cf66786d9da /kernel/src/cpu/registers.c | |
| parent | 59f86fe8dd237e50c7fea03b506125e3abff0157 (diff) | |
userspace finally working
Diffstat (limited to 'kernel/src/cpu/registers.c')
| -rw-r--r-- | kernel/src/cpu/registers.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/kernel/src/cpu/registers.c b/kernel/src/cpu/registers.c new file mode 100644 index 0000000..7dc22d4 --- /dev/null +++ b/kernel/src/cpu/registers.c @@ -0,0 +1,57 @@ +#include <types.h> +#include <libk/stdio.h> + +struct registers_t { + uint64_t rax; + uint64_t rbx; + uint64_t rcx; + uint64_t rdx; + uint64_t rsi; + uint64_t rdi; + uint64_t rsp; + uint64_t rbp; + uint64_t r8; + uint64_t r9; + uint64_t r10; + uint64_t r11; + uint64_t r12; + uint64_t r13; + uint64_t r14; + uint64_t r15; + uint64_t rip; + uint16_t cs; + uint16_t ds; + uint16_t ss; + uint16_t es; + uint16_t fs; + uint16_t gs; +}; +typedef struct registers_t registers_t; + +void print_reg(registers_t* registers) +{ + printf("printing registers:"); + printf("rax: %x", registers->rax); + printf("rbx: %x", registers->rbx); + printf("rcx: %x", registers->rcx); + printf("rdx: %x", registers->rdx); + printf("rsi: %x", registers->rsi); + printf("rdi: %x", registers->rdi); + printf("rsp: %x", registers->rsp); + printf("rbp: %x", registers->rbp); + printf("r8: %x", registers->r8); + printf("r9: %x", registers->r9); + printf("r10: %x", registers->r10); + printf("r11: %x", registers->r11); + printf("r12: %x", registers->r12); + printf("r13: %x", registers->r13); + printf("r14: %x", registers->r14); + printf("r15: %x", registers->r15); + printf("rip: %x", registers->rip); + printf("cs: %x", registers->cs); + printf("ds: %x", registers->ds); + printf("ss: %x", registers->ss); + printf("es: %x", registers->es); + printf("fs: %x", registers->fs); + printf("gs: %x", registers->gs); +} |
