My Project
Chargement...
Recherche...
Aucune correspondance
Classes | Macros | Fonctions | Variables
Référence du fichier intel-8259a.c
#include <manux/config.h>
#include <manux/memoire.h>
#include <manux/io.h>
#include <manux/types.h>
#include <manux/errno.h>
#include <manux/intel-8259a.h>
Graphe des dépendances par inclusion de intel-8259a.c:

Aller au code source de ce fichier.

Classes

struct  i8259aClient
 Structure permettant de définir un matériel "client". Plus de détails...
 

Macros

#define PIC_EOI   0x20
 
#define ICW1_INIT   0x10
 
#define ICW1_ICW4   0x01
 
#define ICW3_ESCLAVE2   0x02
 
#define ICW3_MAITRE2   0x04
 
#define ICW4_8086   0x01
 
#define delaiOutB   {for(int __x = 0; __x<20; __x++){asm("");}}
 

Fonctions

void i8259aInit (uint8_t intBase)
 
int i8259aAjouterHandler (int numIRQ, void(*handler)(void *), void *private)
 Ajout d'un handler.
 
void i8259aInterdireIRQ (uint8_t numIRQ)
 
void i8259aAutoriserIRQ (uint8_t numIRQ)
 Masquage d'une IRQ.
 
void i8259aAckIRQ (uint8_t numIRQ)
 Accusé de réception d'une IRQ.
 
void i8259aGestionIRQ (TousRegistres registres, uint32_t numIRQ, uint32_t eip, uint32_t cs, uint32_t eFlags)
 Le handler de gestion effective des IRQ.
 

Variables

i8259aClient handlerClients [I8259A_NB_IRQ][MANUX_NB_HANDLER_PAR_IRQ]
 
int nbHandlerClients [I8259A_NB_IRQ]
 

Documentation des macros

◆ delaiOutB

#define delaiOutB   {for(int __x = 0; __x<20; __x++){asm("");}}

Définition à la ligne 54 du fichier intel-8259a.c.

◆ ICW1_ICW4

#define ICW1_ICW4   0x01

Définition à la ligne 44 du fichier intel-8259a.c.

◆ ICW1_INIT

#define ICW1_INIT   0x10

Définition à la ligne 43 du fichier intel-8259a.c.

◆ ICW3_ESCLAVE2

#define ICW3_ESCLAVE2   0x02

Définition à la ligne 47 du fichier intel-8259a.c.

◆ ICW3_MAITRE2

#define ICW3_MAITRE2   0x04

Définition à la ligne 48 du fichier intel-8259a.c.

◆ ICW4_8086

#define ICW4_8086   0x01

Définition à la ligne 51 du fichier intel-8259a.c.

◆ PIC_EOI

#define PIC_EOI   0x20

Définition à la ligne 40 du fichier intel-8259a.c.

Documentation des fonctions

◆ i8259aAckIRQ()

void i8259aAckIRQ ( uint8_t  numIRQ)

Accusé de réception d'une IRQ.

Note : on envoie ici un EOI non spécifique (cf [5] p 15) alors que Linux semble faire du specifique.

Définition à la ligne 181 du fichier intel-8259a.c.

◆ i8259aAjouterHandler()

int i8259aAjouterHandler ( int  numIRQ,
void(*)(void *)  handler,
void *  private 
)

Ajout d'un handler.

Définition à la ligne 118 du fichier intel-8259a.c.

◆ i8259aAutoriserIRQ()

void i8259aAutoriserIRQ ( uint8_t  numIRQ)

Masquage d'une IRQ.

Définition à la ligne 157 du fichier intel-8259a.c.

◆ i8259aGestionIRQ()

void i8259aGestionIRQ ( TousRegistres  registres,
uint32_t  numIRQ,
uint32_t  eip,
uint32_t  cs,
uint32_t  eFlags 
)

Le handler de gestion effective des IRQ.

C'est cette fonction qui est invoquée lors d'une interruption matérielle.

Définition à la ligne 196 du fichier intel-8259a.c.

◆ i8259aInit()

void i8259aInit ( uint8_t  intBase)

Définition à la ligne 61 du fichier intel-8259a.c.

◆ i8259aInterdireIRQ()

void i8259aInterdireIRQ ( uint8_t  numIRQ)

Masquage d'une IRQ

Définition à la ligne 136 du fichier intel-8259a.c.

Documentation des variables

◆ handlerClients

Tableau des handlers et data

Définition à la ligne 30 du fichier intel-8259a.c.

◆ nbHandlerClients

int nbHandlerClients[I8259A_NB_IRQ]

Nombre de handlers enregistrés par IRQ

Définition à la ligne 35 du fichier intel-8259a.c.