10#include <manux/config.h>
14#include <manux/types.h>
15#include <manux/errno.h>
47#define ICW3_ESCLAVE2 0x02
48#define ICW3_MAITRE2 0x04
54#define delaiOutB {for(int __x = 0; __x<20; __x++){asm("");}}
151 outb(port, masque & (0x01 << numIRQ));
172 outb(port, masque & ~(0x01 << numIRQ));
#define MANUX_NB_HANDLER_PAR_IRQ
typedef void(Handler(void))
void i8259aInterdireIRQ(uint8_t numIRQ)
void i8259aGestionIRQ(TousRegistres registres, uint32_t numIRQ, uint32_t eip, uint32_t cs, uint32_t eFlags)
Le handler de gestion effective des IRQ.
int i8259aAjouterHandler(int numIRQ, void(*handler)(void *), void *private)
Ajout d'un handler.
void i8259aAutoriserIRQ(uint8_t numIRQ)
Masquage d'une IRQ.
void i8259aInit(uint8_t intBase)
i8259aClient handlerClients[I8259A_NB_IRQ][MANUX_NB_HANDLER_PAR_IRQ]
int nbHandlerClients[I8259A_NB_IRQ]
void i8259aAckIRQ(uint8_t numIRQ)
Accusé de réception d'une IRQ.
#define outb(port, octet)
Emission d'un octet sur un port.
#define inb(port, adresseOctet)
Lecture d'un octet depuis un port.
#define PIC_ESCLAVE_PORT_COMMANDE
#define PIC_MAITRE_PORT_DONNEE
#define PIC_ESCLAVE_PORT_DONNEE
#define PIC_MAITRE_PORT_COMMANDE
Structure permettant de définir un matériel "client".