bus/fslmc: support scanned device count
FSLMC bus detects a multiple type of logical objects representing components of the datapath. Using the type of device, a newly introduced API rte_fslmc_get_device_count can return the count of devices scanned of that device type. Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
This commit is contained in:
parent
8052bbd9d5
commit
42dcf0e2e7
@ -27,6 +27,14 @@
|
||||
struct rte_fslmc_bus rte_fslmc_bus;
|
||||
uint8_t dpaa2_virt_mode;
|
||||
|
||||
uint32_t
|
||||
rte_fslmc_get_device_count(enum rte_dpaa2_dev_type device_type)
|
||||
{
|
||||
if (device_type > DPAA2_DEVTYPE_MAX)
|
||||
return 0;
|
||||
return rte_fslmc_bus.device_count[device_type];
|
||||
}
|
||||
|
||||
static void
|
||||
cleanup_fslmc_device_list(void)
|
||||
{
|
||||
@ -138,6 +146,9 @@ scan_one_fslmc_device(char *dev_name)
|
||||
else
|
||||
dev->dev_type = DPAA2_UNKNOWN;
|
||||
|
||||
/* Update the device found into the device_count table */
|
||||
rte_fslmc_bus.device_count[dev->dev_type]++;
|
||||
|
||||
t_ptr = strtok(NULL, ".");
|
||||
if (!t_ptr) {
|
||||
FSLMC_BUS_LOG(ERR, "Incorrect device string observed (%s).",
|
||||
@ -382,6 +393,7 @@ struct rte_fslmc_bus rte_fslmc_bus = {
|
||||
},
|
||||
.device_list = TAILQ_HEAD_INITIALIZER(rte_fslmc_bus.device_list),
|
||||
.driver_list = TAILQ_HEAD_INITIALIZER(rte_fslmc_bus.driver_list),
|
||||
.device_count = {0},
|
||||
};
|
||||
|
||||
RTE_REGISTER_BUS(fslmc, rte_fslmc_bus.bus);
|
||||
|
@ -97,5 +97,6 @@ DPDK_18.02 {
|
||||
dpaa2_virt_mode;
|
||||
qbman_fq_query_state;
|
||||
qbman_fq_state_frame_count;
|
||||
rte_fslmc_get_device_count;
|
||||
|
||||
} DPDK_17.11;
|
||||
|
@ -62,7 +62,8 @@ enum rte_dpaa2_dev_type {
|
||||
DPAA2_CI, /**< DPCI type device */
|
||||
DPAA2_MPORTAL, /**< DPMCP type device */
|
||||
/* Unknown device placeholder */
|
||||
DPAA2_UNKNOWN
|
||||
DPAA2_UNKNOWN,
|
||||
DPAA2_DEVTYPE_MAX,
|
||||
};
|
||||
|
||||
TAILQ_HEAD(rte_dpaa2_object_list, rte_dpaa2_object);
|
||||
@ -124,8 +125,8 @@ struct rte_fslmc_bus {
|
||||
/**< FSLMC DPAA2 Device list */
|
||||
struct rte_fslmc_driver_list driver_list;
|
||||
/**< FSLMC DPAA2 Driver list */
|
||||
int device_count;
|
||||
/**< Optional: Count of devices on bus */
|
||||
int device_count[DPAA2_DEVTYPE_MAX];
|
||||
/**< Count of all devices scanned */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -165,6 +166,17 @@ RTE_PMD_EXPORT_NAME(nm, __COUNTER__)
|
||||
*/
|
||||
void rte_fslmc_object_register(struct rte_dpaa2_object *object);
|
||||
|
||||
/**
|
||||
* Count of a particular type of DPAA2 device scanned on the bus.
|
||||
*
|
||||
* @param dev_type
|
||||
* Type of device as rte_dpaa2_dev_type enumerator
|
||||
* @return
|
||||
* >=0 for count; 0 indicates either no device of the said type scanned or
|
||||
* invalid device type.
|
||||
*/
|
||||
uint32_t rte_fslmc_get_device_count(enum rte_dpaa2_dev_type device_type);
|
||||
|
||||
/** Helper for DPAA2 object registration */
|
||||
#define RTE_PMD_REGISTER_DPAA2_OBJECT(nm, dpaa2_obj) \
|
||||
RTE_INIT(dpaa2objinitfn_ ##nm); \
|
||||
|
Loading…
Reference in New Issue
Block a user