type_common: add tbm_##res##_str and tbm_error_str 86/177186/1
authorSooChan Lim <sc1.lim@samsung.com>
Mon, 23 Apr 2018 06:14:08 +0000 (15:14 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 23 Apr 2018 06:16:47 +0000 (15:16 +0900)
These macros makes integer values assigned string values.

Change-Id: I7bb4596b59cef7c1ac5ed49f94e23d162519daa0

src/tbm_type_common.h

index 26facf7..1b8ab30 100644 (file)
@@ -233,4 +233,38 @@ typedef enum {
        TBM_BUFGMR_DEBUG_TRACE_SURFACE_QUEUE    = (1 << 3),
 } tbm_bufmgr_debug_trace_mask;
 
+/* type to string ***********************************************************/
+struct tbm_type_name {
+       int type;
+       const char *name;
+};
+
+#define TBM_ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
+
+#define TBM_TYPE_NAME_FN(res) \
+static inline const char * tbm_##res##_str(int type)   \
+{                      \
+       unsigned int i;                                 \
+       for (i = 0; i < TBM_ARRAY_SIZE(tbm_##res##_names); i++) { \
+               if (tbm_##res##_names[i].type == type)  \
+                       return tbm_##res##_names[i].name;       \
+       }                                               \
+       return "(invalid)";                             \
+}
+
+static struct tbm_type_name tbm_error_names[] = {
+       { TBM_ERROR_NONE, "TBM_ERROR_NONE" },
+       { TBM_ERROR_OUT_OF_MEMORY, "TBM_ERROR_OUT_OF_MEMORY" },
+       { TBM_ERROR_INVALID_PARAMETER, "TBM_ERROR_INVALID_PARAMETER" },
+       { TBM_ERROR_INVALID_OPERATION, "TBM_ERROR_INVALID_OPERATION" },
+       { TBM_ERROR_NOT_SUPPORTED, "TBM_ERROR_NOT_SUPPORTED" },
+       { TBM_SURFACE_QUEUE_ERROR_EMPTY, "TBM_SURFACE_QUEUE_ERROR_EMPTY" },
+       { TBM_SURFACE_QUEUE_ERROR_INVALID_QUEUE, "TBM_SURFACE_QUEUE_ERROR_INVALID_QUEUE" },
+       { TBM_SURFACE_QUEUE_ERROR_INVALID_SURFACE, "TBM_SURFACE_QUEUE_ERROR_INVALID_SURFACE" },
+       { TBM_SURFACE_QUEUE_ERROR_SURFACE_ALLOC_FAILED, "TBM_SURFACE_QUEUE_ERROR_SURFACE_ALLOC_FAILED" },
+       { TBM_SURFACE_QUEUE_ERROR_ALREADY_EXIST, "TBM_SURFACE_QUEUE_ERROR_ALREADY_EXIST" },
+       { TBM_SURFACE_QUEUE_ERROR_UNKNOWN_SURFACE, "TBM_SURFACE_QUEUE_ERROR_UNKNOWN_SURFACE" },
+};
+TBM_TYPE_NAME_FN(error)
+
 #endif                                                 /* _TBM_TYPE_COMMON_H_ */