]> mj.ucw.cz Git - pciutils.git/blobdiff - lib/pci.h
Rewritten support for UDEV's HWDB
[pciutils.git] / lib / pci.h
index 7a5a6b80c9f9cde500b240b14c49684d7d6bb97c..8b1d02454657339b318e17099274bdc469c71d9e 100644 (file)
--- a/lib/pci.h
+++ b/lib/pci.h
@@ -1,7 +1,7 @@
 /*
  *     The PCI Library
  *
- *     Copyright (c) 1997--2009 Martin Mares <mj@ucw.cz>
+ *     Copyright (c) 1997--2014 Martin Mares <mj@ucw.cz>
  *
  *     Can be freely distributed and used under the terms of the GNU GPL.
  */
@@ -16,7 +16,7 @@
 #include "header.h"
 #include "types.h"
 
-#define PCI_LIB_VERSION 0x030100
+#define PCI_LIB_VERSION 0x030200
 
 #ifndef PCI_ABI
 #define PCI_ABI
@@ -39,7 +39,8 @@ enum pci_access_type {
   PCI_ACCESS_AIX_DEVICE,               /* /dev/pci0, /dev/bus0, etc. */
   PCI_ACCESS_NBSD_LIBPCI,              /* NetBSD libpci */
   PCI_ACCESS_OBSD_DEVICE,              /* OpenBSD /dev/pci */
-  PCI_ACCESS_DUMP,                     /* Dump file */
+  PCI_ACCESS_DUMP,                         /* Dump file */
+  PCI_ACCESS_DARWIN,                   /* Darwin */
   PCI_ACCESS_MAX
 };
 
@@ -72,6 +73,8 @@ struct pci_access {
   struct id_bucket *current_id_bucket;
   int id_load_failed;
   int id_cache_status;                 /* 0=not read, 1=read, 2=dirty */
+  struct udev *id_udev;                        /* names-hwdb.c */
+  struct udev_hwdb *id_udev_hwdb;
   int fd;                              /* proc/sys: fd for config space */
   int fd_rw;                           /* proc/sys: fd opened read-write */
   int fd_pos;                          /* proc/sys: current position */
@@ -130,6 +133,8 @@ struct pci_dev {
   pciaddr_t rom_size;                  /* Expansion ROM size */
   struct pci_cap *first_cap;           /* List of capabilities */
   char *phy_slot;                      /* Physical slot */
+  char *module_alias;                  /* Linux kernel module alias */
+  char *label;                         /* Device name as exported by BIOS */
 
   /* Fields used internally: */
   struct pci_access *access;
@@ -165,6 +170,8 @@ int pci_fill_info(struct pci_dev *, int flags) PCI_ABI; /* Fill in device inform
 #define PCI_FILL_CAPS          64
 #define PCI_FILL_EXT_CAPS      128
 #define PCI_FILL_PHYS_SLOT     256
+#define PCI_FILL_MODULE_ALIAS  512
+#define PCI_FILL_LABEL         1024
 #define PCI_FILL_RESCAN                0x10000
 
 void pci_setup_cache(struct pci_dev *, u8 *cache, int len) PCI_ABI;
@@ -235,6 +242,7 @@ enum pci_lookup_mode {
   PCI_LOOKUP_SKIP_LOCAL = 0x100000,    /* Do not consult local database */
   PCI_LOOKUP_CACHE = 0x200000,         /* Consult the local cache before using DNS */
   PCI_LOOKUP_REFRESH_CACHE = 0x400000, /* Forget all previously cached entries, but still allow updating the cache */
+  PCI_LOOKUP_NO_HWDB = 0x800000,       /* Do not ask udev's hwdb */
 };
 
 #endif