diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-03-04 15:43:28 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-03-04 15:43:28 +0200 |
commit | 5f0006cfa7c499a501969641ac7bd630cb4706de (patch) | |
tree | 68e792da03c4ec36241dee787bc0dd7835dfd907 /src/cpu/registers.h | |
parent | Add some comments to keyboard driver (diff) | |
download | kernel.cpp-5f0006cfa7c499a501969641ac7bd630cb4706de.tar.xz |
pass cpu_state_t to interrupt handler
Diffstat (limited to 'src/cpu/registers.h')
-rw-r--r-- | src/cpu/registers.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/cpu/registers.h b/src/cpu/registers.h new file mode 100644 index 0000000..edb6b7b --- /dev/null +++ b/src/cpu/registers.h @@ -0,0 +1,26 @@ +#pragma once + +#include <types.h> + +namespace x86 { + +struct cpu_state { + /* pusha */ + uint32_t edi, esi; // destination index, source index + uint32_t ebp, esp; // base pointer, stack pointer + uint32_t ebx, edx, ecx, eax; // general registers + + uint32_t irq; + uint32_t error; + + /* stack frame, pushed by cpu */ + uint32_t eip; + uint32_t cs; + uint32_t eflags; + uint32_t __esp; + uint32_t ss; +} __attribute__((packed)); + +} // namespace x86 + +typedef x86::cpu_state cpu_state_t; |