]> git.ipfire.org Git - thirdparty/pciutils.git/blobdiff - lib/pci.h
Add device-tree node path to the verbose output
[thirdparty/pciutils.git] / lib / pci.h
index 10ba831a73978625e1b4fb3c5a0ec5dfcc531725..3abb5d5cc9f0d441db2b3fd9bfd014b2e36fbe35 100644 (file)
--- a/lib/pci.h
+++ b/lib/pci.h
@@ -1,7 +1,7 @@
 /*
  *     The PCI Library
  *
- *     Copyright (c) 1997--2015 Martin Mares <mj@ucw.cz>
+ *     Copyright (c) 1997--2017 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 0x030400
+#define PCI_LIB_VERSION 0x030506
 
 #ifndef PCI_ABI
 #define PCI_ABI
@@ -29,7 +29,7 @@
 struct pci_methods;
 
 enum pci_access_type {
-  /* Known access methods, remember to update access.c as well */
+  /* Known access methods, remember to update init.c as well */
   PCI_ACCESS_AUTO,                     /* Autodetection */
   PCI_ACCESS_SYS_BUS_PCI,              /* Linux /sys/bus/pci */
   PCI_ACCESS_PROC_BUS_PCI,             /* Linux /proc/bus/pci */
@@ -41,6 +41,7 @@ enum pci_access_type {
   PCI_ACCESS_OBSD_DEVICE,              /* OpenBSD /dev/pci */
   PCI_ACCESS_DUMP,                     /* Dump file */
   PCI_ACCESS_DARWIN,                   /* Darwin */
+  PCI_ACCESS_SYLIXOS_DEVICE,   /* SylixOS pci */
   PCI_ACCESS_MAX
 };
 
@@ -119,7 +120,8 @@ struct pci_param *pci_walk_params(struct pci_access *acc, struct pci_param *prev
 
 struct pci_dev {
   struct pci_dev *next;                        /* Next device in the chain */
-  u16 domain;                          /* PCI domain (host bridge) */
+  u16 domain_16;                       /* 16-bit version of the PCI domain for backward compatibility */
+                                       /* 0xffff if the real domain doesn't fit in 16 bits */
   u8 bus, dev, func;                   /* Bus inside domain, device and function */
 
   /* These fields are set by pci_fill_info() */
@@ -135,7 +137,11 @@ struct pci_dev {
   char *phy_slot;                      /* Physical slot */
   char *module_alias;                  /* Linux kernel module alias */
   char *label;                         /* Device name as exported by BIOS */
+  char *dt_node;                       /* Path to the device-tree node for this device */
   int numa_node;                       /* NUMA node */
+  pciaddr_t flags[6];                  /* PCI_IORESOURCE_* flags for regions */
+  pciaddr_t rom_flags;                 /* PCI_IORESOURCE_* flags for expansion ROM */
+  int domain;                          /* PCI domain (host bridge) */
 
   /* Fields used internally: */
   struct pci_access *access;
@@ -143,7 +149,7 @@ struct pci_dev {
   u8 *cache;                           /* Cached config registers */
   int cache_len;
   int hdrtype;                         /* Cached low 7 bits of header type, -1 if unknown */
-  void *aux;                           /* Auxillary data */
+  void *aux;                           /* Auxiliary data */
 };
 
 #define PCI_ADDR_IO_MASK (~(pciaddr_t) 0x3)
@@ -174,6 +180,8 @@ int pci_fill_info(struct pci_dev *, int flags) PCI_ABI; /* Fill in device inform
 #define PCI_FILL_MODULE_ALIAS  0x0200
 #define PCI_FILL_LABEL         0x0400
 #define PCI_FILL_NUMA_NODE     0x0800
+#define PCI_FILL_IO_FLAGS      0x1000
+#define PCI_FILL_DT_NODE       0x2000
 #define PCI_FILL_RESCAN                0x00010000
 
 void pci_setup_cache(struct pci_dev *, u8 *cache, int len) PCI_ABI;