diff options
| author | Ada Christine <adachristine18@gmail.com> | 2021-04-07 09:17:19 +0000 |
|---|---|---|
| committer | Ada Christine <adachristine18@gmail.com> | 2021-04-07 09:17:19 +0000 |
| commit | 6d4fefae4f0afff412117133ee5e2178c3c5a1a1 (patch) | |
| tree | 6733f1c42c392d941b7a7511f9a84f45456c31d4 | |
| parent | e328f82d9232c1dac1dddd03b22da88c4d0dcdc5 (diff) | |
possible to install ist entries, stop and start interrupts
| -rw-r--r-- | kernel/cpu.c | 14 | ||||
| -rw-r--r-- | kernel/cpu.h | 4 |
2 files changed, 18 insertions, 0 deletions
diff --git a/kernel/cpu.c b/kernel/cpu.c index 83a264b..d5c6675 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -195,3 +195,17 @@ void isr_install(int vec, void *isr, int ist) } } +void ist_install(int ist, void *stack) +{ + tss.ist[ist] = (uint64_t)stack; +} + +void int_enable(void) +{ + __asm__ ("sti"); +} + +void int_disable(void) +{ + __asm__ ("cli"); +} diff --git a/kernel/cpu.h b/kernel/cpu.h index feded83..15cf44a 100644 --- a/kernel/cpu.h +++ b/kernel/cpu.h @@ -1,5 +1,9 @@ #pragma once void cpu_init(void); + void isr_install(int vec, void *isr, int ist); +void ist_install(int ist, void *stack); +void int_enable(void); +void int_disable(void); |
