[Refactoring] Modularization
[platform/core/uifw/coregl.git] / src / modules / tracepath / coregl_tracepath.h
1 #ifndef COREGL_TRACEPATH_H\r
2 #define COREGL_TRACEPATH_H\r
3 \r
4 #include "../coregl_module.h"\r
5 \r
6 #ifndef COREGL_USE_MODULE_TRACEPATH\r
7 #error "COREGL_USE_MODULE_TRACEPATH must defined!!!"\r
8 #endif\r
9 \r
10 #define MY_MODULE_ID              COREGL_MODULE_TRACEPATH\r
11 #define MY_MODULE_TSTATE         Tracepath_ThreadState\r
12 \r
13 #include "../../coregl_internal.h"\r
14 #include "../../coregl_export.h"\r
15 \r
16 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)     extern RET_TYPE (*_orig_tracepath_##FUNC_NAME) PARAM_LIST;\r
17 # include "../../headers/sym.h"\r
18 #undef _COREGL_SYMBOL\r
19 \r
20 // Symbol definition for tracepath\r
21 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)     extern RET_TYPE (tracepath_##FUNC_NAME) PARAM_LIST;\r
22 # include "../../headers/sym.h"\r
23 #undef _COREGL_SYMBOL\r
24 \r
25 #define COREGL_TRACEPATH_TRACE_ALL\r
26
27 #ifdef COREGL_TRACEPATH_TRACE_ALL\r
28 #define COREGL_TRACEPATH_TRACE_CONTEXT_INFO   // Context state & thread state & Glue-context info\r
29 #define COREGL_TRACEPATH_TRACE_STATE_INFO     // Glue-context state info\r
30 #define COREGL_TRACEPATH_TRACE_APICALL_INFO   // API call frequency info\r
31 #endif
32
33 #ifdef COREGL_TRACEPATH_TRACE_APICALL_INFO\r
34 # define _COREGL_TRACE_API_BEGIN(api, hint, trace_total_time) \
35    tracepath_api_trace_begin(api, hint, trace_total_time);\r
36 # define _COREGL_TRACE_API_END(api, hint, trace_total_time) \
37    tracepath_api_trace_end(api, hint, trace_total_time);\r
38 # define _COREGL_TRACE_API_OUTPUT(force_output) \
39    tracepath_api_trace_output(force_output);\r
40 #else
41 # define _COREGL_TRACE_API_BEGIN(api, hint, trace_total_time) NULL;
42 # define _COREGL_TRACE_API_END(api, hint, trace_total_time)
43 # define _COREGL_TRACE_API_OUTPUT(force_output)
44 #endif
45 \r
46 #define _COREGL_TRACEPATH_FUNC_BEGIN() \\r
47         if (unlikely(trace_api_flag == 1)) \
48                 _COREGL_TRACE_API_BEGIN(__func__, NULL, 1);
49
50 #define _COREGL_TRACEPATH_FUNC_END() \\r
51         if (unlikely(trace_api_flag == 1)) \
52                 _COREGL_TRACE_API_END(__func__, NULL, 1);
53 \r
54 typedef struct _Tracepath_ThreadState\r
55 {
56         Trace_Data             **ftd_table;
57 } Tracepath_ThreadState;\r
58 \r
59 extern void                init_modules_tracepath();\r
60 extern void                deinit_modules_tracepath();\r
61 extern void                init_modules_tstate_tracepath(GLThreadState *tstate);\r
62 extern void                deinit_modules_tstate_tracepath(GLThreadState *tstate);\r
63 \r
64 \r
65 extern void                tracepath_apply_overrides();\r
66 extern void                tracepath_apply_overrides_egl();\r
67 extern void                tracepath_apply_overrides_gl();\r
68 \r
69 extern void                tracepath_dump_context_states(int force_output);\r
70 \r
71 extern void               *tracepath_api_trace_begin(const char *name, void *hint, int trace_total_time);\r
72 extern void               *tracepath_api_trace_end(const char *name, void *hint, int trace_total_time);\r
73 extern void                tracepath_api_trace_output(int force_output);\r
74 \r
75 #endif // COREGL_TRACEPATH_H\r
76 \r