]> mj.ucw.cz Git - pciutils.git/commitdiff
Added a simple example of how to use the library.
authorMartin Mares <mj@ucw.cz>
Thu, 9 Mar 2000 08:38:29 +0000 (08:38 +0000)
committerMartin Mares <mj@ucw.cz>
Fri, 5 May 2006 12:10:40 +0000 (14:10 +0200)
ChangeLog
lib/example.c [new file with mode: 0644]

index 9839b06c253023f4be3d258c3ce5e775ba99356f..e574c0fe117bd8849ab7e5dab6761b651ac66711 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 Thu Mar  9 13:11:39 2000  Martin Mares  <mj@albireo.ucw.cz>
 
+       * lib/example.c: Added a simple example of how to use
+       the library.
+
        * lspci.man, setpci.man: Revealed --version. Well spotted
        by Adam Sulmicki.
 
diff --git a/lib/example.c b/lib/example.c
new file mode 100644 (file)
index 0000000..02b2921
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ *     The PCI Library -- Example of use (simplistic lister of PCI devices)
+ *
+ *     Written by Martin Mares and put to public domain. You can do
+ *     with it anything you want, but I don't give you any warranty.
+ */
+
+#include <stdio.h>
+
+#include "pci.h"
+
+int main(void)
+{
+  struct pci_access *pacc;
+  struct pci_dev *dev;
+  unsigned int c;
+
+  pacc = pci_alloc();          /* Get the pci_access structure */
+  /* Set all options you want -- here we stick with the defaults */
+  pci_init(pacc);              /* Initialize the PCI library */
+  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",
+            dev->bus, dev->dev, dev->func, dev->vendor_id, dev->device_id,
+            c, dev->irq, dev->base_addr[0]);
+    }
+  pci_cleanup(pacc);           /* Close everything */
+  return 0;
+}