|
Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
|
#include <type.h>Go to the source code of this file.
Data Structures | |
| struct | __attribute__ |
| struct | interrupt_stack_frame_t |
| struct | irq_entry_t |
| struct | interrupt_per_core_data_t |
Macros | |
| #define | PIC1 0x20 /* IO base address for master PIC */ |
| #define | PIC2 0xA0 /* IO base address for slave PIC */ |
| #define | PIC1_COMMAND PIC1 |
| #define | PIC1_DATA (PIC1 + 1) |
| #define | PIC2_COMMAND PIC2 |
| #define | PIC2_DATA (PIC2 + 1) |
| #define | ICW1_ICW4 0x01 /* Indicates that ICW4 will be present */ |
| #define | ICW1_SINGLE 0x02 /* Single (cascade) mode */ |
| #define | ICW1_INTERVAL4 0x04 /* Call address interval 4 (8) */ |
| #define | ICW1_LEVEL 0x08 /* Level triggered (edge) mode */ |
| #define | ICW1_INIT 0x10 /* Initialization - required! */ |
| #define | ICW4_8086 0x01 /* 8086/88 (MCS-80/85) mode */ |
| #define | ICW4_AUTO 0x02 /* Auto (normal) EOI */ |
| #define | ICW4_BUF_SLAVE 0x08 /* Buffered mode/slave */ |
| #define | ICW4_BUF_MASTER 0x0C /* Buffered mode/master */ |
| #define | ICW4_SFNM 0x10 /* Special fully nested (not) */ |
| #define | MAX_INTERRUPTS 256 |
| #define | MAX_HANDLERS_PER_INTERRUPT 16 |
| #define | INTERRUPT_ATTR_USER 0x8E |
| #define | INTERRUPT_ATTR_KERNEL 0xEE |
Functions | |
| void | irq_register (uint8_t core, int n, void *handler, boolean_t use_default_isr, uint16_t selector, uint8_t ist, uint8_t type_attr) |
| void | irq_setup (uint16_t core) |
| uint16_t | irq_alloc_entry (uint8_t core) |
| __attribute__ ((no_stack_protector)) void vxInterruptHandler(interrupt_stack_frame_t *rsp | |
Variables | |
| fpu_state_t * | fpu |
| #define ICW1_ICW4 0x01 /* Indicates that ICW4 will be present */ |
Definition at line 12 of file interrupt.h.
Referenced by interrupt_pic_remap().
| #define ICW1_INIT 0x10 /* Initialization - required! */ |
Definition at line 16 of file interrupt.h.
Referenced by interrupt_pic_remap().
| #define ICW1_INTERVAL4 0x04 /* Call address interval 4 (8) */ |
Definition at line 14 of file interrupt.h.
| #define ICW1_LEVEL 0x08 /* Level triggered (edge) mode */ |
Definition at line 15 of file interrupt.h.
| #define ICW1_SINGLE 0x02 /* Single (cascade) mode */ |
Definition at line 13 of file interrupt.h.
| #define ICW4_8086 0x01 /* 8086/88 (MCS-80/85) mode */ |
Definition at line 18 of file interrupt.h.
Referenced by interrupt_pic_remap().
| #define ICW4_AUTO 0x02 /* Auto (normal) EOI */ |
Definition at line 19 of file interrupt.h.
| #define ICW4_BUF_MASTER 0x0C /* Buffered mode/master */ |
Definition at line 21 of file interrupt.h.
| #define ICW4_BUF_SLAVE 0x08 /* Buffered mode/slave */ |
Definition at line 20 of file interrupt.h.
| #define ICW4_SFNM 0x10 /* Special fully nested (not) */ |
Definition at line 22 of file interrupt.h.
| #define INTERRUPT_ATTR_KERNEL 0xEE |
Definition at line 28 of file interrupt.h.
Referenced by __attribute__(), irq_setup(), setup_timer_interrupt(), and vxStartScheduler().
| #define INTERRUPT_ATTR_USER 0x8E |
Definition at line 27 of file interrupt.h.
| #define MAX_HANDLERS_PER_INTERRUPT 16 |
Definition at line 25 of file interrupt.h.
| #define MAX_INTERRUPTS 256 |
Definition at line 24 of file interrupt.h.
Referenced by interrupt_reload(), irq_alloc_entry(), and irq_setup().
Definition at line 5 of file interrupt.h.
| #define PIC1_COMMAND PIC1 |
Definition at line 7 of file interrupt.h.
Referenced by interrupt_pic_remap().
| #define PIC1_DATA (PIC1 + 1) |
Definition at line 8 of file interrupt.h.
Referenced by interrupt_pic_remap().
Definition at line 6 of file interrupt.h.
| #define PIC2_COMMAND PIC2 |
Definition at line 9 of file interrupt.h.
Referenced by interrupt_pic_remap().
| #define PIC2_DATA (PIC2 + 1) |
Definition at line 10 of file interrupt.h.
Referenced by interrupt_pic_remap().
|
extern |
Definition at line 42 of file gdt.c.
References __gdt_entries, base, and core.
Definition at line 109 of file interrupt.c.
References irq_entry_t::allocated, core, interrupt_per_core_data, and MAX_INTERRUPTS.
Referenced by __attribute__().
| void irq_register | ( | uint8_t | core, |
| int | n, | ||
| void * | handler, | ||
| boolean_t | use_default_isr, | ||
| uint16_t | selector, | ||
| uint8_t | ist, | ||
| uint8_t | type_attr ) |
Definition at line 70 of file interrupt.c.
References irq_entry_t::configured, core, irq_entry_t::handler, int_table, interrupt_per_core_data, interrupt_register(), ist, irq_entry_t::mask, slot, and irq_entry_t::use_default_isr.
Referenced by __attribute__(), setup_timer_interrupt(), and vxStartScheduler().
| void irq_setup | ( | uint16_t | core | ) |
Definition at line 125 of file interrupt.c.
References core, int_table, INTERRUPT_ATTR_KERNEL, interrupt_per_core_data, interrupt_pic_remap(), interrupt_register(), interrupt_reload(), MAX_INTERRUPTS, and memset().
Referenced by __attribute__(), and INIT().
| fpu_state_t* fpu |
Definition at line 84 of file interrupt.h.
Referenced by __attribute__().