[Accel-config] [PATCH v2 03/12] accel-config: Add lib functions to list mdevs and retrieve mdev properties
ramesh.thomas at intel.com
| Newsgroups | dev.linux.lists.accel-config |
|---|---|
| Message-ID | <[email protected]> |
From: Ramesh Thomas <ramesh.thomas(a)intel.com>
Create library functions for querrying mdev details
- Functions to retrieve first and next mdev in list
- Macro to iterate mdev list
- Functions to retrieve mdev uuid and type
Signed-off-by: Ramesh Thomas <ramesh.thomas(a)intel.com>
---
accfg/lib/libaccel-config.sym | 9 +++++++++
accfg/lib/libaccfg.c | 22 ++++++++++++++++++++++
accfg/libaccel_config.h | 11 +++++++++++
3 files changed, 42 insertions(+)
diff --git a/accfg/lib/libaccel-config.sym b/accfg/lib/libaccel-config.sym
index 471e06a..a857152 100644
--- a/accfg/lib/libaccel-config.sym
+++ b/accfg/lib/libaccel-config.sym
@@ -133,3 +133,12 @@ global:
accfg_wq_set_max_batch_size;
accfg_wq_set_max_transfer_size;
} LIBACCFG_6;
+
+LIBACCFG_8 {
+global:
+ accfg_device_first_mdev;
+ accfg_device_next_mdev;
+ accfg_mdev_get_uuid;
+ accfg_mdev_get_type;
+ accfg_mdev_basenames;
+} LIBACCFG_7;
diff --git a/accfg/lib/libaccfg.c b/accfg/lib/libaccfg.c
index 27f097f..2cd4e3c 100644
--- a/accfg/lib/libaccfg.c
+++ b/accfg/lib/libaccfg.c
@@ -957,6 +957,28 @@ static void engines_init(struct accfg_device *device)
add_engine);
}
+ACCFG_EXPORT struct accfg_device_mdev *accfg_device_first_mdev(struct accfg_device *device)
+{
+ return list_top(&device->mdev_list, struct accfg_device_mdev, list);
+}
+
+ACCFG_EXPORT struct accfg_device_mdev *accfg_device_next_mdev(struct accfg_device_mdev *mdev)
+{
+ struct accfg_device *device = mdev->device;
+
+ return list_next(&device->mdev_list, mdev, list);
+}
+
+ACCFG_EXPORT void accfg_mdev_get_uuid(struct accfg_device_mdev *mdev, uuid_t uuid)
+{
+ uuid_copy(uuid, mdev->uuid);
+}
+
+ACCFG_EXPORT enum accfg_mdev_type accfg_mdev_get_type(struct accfg_device_mdev *mdev)
+{
+ return mdev->type;
+}
+
/**
* accfg_device_get_first - retrieve first device in the system
* @ctx: context established by accfg_new
diff --git a/accfg/libaccel_config.h b/accfg/libaccel_config.h
index e89bd40..a55bfde 100644
--- a/accfg/libaccel_config.h
+++ b/accfg/libaccel_config.h
@@ -184,6 +184,17 @@ int accfg_device_is_active(struct accfg_device *device);
int accfg_device_get_cmd_status(struct accfg_device *device);
const char * accfg_device_get_cmd_status_str(struct accfg_device *device);
+struct accfg_device_mdev;
+struct accfg_device_mdev *accfg_device_first_mdev(struct accfg_device *device);
+struct accfg_device_mdev *accfg_device_next_mdev(struct accfg_device_mdev *mdev);
+void accfg_mdev_get_uuid(struct accfg_device_mdev *mdev, uuid_t uuid);
+enum accfg_mdev_type accfg_mdev_get_type(struct accfg_device_mdev *mdev);
+
+#define accfg_device_mdev_foreach(device, mdev) \
+ for (mdev = accfg_device_first_mdev(device); \
+ mdev != NULL; \
+ mdev = accfg_device_next_mdev(mdev))
+
/* libaccfg function for group */
struct accfg_group;
struct accfg_group *accfg_group_get_first(struct accfg_device *device);
--
2.26.2