GitOS
Operating system exercise
|
#include <stdint.h>
Go to the source code of this file.
Data Structures | |
struct | idt_desc |
struct | idtr_desc |
struct | interrupt_frame |
Macros | |
#define | MAX_INTERRUPTS 256 |
Typedefs | |
typedef void(* | ISR_HANDLER) (int int_no, struct interrupt_frame *frame) |
Functions | |
struct idt_desc | __attribute__ ((packed)) |
void | idt_Init () |
Initializes memory for IDT struct Sets default for all interrupts. | |
void | idt_SetDescriptor (int int_no, void *address) |
Fills entry in IDT for specified Interrupt number Use before idt_Load() | |
int | idt_SetHandler (int int_no, ISR_HANDLER handler) |
Sets handler for given interrupt number. | |
void | idt_Load () |
Loads Interrupt Descriptor Table. | |
Variables | |
uint16_t | offset_low |
uint16_t | selector |
uint8_t | zero |
uint8_t | type_attr |
uint16_t | offset_high |
uint16_t | limit |
uint32_t | base |
uint32_t | error_code |
uint32_t | edi |
uint32_t | esi |
uint32_t | ebp |
uint32_t | reserved |
uint32_t | ebx |
uint32_t | edx |
uint32_t | ecx |
uint32_t | eax |
uint32_t | ip |
uint32_t | cs |
uint32_t | flags |
uint32_t | esp |
uint32_t | ss |
const char * | idt_InterruptLayoutString [32] |
#define MAX_INTERRUPTS 256 |
typedef void(* ISR_HANDLER) (int int_no, struct interrupt_frame *frame) |
struct idt_desc __attribute__ | ( | (packed) | ) |
void idt_Init | ( | ) |
Initializes memory for IDT struct Sets default for all interrupts.
References idtr_desc::base, idt_descriptors, idt_SetDescriptor(), idtr_descriptor, interrupt_pointer_table, idtr_desc::limit, MAX_INTERRUPTS, and memset().
void idt_Load | ( | ) |
Loads Interrupt Descriptor Table.
References idtr_descriptor.
void idt_SetDescriptor | ( | int | int_no, |
void * | address | ||
) |
Fills entry in IDT for specified Interrupt number Use before idt_Load()
int_no | Interrupt number |
address | Pointer to interrupt handler |
References idt_descriptors, idt_desc::offset_high, idt_desc::offset_low, idt_desc::selector, idt_desc::type_attr, and idt_desc::zero.
int idt_SetHandler | ( | int | int_no, |
ISR_HANDLER | handler | ||
) |
Sets handler for given interrupt number.
int_no | Interrupt number |
handler | Handler function |
References ALL_OK, EINVARG, interrupt_handlers, and MAX_INTERRUPTS.
uint32_t base |
uint32_t cs |
uint32_t eax |
uint32_t ebp |
uint32_t ebx |
uint32_t ecx |
uint32_t edi |
uint32_t edx |
uint32_t error_code |
uint32_t esi |
uint32_t esp |
uint32_t flags |
|
extern |
uint32_t ip |
uint16_t limit |
uint16_t offset_high |
uint16_t offset_low |
uint32_t reserved |
uint16_t selector |
uint32_t ss |
uint8_t type_attr |
uint8_t zero |