|
My Project
|
: Implémentation des sous-programmes de gestion des déroutements Plus de détails...
#include "manux/printk.h"#include <manux/config.h>#include <manux/debug.h>#include <manux/interruptions.h>#include "manux/intel-8259a.h"#include <manux/memoire.h>#include <manux/interBasNiveau.h>#include <manux/io.h>#include <manux/i386.h>#include <manux/segment.h>#include <manux/scheduler.h>#include <manux/appelsysteme.h>#include <manux/atomique.h>#include <manux/ecran.h>#include <manux/tache.h>#include <manux/string.h>
Aller au code source de ce fichier.
Macros | |
| #define | MANUX_SELECTEUR_SEGMENT_CODE 0x08 /* WARNING a mettre ailleurs */ |
| #define | MANUX_NB_SOFT_INT (MANUX_NB_INTERRUPTIONS - (MANUX_NB_EXCEPTIONS + MANUX_NB_IRQ)) |
| Combien y a-t-il d'interruptions logicielles ? | |
| #define | afficherHexa(v, n, l, c) |
| #define | afficherBin(v, n, l, c) |
Fonctions | |
| void | gestionExceptionPanique (TousRegistres registres, uint32_t numEx, uint32_t errCode, uint32_t eip, uint32_t cs, uint32_t eFlags) |
| Décompte des interruptions reçues. | |
| void | gestionException (TousRegistres registres, uint32_t numEx, uint32_t errCode, uint32_t eip, uint32_t cs, uint32_t eFlags) |
| : Fonction de base de gestion d'une exception | |
| void | gestionInterruption (TousRegistres registres, uint32_t numIt, uint32_t eip, uint32_t cs, uint32_t eFlags) |
| : Fonction de base de gestion d'une exception | |
| int | definirFonctionGestionInterruption (int num, FonctionGestionInterruption fg) |
| void | initialiserIDT (void) |
| ! Initialiser l'IDT (Interrupt Description Table) | |
Variables | |
| void * | handlerBasNiveauInterruption [MANUX_NB_SOFT_INT] |
| Une table (initialisée par la fonction initialiserHandlersInterruption de interBasNiveau.nasm) des handlers bas niveau des interruptions logicielles. | |
| FonctionGestionException | fonctionDeGestionException [MANUX_NB_EXCEPTIONS] |
| : la table de gestion des exceptions | |
| FonctionGestionInterruption | fonctionDeGestionInterruption [MANUX_NB_SOFT_INT] |
: Implémentation des sous-programmes de gestion des déroutements
(C) Manu Chaput 2000-2023
Définition dans le fichier interruptions.c.
| #define afficherBin | ( | v, | |
| n, | |||
| l, | |||
| c | |||
| ) |
Définition à la ligne 298 du fichier interruptions.c.
| #define afficherHexa | ( | v, | |
| n, | |||
| l, | |||
| c | |||
| ) |
Définition à la ligne 290 du fichier interruptions.c.
| #define MANUX_NB_SOFT_INT (MANUX_NB_INTERRUPTIONS - (MANUX_NB_EXCEPTIONS + MANUX_NB_IRQ)) |
Combien y a-t-il d'interruptions logicielles ?
Il y a en tout MANUX_NB_INTERRUPTIONS interruptions, dont MANUX_NB_EXCEPTIONS exceptions et MANUX_NB_IRQ IRQs.
Définition à la ligne 40 du fichier interruptions.c.
| #define MANUX_SELECTEUR_SEGMENT_CODE 0x08 /* WARNING a mettre ailleurs */ |
Définition à la ligne 28 du fichier interruptions.c.
| int definirFonctionGestionInterruption | ( | int | num, |
| FonctionGestionInterruption | fg | ||
| ) |
Définition de la fonction de gestion d'une interruption
Définition à la ligne 174 du fichier interruptions.c.
| void gestionException | ( | TousRegistres | registres, |
| uint32_t | numEx, | ||
| uint32_t | errCode, | ||
| uint32_t | eip, | ||
| uint32_t | cs, | ||
| uint32_t | eFlags | ||
| ) |
: Fonction de base de gestion d'une exception
Définition à la ligne 83 du fichier interruptions.c.
| void gestionExceptionPanique | ( | TousRegistres | registres, |
| uint32_t | numIt, | ||
| uint32_t | errCode, | ||
| uint32_t | eip, | ||
| uint32_t | cs, | ||
| uint32_t | eFlags | ||
| ) |
Décompte des interruptions reçues.
: Gestion (non) d'une exception non connue.
On affichera ce que l'on peut à l'écran pour aider l'utilisateur, ...
Définition à la ligne 384 du fichier interruptions.c.
| void gestionInterruption | ( | TousRegistres | registres, |
| uint32_t | numIt, | ||
| uint32_t | eip, | ||
| uint32_t | cs, | ||
| uint32_t | eFlags | ||
| ) |
: Fonction de base de gestion d'une exception
Définition à la ligne 119 du fichier interruptions.c.
! Initialiser l'IDT (Interrupt Description Table)
@brieg Initialisation de de la table des descripteurs d'interruption
Définition à la ligne 185 du fichier interruptions.c.
| FonctionGestionException fonctionDeGestionException[MANUX_NB_EXCEPTIONS] |
: la table de gestion des exceptions
Définition à la ligne 53 du fichier interruptions.c.
| FonctionGestionInterruption fonctionDeGestionInterruption[MANUX_NB_SOFT_INT] |
@frief La table des fonctions de gestion des interruptions
Définition à la ligne 96 du fichier interruptions.c.
| void* handlerBasNiveauInterruption[MANUX_NB_SOFT_INT] |
Une table (initialisée par la fonction initialiserHandlersInterruption de interBasNiveau.nasm) des handlers bas niveau des interruptions logicielles.
Définition à la ligne 48 du fichier interruptions.c.