From: Martin Mares Date: Tue, 27 Jun 2006 13:16:18 +0000 (+0200) Subject: Improved the example and added rules for building it. X-Git-Tag: v3.0.0~53 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=14d4f9890a3a8073a855e496bba3c25699ee165f;p=pciutils.git Improved the example and added rules for building it. --- diff --git a/ChangeLog b/ChangeLog index 02f9953..06f804e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2006-06-27 Martin Mares + * lib/Makefile, Makefile: Added rules for building and cleaning the example. + + * lib/example.c: Show how to use PCI_FILL_CLASS and used another register + for demonstrating the config space accesses. The example is still very + incomplete, though. + * lib/pci.h, lib/generic.c: Added PCI_FILL_CLASS. * lib/sysfs.c: Fetch device ID and class from sysfs, because they can diff --git a/Makefile b/Makefile index 38c471e..a270318 100644 --- a/Makefile +++ b/Makefile @@ -58,7 +58,7 @@ update-pciids: update-pciids.sh clean: rm -f `find . -name "*~" -o -name "*.[oa]" -o -name "\#*\#" -o -name TAGS -o -name core` - rm -f update-pciids lspci setpci lib/config.* *.8 pci.ids.* + rm -f update-pciids lspci setpci lib/config.* lib/example *.8 pci.ids.* rm -rf maint/dist distclean: clean diff --git a/lib/Makefile b/lib/Makefile index 2839db5..ce7cf77 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -68,3 +68,5 @@ dump.o: dump.c $(INCL) names.o: names.c $(INCL) filter.o: filter.c $(INCL) nbsd-libpci.o: nbsd-libpci.c $(INCL) + +example: example.c $(PCILIB) diff --git a/lib/example.c b/lib/example.c index 02b2921..e7b5b66 100644 --- a/lib/example.c +++ b/lib/example.c @@ -21,11 +21,11 @@ int main(void) pci_scan_bus(pacc); /* We want to get the list of devices */ for(dev=pacc->devices; dev; dev=dev->next) /* Iterate over all devices */ { - pci_fill_info(dev, PCI_FILL_IDENT | PCI_FILL_BASES); /* Fill in header info we need */ - c = pci_read_word(dev, PCI_CLASS_DEVICE); /* Read config register directly */ - printf("%02x:%02x.%d vendor=%04x device=%04x class=%04x irq=%d base0=%lx\n", + pci_fill_info(dev, PCI_FILL_IDENT | PCI_FILL_BASES | PCI_FILL_CLASS); /* Fill in header info we need */ + c = pci_read_byte(dev, PCI_INTERRUPT_PIN); /* Read config register directly */ + printf("%02x:%02x.%d vendor=%04x device=%04x class=%04x irq=%d (pin %d) base0=%lx\n", dev->bus, dev->dev, dev->func, dev->vendor_id, dev->device_id, - c, dev->irq, dev->base_addr[0]); + dev->device_class, dev->irq, c, dev->base_addr[0]); } pci_cleanup(pacc); /* Close everything */ return 0;