TacOS
0.2
|
Initialisation de la table des descripteurs d'interruption (et exceptions) et association aux handlers. Plus de détails...
#include <types.h>
Aller au code source de ce fichier.
Macros | |
#define | EXCEPTION_NUM 32 |
#define | EXCEPTION_BASE 0 |
#define | INTERRUPT_NUM 32 |
#define | INTERRUPT_BASE 32 /* Juste après les exceptions */ |
#define | IDT_TRAPGATE 0x7 |
#define | IDT_INTGATE 0x6 |
#define | IDT_TASKGATE 0x5 |
Fonctions | |
void | idt_setup () |
Initialisation de l'IDT. Plus de détails... | |
int | idt_set_handler (uint8_t index, paddr_t handler_address, uint8_t priority) |
Associe un handler à une interruption/exception. Plus de détails... | |
void | idt_set_handler_type (uint8_t index, uint8_t trap_type) |
Change le type d'une interruption (interrupt gate, trap gate, task gate). Plus de détails... | |
void | idt_disable_handler (uint8_t index) |
Désactive une interruption. Plus de détails... | |
Copyright (C) 2010, 2011, 2012 - TacOS developers.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details at http://www.gnu.org/copyleft/gpl.html
You should have received a copy of the GNU General Public License along with this program; if not, see http://www.gnu.org/licenses.
Description de ce que fait le fichier
#define EXCEPTION_BASE 0 |
On va définir une constante pour dire où on va mapper (pour l'idt)
#define EXCEPTION_NUM 32 |
Nombre d'exceptions :
#define INTERRUPT_BASE 32 /* Juste après les exceptions */ |
Définition de là où on mappe les interruptions.
#define INTERRUPT_NUM 32 |
Nombre d'interruptions :
void idt_disable_handler | ( | uint8_t | index | ) |
index | L'index dans l'IDT. |
index | L'index dans l'IDT. |
handler_address | L'adresse du handler. |
priority | Le niveau de privilège dans lequel va s'exécuter l'interruption. |
index | L'index dans l'IDT. |
trap_type | Le type de gate. |
void idt_setup | ( | ) |
Initialisation de l'IDT avec des champs par défaut mais aucun handler. L'IDT est envoyée au CPU.