[Intel-gfx] [PATCH i-g-t 2/2] lib/igt_aux: define actual functions for kmstest_*_str

Jani Nikula jani.nikula at intel.com
Wed May 11 09:42:06 UTC 2016


Macro generated function definitions considered harmful. You can't find
them with code search tools or grep. There may be places where such
things might be useful, but this is not it.

Define actual functions for kmstest_encoder_type_str(),
kmstest_connector_status_str() and kmstest_connector_type_str(). While
at it, make the arrays static const.

Signed-off-by: Jani Nikula <jani.nikula at intel.com>
---
 lib/igt_aux.c | 41 ++++++++++++++++++++++++++---------------
 1 file changed, 26 insertions(+), 15 deletions(-)

diff --git a/lib/igt_aux.c b/lib/igt_aux.c
index 5dbbe4dd4a85..22962dcf2be4 100644
--- a/lib/igt_aux.c
+++ b/lib/igt_aux.c
@@ -941,17 +941,17 @@ struct type_name {
 	const char *name;
 };
 
-#define type_name_fn(res) \
-const char * kmstest_##res##_str(int type) {		\
-	unsigned int i;					\
-	for (i = 0; i < ARRAY_SIZE(res##_names); i++) { \
-		if (res##_names[i].type == type)	\
-			return res##_names[i].name;	\
-	}						\
-	return "(invalid)";				\
+static const char *find_type_name(const struct type_name *names, int type)
+{
+	for (; names->name; names++) {
+		if (names->type == type)
+			return names->name;
+	}
+
+	return "(invalid)";
 }
 
-struct type_name encoder_type_names[] = {
+static const struct type_name encoder_type_names[] = {
 	{ DRM_MODE_ENCODER_NONE, "none" },
 	{ DRM_MODE_ENCODER_DAC, "DAC" },
 	{ DRM_MODE_ENCODER_TMDS, "TMDS" },
@@ -960,19 +960,27 @@ struct type_name encoder_type_names[] = {
 	{ DRM_MODE_ENCODER_VIRTUAL, "Virtual" },
 	{ DRM_MODE_ENCODER_DSI, "DSI" },
 	{ DRM_MODE_ENCODER_DPMST, "DP MST" },
+	{}
 };
 
-type_name_fn(encoder_type)
+const char *kmstest_encoder_type_str(int type)
+{
+	return find_type_name(encoder_type_names, type);
+}
 
-struct type_name connector_status_names[] = {
+static const struct type_name connector_status_names[] = {
 	{ DRM_MODE_CONNECTED, "connected" },
 	{ DRM_MODE_DISCONNECTED, "disconnected" },
 	{ DRM_MODE_UNKNOWNCONNECTION, "unknown" },
+	{}
 };
 
-type_name_fn(connector_status)
+const char *kmstest_connector_status_str(int status)
+{
+	return find_type_name(connector_status_names, status);
+}
 
-struct type_name connector_type_names[] = {
+static const struct type_name connector_type_names[] = {
 	{ DRM_MODE_CONNECTOR_Unknown, "unknown" },
 	{ DRM_MODE_CONNECTOR_VGA, "VGA" },
 	{ DRM_MODE_CONNECTOR_DVII, "DVI-I" },
@@ -990,10 +998,13 @@ struct type_name connector_type_names[] = {
 	{ DRM_MODE_CONNECTOR_eDP, "eDP" },
 	{ DRM_MODE_CONNECTOR_VIRTUAL, "Virtual" },
 	{ DRM_MODE_CONNECTOR_DSI, "DSI" },
+	{}
 };
 
-type_name_fn(connector_type)
-
+const char *kmstest_connector_type_str(int type)
+{
+	return find_type_name(connector_type_names, type);
+}
 
 /**
  * igt_lock_mem:
-- 
2.1.4



More information about the Intel-gfx mailing list