diff options
Diffstat (limited to 'sys/include/arch')
-rw-r--r-- | sys/include/arch/amd64/tss.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/include/arch/amd64/tss.h b/sys/include/arch/amd64/tss.h index 90f6289..bca572e 100644 --- a/sys/include/arch/amd64/tss.h +++ b/sys/include/arch/amd64/tss.h @@ -100,6 +100,20 @@ struct __packed tss_desc { uint32_t reserved; }; +/* + * Holds the address of the address pointing + * to the top of an interrupt stack. + */ +union tss_stack { + struct { + uint32_t top_lo; + uint32_t top_hi; + }; + uint64_t top; +}; + +int tss_alloc_stack(union tss_stack *entry_out, size_t size); +int tss_update_ist(struct cpu_info *ci, union tss_stack stack, uint8_t istno); void write_tss(struct cpu_info *cpu, struct tss_desc *desc); void tss_load(void); /* In tss.S */ |