bus: introduce scan policies
authorGaetan Rivet <gaetan.rivet@6wind.com>
Fri, 7 Jul 2017 00:04:28 +0000 (02:04 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Sat, 8 Jul 2017 22:08:18 +0000 (00:08 +0200)
Scan policies describe the way a bus should scan the system to search
for possible devices.

Three flags are introduced:
  RTE_BUS_SCAN_UNDEFINED: Configuration is irrelevant for this bus
  RTE_BUS_SCAN_WHITELIST: Scanning should be limited to declared devices
  RTE_BUS_SCAN_BLACKLIST: Scanning should exclude only declared devices

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
lib/librte_eal/common/include/rte_bus.h

index aebf57e..37cc230 100644 (file)
@@ -157,6 +157,22 @@ typedef int (*rte_bus_unplug_t)(struct rte_device *dev);
  */
 typedef int (*rte_bus_parse_t)(const char *name, void *addr);
 
+/**
+ * Bus scan policies
+ */
+enum rte_bus_scan_mode {
+       RTE_BUS_SCAN_UNDEFINED,
+       RTE_BUS_SCAN_WHITELIST,
+       RTE_BUS_SCAN_BLACKLIST,
+};
+
+/**
+ * A structure used to configure bus operations.
+ */
+struct rte_bus_conf {
+       enum rte_bus_scan_mode scan_mode; /**< Scan policy. */
+};
+
 /**
  * A structure describing a generic bus.
  */
@@ -169,6 +185,7 @@ struct rte_bus {
        rte_bus_plug_t plug;         /**< Probe single device for drivers */
        rte_bus_unplug_t unplug;     /**< Remove single device from driver */
        rte_bus_parse_t parse;       /**< Parse a device name */
+       struct rte_bus_conf conf;    /**< Bus configuration */
 };
 
 /**