Newer
Older
tree-os / src / include / interrupts.h
@lukas lukas on 24 Sep 2021 643 bytes add capital typing
#ifndef INTERRUPTS_H
#define INTERRUPTS_H

#include <stdint.h>

typedef struct {
    uint16_t isr_low;
    uint16_t codeSegment;
    uint8_t reserved;
    uint8_t attributes;
    uint16_t isr_high;
} __attribute__((packed)) IDTEntry;

typedef struct {
    uint16_t limit;
    uint32_t base;
} __attribute__((packed)) IDTR;

typedef struct {
    unsigned int gs, fs, es, ds;
    unsigned int edi, esi, ebp, esp, ebx, edx, ecx, eax;
    unsigned int int_no, err_code;
    unsigned int eip, cs, eflags, useresp, ss;
} __attribute__((packed)) regs;

extern void setupInterrupts();
extern void setInterrupt(uint8_t vector, void *callback);

#endif