X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/48b4a227035048fdebcd32532deb7a857c6199ac..af8e873ae38b72a56a89485c62bb5ccd22a9f8a7:/lunaix-os/includes/arch/x86/interrupts.h?ds=sidebyside diff --git a/lunaix-os/includes/arch/x86/interrupts.h b/lunaix-os/includes/arch/x86/interrupts.h index 9d3d085..3643a9e 100644 --- a/lunaix-os/includes/arch/x86/interrupts.h +++ b/lunaix-os/includes/arch/x86/interrupts.h @@ -5,8 +5,24 @@ #ifndef __ASM__ #include -typedef struct { - gp_regs registers; +typedef struct +{ + struct + { + reg32 eax; + reg32 ebx; + reg32 ecx; + reg32 edx; + reg32 edi; + reg32 ebp; + reg32 esi; + reg32 ds; + reg32 es; + reg32 fs; + reg32 gs; + reg32 esp; + } registers; + unsigned int vector; unsigned int err_code; unsigned int eip; @@ -16,7 +32,7 @@ typedef struct { unsigned int ss; } __attribute__((packed)) isr_param; -typedef void (*int_subscriber)(isr_param*); +typedef void (*int_subscriber)(const isr_param*); #pragma region ISR_DECLARATION @@ -47,8 +63,10 @@ ISR(21) ISR(32) ISR(33) +ISR(34) ISR(201) +ISR(202) ISR(210) @@ -66,8 +84,7 @@ intr_subscribe(const uint8_t vector, int_subscriber); void intr_unsubscribe(const uint8_t vector, int_subscriber); -void -intr_set_fallback_handler(int_subscriber); +void intr_set_fallback_handler(int_subscriber); void intr_handler(isr_param* param);