/idt.h
https://bitbucket.org/seed/kernalion · C Header · 32 lines · 24 code · 6 blank · 2 comment · 0 complexity · f65556845202cd9312211978d54b7f3e MD5 · raw file
- #ifndef _IDT_H_
- # define _IDT_H_
- # define IDT_NB_ENTRIES 256
- struct int_gate_s
- {
- unsigned short offset_low; // offset 0-15 bits
- unsigned short segment_sel;// segment selector
- unsigned char reserved; // must be zeroed
- unsigned char flags; // flags
- unsigned short offset_high;// offset 16-31 bits
- } __attribute__((packed));
- typedef struct int_gate_s int_gate_t;
- // A struct describing a pointer to an array of interrupt handlers.
- // This is in a format suitable for giving to 'lidt'.
- struct lidt_param_s
- {
- unsigned short limit; // IDT size in bytes
- unsigned int base; // IDT address
- } __attribute__((packed));
- typedef struct lidt_param_s lidt_param_t;
- void init_idt(void);
- void init_tick(void);
- void init_pic(void);
- void set_interrupt(unsigned char index, unsigned int offset, unsigned short segment_sel, unsigned char flags);
- void load_idt();
- #endif /* !_IDT_H_ */