Linux |
CentOS 5.3 |
|
pcibios_find_device(9) |
pcibios_find_class, pcibios_find_device − trouver une classe ou un périphérique PCI |
#include <linux/bios32.h> |
int pcibios_find_class(unsigned int class_code, unsigned short index, unsigned char* bus, unsigned char* device_fn); |
int pcibios_find_device(unsigned short vendor, unsigned short device_id ",unsigned short "index, unsigned char* bus, unsigned char* device_fn); |
La fonction pcibios_find_class recherche une classe ou un périphérique PCI particulier sur le bus PCI. class représente une catégorie de périphériques : storage, network, display, et memory. Les classes sont définies par les spécifications du bus PCI. Le class_code est recherché dans le double mot situé à l’adresse 0x08 dans l’espace mémoire de configuration du périphérique. La fonction pcibios_find_device recherche un périphérique sur le bus PCI qui corresponde aux numéros de périphériques et de vendeur. Les identifications de périphériques sont assignées à la signature PCI. Les vendeurs choisissent eux-même les « numéros d’identité » des périphériques qu’ils développent. Les numéros de vendeur et d’identité du périphérique sont stockés dans le double mot 0x00 dans la mémoire de configuration. pcibios_find_class et pcibios_find_device possèdent un paramètre supplémentaire index , qui est utilisé pour sélectionner le périphérique indiqué s’il y a plusieurs périphériques trouvés. Un index 0 sélectionne le premier périphérique trouvé, 1 le second, etc. Les paramètres bus et device_fn sont des cookies spécifiques au PCI et sont passés aux autres fonctions pcibios pour avoir accès à l’espace mémoire de configuration PCI ou le périphérique concerné. |
En cas de succès, ces fonctions renvoient PCIBIOS_SUCCESSFUL. Sinon, l’un des codes d’erreur suivants est renvoyé : |
PCIBIOS_DEVICE_NOT_FOUND |
Aucun périphérique ne correspond aux critères de recherche, |
PCIBIOS_BAD_VENDOR_ID |
Le numéro d’identification du vendeur n’est pas valide (0xffff n’est pas une identification valide). |
PCIBIOS_FUNC_NOT_SUPPRTED |
Le sous-sytème PCI n’est pas accessible ; il n’existe probablement pas. |
Linux 1.0+ |
pcibios_present(9) /usr/include/linux/pci.h, /usr/include/linux/bios32.h PCI Local Bus Specification |
Kirk Petersen (kirk@speakeasy.org) |
Thierry Vignaud <tvignaud@mandrakesoft.com>, 1999 |
pcibios_find_device(9) |