]> mj.ucw.cz Git - pciutils.git/blobdiff - lib/pci.h
CXL: Capability vendor ID changed
[pciutils.git] / lib / pci.h
index 47e30111404db4949ecc33cf2234885dc28a3b2d..f2ebccd338bf1ee6f12dbc8aee05873f86120b25 100644 (file)
--- a/lib/pci.h
+++ b/lib/pci.h
@@ -126,7 +126,7 @@ struct pci_dev {
   u8 bus, dev, func;                   /* Bus inside domain, device and function */
 
   /* These fields are set by pci_fill_info() */
-  int known_fields;                    /* Set of info fields already known */
+  unsigned int known_fields;           /* Set of info fields already known (see pci_fill_info()) */
   u16 vendor_id, device_id;            /* Identity of the device */
   u16 device_class;                    /* PCI device class */
   int irq;                             /* IRQ number */
@@ -149,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;                           /* Auxiliary data */
+  void *aux;                           /* Auxiliary data for use by the back-end */
   struct pci_property *properties;     /* A linked list of extra properties */
   struct pci_cap *last_cap;            /* Last capability in the list */
 };
@@ -175,6 +175,16 @@ int pci_write_block(struct pci_dev *, int pos, u8 *buf, int len) PCI_ABI;
  *
  * Some properties are stored directly in the pci_dev structure.
  * The remaining ones can be accessed through pci_get_string_property().
+ *
+ * pci_fill_info() returns the current value of pci_dev->known_fields.
+ * This is a bit mask of all fields, which were already obtained during
+ * the lifetime of the device. This includes fields which are not supported
+ * by the particular device -- in that case, the field is left at its default
+ * value, which is 0 for integer fields and NULL for pointers. On the other
+ * hand, we never consider known fields unsupported by the current back-end;
+ * such fields always contain the default value.
+ *
+ * XXX: flags and the result should be unsigned, but we do not want to break the ABI.
  */
 
 int pci_fill_info(struct pci_dev *, int flags) PCI_ABI;
@@ -194,6 +204,7 @@ char *pci_get_string_property(struct pci_dev *d, u32 prop) PCI_ABI;
 #define PCI_FILL_NUMA_NODE     0x0800
 #define PCI_FILL_IO_FLAGS      0x1000
 #define PCI_FILL_DT_NODE       0x2000          /* Device tree node */
+#define PCI_FILL_IOMMU_GROUP   0x4000
 #define PCI_FILL_RESCAN                0x00010000
 
 void pci_setup_cache(struct pci_dev *, u8 *cache, int len) PCI_ABI;