tizen 2.4 release
[framework/multimedia/libmm-common.git] / include / mm_debug.h
1 /*
2  * libmm-common
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Jonghyuk Choi <jhchoi.choi@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21
22
23
24 /* ===========================================================================================
25 EDIT HISTORY FOR MODULE
26
27         This section contains comments describing changes made to the module.
28         Notice that changes are listed in reverse chronological order.
29
30 when            who                                                     what, where, why
31 ---------       --------------------            ----------------------------------------------------------
32 09/28/07        jhchoi.choi@samsung.com         Created
33 10/03/30        seungbae.shin@samsung.com       Revised (remove some ifdefs)
34
35 =========================================================================================== */
36 #ifndef __MMF_DEBUG_H__
37 #define __MMF_DEBUG_H__
38
39 #ifdef __cplusplus
40         extern "C" {
41 #endif
42
43 enum {
44         MMF_DEBUG_LEVEL_0,
45         MMF_DEBUG_LEVEL_1,
46         MMF_DEBUG_LEVEL_2,
47         MMF_DEBUG_LEVEL_3,
48         MMF_DEBUG_LEVEL_4,
49         MMF_DEBUG_LEVEL_5,
50         MMF_DEBUG_LEVEL_ALL,
51
52         MMF_DEBUG_CRITICAL      = MMF_DEBUG_LEVEL_0,
53         MMF_DEBUG_ERROR         = MMF_DEBUG_LEVEL_1,
54         MMF_DEBUG_WARNING       = MMF_DEBUG_LEVEL_2,
55         MMF_DEBUG_INFO          = MMF_DEBUG_LEVEL_3,
56         MMF_DEBUG_LOG           = MMF_DEBUG_LEVEL_4,
57         MMF_DEBUG_VERBOSE       = MMF_DEBUG_LEVEL_5,
58
59         MMF_DEBUG_PROFILE       = MMF_DEBUG_LEVEL_0,
60 };
61
62 /******************************************************************************
63  *
64  *      DEBUG CONFIGURATION
65  *
66  *****************************************************************************/
67 #ifndef MMF_LOG_OWNER
68 #define MMF_LOG_OWNER           LOG_NONE
69 #endif
70
71 #ifndef MMF_DEBUG_LEVEL
72 #define MMF_DEBUG_LEVEL         4
73 #endif
74
75 #ifndef MMF_DEBUG_PREFIX
76 #define MMF_DEBUG_PREFIX        "MMF"
77 #endif
78
79 #ifndef MMF_DEBUG_FILE
80 #define MMF_DEBUG_FILE          "/var/log/mmf-log"
81 #endif
82
83 /******************************************************************************
84  *      DEBUG OUTPUT:
85  *              0 = None
86  *              1 = Log Manager
87  *              2 = Debug System
88  *              3 = Console
89  *              4 = File
90  *****************************************************************************/
91 /*
92  *      LOG MANAGER
93  */
94 #include <mm_log.h>
95
96 /******************************************************************************
97  *
98  *      DEBUG FUNCTION MACROS
99  *
100  *****************************************************************************/
101 #define debug_verbose(fmt, arg...)      mm_log_by_owner(MMF_LOG_OWNER, LOG_VERBOSE, fmt, ##arg)
102 #define debug_log(fmt, arg...)          mm_log_by_owner(MMF_LOG_OWNER, LOG_DEBUG, fmt, ##arg)
103 #define debug_msg(fmt, arg...)  mm_log_by_owner(MMF_LOG_OWNER, LOG_INFO, fmt, ##arg)
104 #define debug_warning(fmt, arg...)      mm_log_by_owner(MMF_LOG_OWNER, LOG_WARN, fmt, ##arg)
105 #define debug_error(fmt, arg...)        mm_log_by_owner(MMF_LOG_OWNER, LOG_ERROR, fmt, ##arg)
106 #define debug_critical(fmt, arg...)     mm_log_by_owner(MMF_LOG_OWNER, LOG_FATAL, fmt, ##arg)
107 #define debug_profile(fmt, arg...)      mm_log_by_owner(MMF_LOG_OWNER, LOG_DEBUG,"<TIMER> " fmt, ##arg)
108 #define debug_fenter()                  mm_log_by_owner(MMF_LOG_OWNER, LOG_DEBUG, "<ENTER> \n")
109 #define debug_fleave()                  mm_log_by_owner(MMF_LOG_OWNER, LOG_DEBUG, "<LEAVE> \n")
110 #define debug_enter(fmt, arg...)        mm_log_by_owner(MMF_LOG_OWNER, LOG_DEBUG,"<ENTER> [<---] " fmt, ##arg)
111 #define debug_leave(fmt, arg...)        mm_log_by_owner(MMF_LOG_OWNER, LOG_DEBUG,"<LEAVE> [--->] " fmt, ##arg)
112
113 #define secure_debug_verbose(fmt, arg...)       mm_secure_log_by_owner(MMF_LOG_OWNER, LOG_VERBOSE, fmt, ##arg)
114 #define secure_debug_log(fmt, arg...)           mm_secure_log_by_owner(MMF_LOG_OWNER, LOG_DEBUG, fmt, ##arg)
115 #define secure_debug_msg(fmt, arg...)           mm_secure_log_by_owner(MMF_LOG_OWNER, LOG_INFO, fmt, ##arg)
116 #define secure_debug_warning(fmt, arg...)       mm_secure_log_by_owner(MMF_LOG_OWNER, LOG_WARN, fmt, ##arg)
117 #define secure_debug_error(fmt, arg...)         mm_secure_log_by_owner(MMF_LOG_OWNER, LOG_ERROR, fmt, ##arg)
118 #define secure_debug_critical(fmt, arg...)              mm_secure_log_by_owner(MMF_LOG_OWNER, LOG_FATAL, fmt, ##arg)
119 #define secure_debug_profile(fmt, arg...)               mm_secure_log_by_owner(MMF_LOG_OWNER, LOG_DEBUG, "<TIMER> " fmt, ##arg)
120
121 #define return_if_fail(expr)    \
122         if(!(expr)) {   \
123                 debug_warning("failed [%s]\n", #expr);  \
124                 return; \
125         }
126
127 #define return_val_if_fail(expr, val)   \
128         if (!(expr)) {  \
129                 debug_warning("failed [%s]\n", #expr);  \
130                 return val;     \
131         }
132
133 #define assert_not_reached() \
134 { \
135         debug_error("assert_not_reached()"); \
136         assert(0); \
137 }
138
139
140 #ifdef __cplusplus
141         }
142 #endif
143
144 #endif  /* __MMF_DEBUG_H__ */