TacOS  0.2
 Tout Structures de données Fichiers Fonctions Variables Définitions de type Énumérations Macros
Macros | Fonctions
Référence du fichier idt.h

Initialisation de la table des descripteurs d'interruption (et exceptions) et association aux handlers. Plus de détails...

#include <types.h>
Graphe des dépendances par inclusion de idt.h:
Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

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...
 

Description détaillée

Auteur
TacOS developers

LICENSE

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

Description de ce que fait le fichier

Documentation des macros

#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 :

Documentation des fonctions

void idt_disable_handler ( uint8_t  index)
Paramètres
indexL'index dans l'IDT.

Voici le graphe d'appel pour cette fonction :

Voici le graphe des appelants de cette fonction :

int idt_set_handler ( uint8_t  index,
paddr_t  handler_address,
uint8_t  priority 
)
Paramètres
indexL'index dans l'IDT.
handler_addressL'adresse du handler.
priorityLe niveau de privilège dans lequel va s'exécuter l'interruption.
Renvoie
0 en cas de succès.

Voici le graphe des appelants de cette fonction :

void idt_set_handler_type ( uint8_t  index,
uint8_t  trap_type 
)
Paramètres
indexL'index dans l'IDT.
trap_typeLe type de gate.

Voici le graphe des appelants de cette fonction :

void idt_setup ( )

Initialisation de l'IDT avec des champs par défaut mais aucun handler. L'IDT est envoyée au CPU.

Voici le graphe d'appel pour cette fonction :