My Project
Chargement...
Recherche...
Aucune correspondance
Macros | Fonctions | Variables
Référence du fichier interruptions.c

: 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>
Graphe des dépendances par inclusion de interruptions.c:

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]
 

Description détaillée

: Implémentation des sous-programmes de gestion des déroutements

                                               (C) Manu Chaput 2000-2023

Définition dans le fichier interruptions.c.

Documentation des macros

◆ afficherBin

#define afficherBin (   v,
  n,
  l,
  c 
)
Valeur :
{ \
uint32_t __val = (uint32_t) v; \
for (int __i = MANUX_CON_COLONNES*l+c+n-1; __i>=MANUX_CON_COLONNES*l+c; __i--) { \
ecran[2*__i] = chiffre[__val&1] ; \
__val /=2 ; \
} \
}
#define MANUX_CON_COLONNES
Definition ecran.h:28
unsigned long uint32_t
Definition types.h:20
uint16_t c
#define chiffre
Definition printk.c:24

Définition à la ligne 298 du fichier interruptions.c.

◆ afficherHexa

#define afficherHexa (   v,
  n,
  l,
  c 
)
Valeur :
{ \
uint32_t __val = (uint32_t) v; \
for (int __i = MANUX_CON_COLONNES*l+c+n-1; __i>=MANUX_CON_COLONNES*l+c; __i--) { \
ecran[2*__i] = chiffre[__val&15] ; \
__val /=16 ; \
} \
}

Définition à la ligne 290 du fichier interruptions.c.

◆ MANUX_NB_SOFT_INT

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

◆ MANUX_SELECTEUR_SEGMENT_CODE

#define MANUX_SELECTEUR_SEGMENT_CODE   0x08 /* WARNING a mettre ailleurs */

Définition à la ligne 28 du fichier interruptions.c.

Documentation des fonctions

◆ definirFonctionGestionInterruption()

int definirFonctionGestionInterruption ( int  num,
FonctionGestionInterruption  fg 
)

Définition de la fonction de gestion d'une interruption

Renvoie
: 0 si c'est bon

Définition à la ligne 174 du fichier interruptions.c.

◆ gestionException()

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.

◆ gestionExceptionPanique()

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.

◆ gestionInterruption()

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.

◆ initialiserIDT()

void initialiserIDT ( void  )

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

Documentation des variables

◆ fonctionDeGestionException

FonctionGestionException fonctionDeGestionException[MANUX_NB_EXCEPTIONS]

: la table de gestion des exceptions

Définition à la ligne 53 du fichier interruptions.c.

◆ fonctionDeGestionInterruption

FonctionGestionInterruption fonctionDeGestionInterruption[MANUX_NB_SOFT_INT]

@frief La table des fonctions de gestion des interruptions

Définition à la ligne 96 du fichier interruptions.c.

◆ handlerBasNiveauInterruption

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.