pci: merge mapping structures for linux and bsd
[dpdk.git] / lib / librte_eal / common / include / rte_pci.h
index b4f38bc..0a2ef09 100644 (file)
@@ -220,6 +220,34 @@ struct rte_pci_driver {
 /** Device driver supports detaching capability */
 #define RTE_PCI_DRV_DETACHABLE 0x0010
 
+/**
+ * A structure describing a PCI mapping.
+ */
+struct pci_map {
+       void *addr;
+       char *path;
+       uint64_t offset;
+       uint64_t size;
+       uint64_t phaddr;
+};
+
+/**
+ * A structure describing a mapped PCI resource.
+ * For multi-process we need to reproduce all PCI mappings in secondary
+ * processes, so save them in a tailq.
+ */
+struct mapped_pci_resource {
+       TAILQ_ENTRY(mapped_pci_resource) next;
+
+       struct rte_pci_addr pci_addr;
+       char path[PATH_MAX];
+       int nb_maps;
+       struct pci_map maps[PCI_MAX_RESOURCE];
+};
+
+/** mapped pci device list */
+TAILQ_HEAD(mapped_pci_res_list, mapped_pci_resource);
+
 /**< Internal use only - Macro used by pci addr parsing functions **/
 #define GET_PCIADDR_FIELD(in, fd, lim, dlm)                   \
 do {                                                               \
@@ -228,7 +256,7 @@ do {                                                               \
        errno = 0;                                              \
        val = strtoul((in), &end, 16);                          \
        if (errno != 0 || end[0] != (dlm) || val > (lim))       \
-               return (-EINVAL);                               \
+               return -EINVAL;                                 \
        (fd) = (typeof (fd))val;                                \
        (in) = end + 1;                                         \
 } while(0)
@@ -253,7 +281,7 @@ eal_parse_pci_BDF(const char *input, struct rte_pci_addr *dev_addr)
        GET_PCIADDR_FIELD(input, dev_addr->bus, UINT8_MAX, ':');
        GET_PCIADDR_FIELD(input, dev_addr->devid, UINT8_MAX, '.');
        GET_PCIADDR_FIELD(input, dev_addr->function, UINT8_MAX, 0);
-       return (0);
+       return 0;
 }
 
 /**
@@ -275,7 +303,7 @@ eal_parse_pci_DomBDF(const char *input, struct rte_pci_addr *dev_addr)
        GET_PCIADDR_FIELD(input, dev_addr->bus, UINT8_MAX, ':');
        GET_PCIADDR_FIELD(input, dev_addr->devid, UINT8_MAX, '.');
        GET_PCIADDR_FIELD(input, dev_addr->function, UINT8_MAX, 0);
-       return (0);
+       return 0;
 }
 #undef GET_PCIADDR_FIELD