#include <const.h>
Go to the source code of this file.
Data Structures | |||||
| struct | idt_entry | ||||
| IDT entry structure. More... | |||||
| struct | idt_reg | ||||
| IDT register structure. More... | |||||
| struct | irq_context | ||||
| Context after an interrupt. More... | |||||
Defines | |||||
| #define | TIMER_IRQ 0x00 | ||||
| Timer IRQ line. | |||||
| #define | KEYBOARD_IRQ 0x01 | ||||
| Keyboard IRQ line. | |||||
| #define | RS232_1_IRQ 0x04 | ||||
| Serial COM1 IRQ line. | |||||
| #define | RS232_2_IRQ 0x03 | ||||
| Serial COM2 IRQ line. | |||||
| #define | FLOPPY_IRQ 0x06 | ||||
| Floppy IRQ line. | |||||
| #define | IDEP_IRQ 0x0E | ||||
| IDE primary channel IRQ line. | |||||
| #define | IDES_IRQ 0x0F | ||||
| IDE secondary channel IRQ line. | |||||
| #define | MINIRIGHI_INT 0x80 | ||||
| Minirighi interrupt (used for the system calls). | |||||
| #define | DOS_INT 0x20 | ||||
| DOS interrupt (maybe will be used for DOS emulation...). | |||||
| #define | EFLAGS_IF 0x200 | ||||
| Interrupt enable flag in EFLAGS register. | |||||
| #define | EFLAGS_IOPL3 0x3000 | ||||
| I/O privilege level 3 (minimum privilege). Everyone can perform I/O operation. | |||||
| #define | EFLAGS_IOPL2 0x2000 | ||||
| I/O privilege level 2. | |||||
| #define | EFLAGS_IOPL1 0x3000 | ||||
| I/O privilege level 1. | |||||
| #define | EFLAGS_IOPL0 0x0000 | ||||
| I/O privilege level 0 (maximum privilege). Only the kernel can perform I/O operation. | |||||
| #define | PORT_8259_M 0x20 | ||||
| PIC 8259 master. | |||||
| #define | PORT_8259_S 0xA0 | ||||
| PIC 8259 slave. | |||||
| #define | PORT_INT_MASK_M 0x21 | ||||
| PIC 8259 master (interrupt mask). | |||||
| #define | PORT_INT_MASK_S 0xA1 | ||||
| PIC 8259 slave (interrupt mask). | |||||
| #define | EOI 0x20 | ||||
| PIC 8259 EOI (End Of Interrupt). | |||||
| #define | IDT_DIM 256 | ||||
| Number of entries in the IDT. | |||||
Typedefs | |||||
| typedef idt_entry | idt_entry_t | ||||
| IDT entry structure. | |||||
| typedef idt_reg | idt_reg_t | ||||
| IDT register structure. | |||||
| typedef irq_context | irq_context_t | ||||
| Context after an interrupt. | |||||
Functions | |||||
| void | disable_IRQ (uint8_t IRQ) | ||||
Disable an IRQ line.
| |||||
| void | enable_IRQ (uint8_t IRQ) | ||||
Enable an IRQ line.
| |||||
| void | reprogram_PIC () | ||||
Initialize the Programmable Interrupt Controllers (PICs).
| |||||
| void | install_IDT () | ||||
| Initialize the IDT (Interrupt Descriptor Table). | |||||
| void | install_irq_handler (uint8_t irq, void *handler) | ||||
Install an IRQ handler routine.
| |||||
Definition in file interrupt.h.
|
|
DOS interrupt (maybe will be used for DOS emulation...).
Definition at line 37 of file interrupt.h. |
|
|
Interrupt enable flag in EFLAGS register.
Definition at line 42 of file interrupt.h. |
|
|
I/O privilege level 0 (maximum privilege). Only the kernel can perform I/O operation.
Definition at line 56 of file interrupt.h. |
|
|
I/O privilege level 1.
Definition at line 52 of file interrupt.h. |
|
|
I/O privilege level 2.
Definition at line 49 of file interrupt.h. |
|
|
I/O privilege level 3 (minimum privilege). Everyone can perform I/O operation.
Definition at line 46 of file interrupt.h. |
|
|
PIC 8259 EOI (End Of Interrupt).
Definition at line 69 of file interrupt.h. |
|
|
Floppy IRQ line.
Definition at line 24 of file interrupt.h. |
|
|
IDE primary channel IRQ line.
Definition at line 27 of file interrupt.h. |
|
|
IDE secondary channel IRQ line.
Definition at line 29 of file interrupt.h. |
|
|
Number of entries in the IDT.
Definition at line 74 of file interrupt.h. |
|
|
Keyboard IRQ line.
Definition at line 18 of file interrupt.h. |
|
|
Minirighi interrupt (used for the system calls).
Definition at line 35 of file interrupt.h. |
|
|
PIC 8259 master.
Definition at line 61 of file interrupt.h. |
|
|
PIC 8259 slave.
Definition at line 63 of file interrupt.h. |
|
|
PIC 8259 master (interrupt mask).
Definition at line 65 of file interrupt.h. |
|
|
PIC 8259 slave (interrupt mask).
Definition at line 67 of file interrupt.h. |
|
|
Serial COM1 IRQ line.
Definition at line 20 of file interrupt.h. |
|
|
Serial COM2 IRQ line.
Definition at line 22 of file interrupt.h. |
|
|
Timer IRQ line.
Definition at line 16 of file interrupt.h. |
|
|
IDT entry structure.
|
|
|
IDT register structure.
|
|
|
Context after an interrupt.
|
1.2.18