X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=lib%2Fpci.h;h=3abb5d5cc9f0d441db2b3fd9bfd014b2e36fbe35;hb=6d701ce33eb2a420ce196be731ddf11d2d1fcc7f;hp=10ba831a73978625e1b4fb3c5a0ec5dfcc531725;hpb=508c53eb181bebdc770de1e9908925bd662db7ff;p=thirdparty%2Fpciutils.git diff --git a/lib/pci.h b/lib/pci.h index 10ba831..3abb5d5 100644 --- a/lib/pci.h +++ b/lib/pci.h @@ -1,7 +1,7 @@ /* * The PCI Library * - * Copyright (c) 1997--2015 Martin Mares + * Copyright (c) 1997--2017 Martin Mares * * 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;