[Accel-config] [PATCH v3 03/14] 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.