[igt-dev] [PATCH i-g-t] lib/sysfs: helper for number of GTs

priyanka.dandamudi at intel.com priyanka.dandamudi at intel.com
Wed Apr 27 14:59:23 UTC 2022


From: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>

Added convenience function returning number of GTs.
Reads number of GT sysfs entries and returns number
of GTs, if atleast one GT entry is found.

v2: Add an assert condition to check for atleast one GT entry. (Priyanka)

Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>
Signed-off-by: Priyanka Dandamudi <priyanka.dandamudi at intel.com>
---
 lib/igt_sysfs.c | 22 ++++++++++++++++++++++
 lib/igt_sysfs.h |  1 +
 2 files changed, 23 insertions(+)

diff --git a/lib/igt_sysfs.c b/lib/igt_sysfs.c
index fe77afd7..ee71a566 100644
--- a/lib/igt_sysfs.c
+++ b/lib/igt_sysfs.c
@@ -264,6 +264,28 @@ int igt_sysfs_gt_open(int device, int gt)
 	return open(path, O_RDONLY);
 }
 
+/**
+ * igt_sysfs_get_num_gt:
+ * @device: fd of the device
+ *
+ * Reads number of GT sysfs entries.
+ * Asserts for atleast one GT entry.
+ * (see igt_sysfs_gt_path).
+ *
+ * Returns: Number of GTs.
+ */
+int igt_sysfs_get_num_gt(int device)
+{
+	int num_gts = 0;
+	char path[96];
+
+	while (igt_sysfs_gt_path(device, num_gts, path, sizeof(path)))
+		++num_gts;
+
+	igt_assert_f(num_gts > 0, "No GT sysfs entry is found.");
+
+	return num_gts;
+}
 /**
  * igt_sysfs_write:
  * @dir: directory for the device from igt_sysfs_open()
diff --git a/lib/igt_sysfs.h b/lib/igt_sysfs.h
index 8e39b8fa..1c9791a1 100644
--- a/lib/igt_sysfs.h
+++ b/lib/igt_sysfs.h
@@ -94,6 +94,7 @@ char *igt_sysfs_path(int device, char *path, int pathlen);
 int igt_sysfs_open(int device);
 char *igt_sysfs_gt_path(int device, int gt, char *path, int pathlen);
 int igt_sysfs_gt_open(int device, int gt);
+int igt_sysfs_get_num_gt(int device);
 bool igt_sysfs_has_attr(int dir, const char *attr);
 const char *igt_sysfs_dir_id_to_name(int dir, enum i915_attr_id id);
 const char *igt_sysfs_path_id_to_name(const char *path, enum i915_attr_id id);
-- 
2.25.1



More information about the igt-dev mailing list