[igt-dev] [i-g-t 01/20] lib: Interface to close the drm fd

Bhanuprakash Modem bhanuprakash.modem at intel.com
Tue May 16 16:50:39 UTC 2023


Add new helper drm_close_driver() to close the drm fd. Now
every user could call drm_close_driver() instead of close().

V2: - Fix commit message
    - Add debug prints

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
---
 lib/drmtest.c | 20 ++++++++++++++++++++
 lib/drmtest.h |  1 +
 2 files changed, 21 insertions(+)

diff --git a/lib/drmtest.c b/lib/drmtest.c
index 7630bb793..41ad2694c 100644
--- a/lib/drmtest.c
+++ b/lib/drmtest.c
@@ -605,6 +605,26 @@ int drm_open_driver(int chipset)
 	return fd;
 }
 
+/**
+ * __drm_close_driver:
+ * @fd: a drm file descriptor
+ *
+ * Close the drm file descriptor @fd.
+ *
+ * Returns: 0 on success or -1 on error.
+ */
+int drm_close_driver(int fd)
+{
+	/* Avoid closing standard file descriptors (0, 1, and 2). */
+	if (fd < 3) {
+		igt_debug("Don't attempt to close standard/invalid file "
+			  "descriptor: %d\n", fd);
+		return -1;
+	}
+
+	return close(fd);
+}
+
 /**
  * drm_open_driver_master:
  * @chipset: OR'd flags for each chipset to search, eg. #DRIVER_INTEL
diff --git a/lib/drmtest.h b/lib/drmtest.h
index ae86ee19a..9c3ea5d14 100644
--- a/lib/drmtest.h
+++ b/lib/drmtest.h
@@ -105,6 +105,7 @@ int drm_open_driver_render(int chipset);
 int __drm_open_driver_another(int idx, int chipset);
 int __drm_open_driver(int chipset);
 int __drm_open_driver_render(int chipset);
+int drm_close_driver(int fd);
 
 int drm_reopen_driver(int fd);
 
-- 
2.40.0



More information about the igt-dev mailing list