X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/48b4a227035048fdebcd32532deb7a857c6199ac..fa57b4a05aa12d594f40e0894e0ac6f810a7095c:/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..70e7149 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,49 +32,7 @@ typedef struct { unsigned int ss; } __attribute__((packed)) isr_param; -typedef void (*int_subscriber)(isr_param*); - -#pragma region ISR_DECLARATION - -#define ISR(iv) void _asm_isr##iv(); - -ISR(0) -ISR(1) -ISR(2) -ISR(3) -ISR(4) -ISR(5) -ISR(6) -ISR(7) -ISR(8) -ISR(9) -ISR(10) -ISR(11) -ISR(12) -ISR(13) -ISR(14) -ISR(15) -ISR(16) -ISR(17) -ISR(18) -ISR(19) -ISR(20) -ISR(21) - -ISR(32) -ISR(33) - -ISR(201) - -ISR(210) - -ISR(250) -ISR(251) -ISR(252) -ISR(253) -ISR(254) - -#pragma endregion +typedef void (*int_subscriber)(const isr_param*); void intr_subscribe(const uint8_t vector, int_subscriber); @@ -66,8 +40,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);