18#define PCI_NB_EQUIP_PAR_BUS 8
23#ifndef PCI_CONFIG_ADDRESS
24# define PCI_CONFIG_ADDRESS 0xCF8
26#ifndef PCI_CONFIG_DATA
27# define PCI_CONFIG_DATA 0xCFC
33#define MANUX_NB_BUS_PCI 1
38#define PCI_ID_VENDEUR 0x00
39#define PCI_ID_EQUIPEMENT 0x02
40#define PCI_REVISION 0x08
41#define PCI_INTERRUPTION 0x3C
52#define PCI_BAR_IO 0x01
53#define PCI_AUCUN_VENDEUR 0xFFFF
101 offset & ((
uint16_t)~0x3)) >> ((offset & 2) * 8))& 0xFFFF;
111 result = (
uint8_t)(
PCILireLong(bus, slot, fonction, offset & ~0x3) >> ((offset & 3) * 8))& 0xFF;
122void PCIEnumerationDesEquipementsDuBus(
uint8_t bus)
188 PCIEnumerationDesEquipementsDuBus(bus);
208 int result = precedent;
#define MANUX_NB_MAX_EQUIPEMENTS_PCI
void printk(char *format,...)
Fonction principale d'affichage dans le noyau.
#define inl(port, adresseLong)
Lecture d'un long depuis un port.
#define outl(port, lng)
Emission d'un long sur un port.
#define DBG_KERNEL_A_FAIRE
#define printk_debug(lvl, fmt, args...)
#define PCI_ID_EQUIPEMENT
int PCINombreEquipements
: Une structure qui contient la description des équipements PCI détectés
uint16_t PCILireMot(uint8_t bus, uint8_t slot, uint8_t fonction, uint8_t offset)
#define MANUX_NB_BUS_PCI
: Le nombre de bus
int PCIObtenirProchainEquipement(uint16_t vendeur, uint16_t equipement, int precedent)
: récuperer l'identifiant du prochain équipement PCI
uint8_t PCILireOctet(uint8_t bus, uint8_t slot, uint8_t fonction, uint8_t offset)
#define PCI_AUCUN_VENDEUR
#define PCI_NB_EQUIP_PAR_BUS
void PCIEnumerationDesEquipements(void)
: recherche des équipements PCI disponibles
PCIEquipement * PCIEquipementNumero(int n)
PCIEquipement PCIEquipements[MANUX_NB_MAX_EQUIPEMENTS_PCI]
#define PCI_CONFIG_ADDRESS
Les ports d'E/S de configuration du PCI.
uint32_t PCILireLong(uint8_t bus, uint8_t slot, uint8_t fonction, uint8_t offset)
: Lecture d'un mot sur le registre de config du PCI
: structure permettant d'identifier un équipement PCI
struct _PCIEquipement::_PCIConfigAddress configAddress