Listing des périphériques pci

Description

Salut,
ce code réalise le listing des cartes PCIs du système.
Il a été écrit pour montrer les possibilités d'intéractions sur la gestion des cartes PCI en passant uniquement par le Bios système. Ce dernier point permet un portage facile de ce code sous windows ou dos car seules "printf" et "ioperm" sont appelés, et ils ont été appelé via un "call" pour permettre une couche d'abstraction sur ces 2 fonctions.

Ces accés au bus PCI peuvent servir d'exemple pour l'écriture d'un micro-OS par exemple ou alors pour l'écriture d'un bootstrap lorsqu'il n'y a pas de fonction de gestion des périphériques PCI fourni par l'OS.

Dans cette exemple, je n'effectue que la lecture du VendorID et du DeviceID, mais on peut tout à fait lire les BAR0...BAR4 (Base Address Register 0..4) des cartes PCIs pour ensuite les remapper dans l'espace d'adressage local via un appel à "mmap" et s'en servir ...

Source / Exemple :


Dans le zip.

Conclusion :


Pour compiler cet exemple, il faut utiliser nasm puis gcc et non ld, car on utilise des appels aux fonctions de la libc :
nasm -f elf pci_scan.asm
gcc pci_scan.o -o pci_scan

Ensuite, l'utilisation des IOs < 1024, il faut être root pour pouvoir l'executer ... (et heureusement car on réalise un accés au système physique)

Voilà ...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.