2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.tizenopensource.org/license
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef __MSG_DEBUG_H__
18 #define __MSG_DEBUG_H__
20 /*==================================================================================================
22 ==================================================================================================*/
23 #include <sys/types.h>
30 #include "MsgCmdTypes.h"
31 #include "MsgFilterTypes.h"
38 /*==================================================================================================
40 ==================================================================================================*/
41 #define USER_TAG "MSG_FW"
43 #define MSG_SMS_VALID_TAG "VLD_SMS"
44 #define MSG_MMS_VALID_TAG "VLD_MMS"
50 /*==================================================================================================
52 ==================================================================================================*/
56 #if defined(DLOG_ENABLE)
58 #define MSG_FATAL(fmt, ...) \
61 SLOG(LOG_ERROR, USER_TAG, "[%s: %s(): %d] ERROR << " fmt " >>\n\n", rindex(__FILE__, '/')+1, __FUNCTION__, __LINE__, ##__VA_ARGS__);\
64 #define MSG_DEBUG(fmt, ...)\
67 SLOG(LOG_DEBUG, USER_TAG, "[%s: %s(): %d] " fmt"\n\n", rindex(__FILE__, '/')+1, __FUNCTION__, __LINE__, ##__VA_ARGS__);\
73 SLOG(LOG_DEBUG, USER_TAG, "[%s: %s(): %d] BEGIN >>>> \n\n", rindex(__FILE__, '/')+1, __FUNCTION__, __LINE__ );\
79 SLOG(LOG_DEBUG, USER_TAG, "[%s: %s(): %d] END <<<< \n\n", rindex(__FILE__, '/')+1, __FUNCTION__, __LINE__ );\
83 #define MSG_PROFILE_BEGIN(pfid) \
84 unsigned int __prf_l1_##pfid = __LINE__; \
85 struct timeval __prf_1_##pfid; \
86 struct timeval __prf_2_##pfid; \
88 gettimeofday(&__prf_1_##pfid, 0); \
91 #define MSG_PROFILE_END(pfid) \
92 unsigned int __prf_l2_##pfid = __LINE__;\
94 gettimeofday(&__prf_2_##pfid, 0);\
95 long __ds = __prf_2_##pfid.tv_sec - __prf_1_##pfid.tv_sec;\
96 long __dm = __prf_2_##pfid.tv_usec - __prf_1_##pfid.tv_usec;\
97 if ( __dm < 0 ) { __ds--; __dm = 1000000 + __dm; } \
98 SLOG(LOG_DEBUG, USER_TAG, "**PROFILE** [MSGFW: %s: %s() %u ~ %u] " #pfid \
99 " -> Elapsed Time: %u.%06u seconds\n", \
100 rindex(__FILE__, '/')+1, \
104 (unsigned int)(__ds), \
105 (unsigned int)(__dm)); \
109 #define MSG_SMS_VLD_INFO(fmt, ...)\
112 SLOG(LOG_DEBUG, MSG_SMS_VALID_TAG, "[SMS INFO]%s, "fmt"\n", __TIMESTAMP__, ##__VA_ARGS__);\
115 #define MSG_SMS_VLD_TXT(fmt, ...)\
118 SLOG(LOG_DEBUG, MSG_SMS_VALID_TAG, "[SMS_TEXT]%s, "fmt"\n", __TIMESTAMP__, ##__VA_ARGS__);\
121 #define MSG_MMS_VLD_INFO(fmt, ...)\
124 SLOG(LOG_DEBUG, MSG_MMS_VALID_TAG, "[MMS INFO]%s, "fmt"\n", __TIMESTAMP__, ##__VA_ARGS__);\
127 #define MSG_MMS_VLD_TXT(fmt, ...)\
130 SLOG(LOG_DEBUG, MSG_MMS_VALID_TAG, "[MMS TEXT]%s, "fmt"\n", __TIMESTAMP__, ##__VA_ARGS__);\
133 #define MSG_MMS_VLD_FILE(fmt, ...)\
136 SLOG(LOG_DEBUG, MSG_MMS_VALID_TAG, "[MMS FILE]%s, "fmt"\n", __TIMESTAMP__, ##__VA_ARGS__);\
139 #elif defined(LOG_ENABLE)
141 #define MSG_FATAL(fmt, ...) \
144 printf("\n[%d] [MSGFW: %s: %s(): %d] *FAILED* << " fmt" >>\n", get_tid(), rindex(__FILE__, '/')+1, __FUNCTION__, __LINE__, ##__VA_ARGS__);\
147 #define MSG_DEBUG(fmt, ...) \
150 printf("\n[%d] [MSGFW: %s: %s(): %d] " fmt"\n", get_tid(), rindex(__FILE__, '/')+1, __FUNCTION__, __LINE__, ##__VA_ARGS__);\
153 #define MSG_BEGIN() \
156 printf("\n[%d] BEGIN >>>> %s() at [MSGFW: %s: %d]\n", get_tid(),__FUNCTION__, rindex(__FILE__, '/')+1, __LINE__ );\
162 printf("\n[%d] END <<<< %s() at [MSGFW: %s: %d]\n", get_tid(), __FUNCTION__, rindex(__FILE__, '/')+1, __LINE__); \
166 #define MSG_PROFILE_BEGIN(pfid) \
167 unsigned int __prf_l1_##pfid = __LINE__; \
168 struct timeval __prf_1_##pfid; \
169 struct timeval __prf_2_##pfid; \
171 gettimeofday(&__prf_1_##pfid, 0); \
174 #define MSG_PROFILE_END(pfid) \
175 unsigned int __prf_l2_##pfid = __LINE__;\
177 gettimeofday(&__prf_2_##pfid, 0);\
178 long __ds = __prf_2_##pfid.tv_sec - __prf_1_##pfid.tv_sec;\
179 long __dm = __prf_2_##pfid.tv_usec - __prf_1_##pfid.tv_usec;\
180 if ( __dm < 0 ) { __ds--; __dm = 1000000 + __dm; } \
181 printf("**PROFILE** [MSGFW: %s: %s() %u ~ %u] " #pfid \
182 " -> Elapsed Time: %u.%06u seconds\n", \
183 rindex(__FILE__, '/')+1, \
187 (unsigned int)(__ds), \
188 (unsigned int)(__dm)); \
193 #define MSG_FATAL(fmt, ...)
194 #define MSG_DEBUG(fmt, ...)
198 #define MSG_PROFILE_BEGIN(pfid) \
199 unsigned int __prf_l1_##pfid = __LINE__; \
200 struct timeval __prf_1_##pfid; \
201 struct timeval __prf_2_##pfid; \
203 gettimeofday(&__prf_1_##pfid, 0); \
206 #define MSG_PROFILE_END(pfid) \
207 unsigned int __prf_l2_##pfid = __LINE__;\
209 gettimeofday(&__prf_2_##pfid, 0);\
210 long __ds = __prf_2_##pfid.tv_sec - __prf_1_##pfid.tv_sec;\
211 long __dm = __prf_2_##pfid.tv_usec - __prf_1_##pfid.tv_usec;\
212 if ( __dm < 0 ) { __ds--; __dm = 1000000 + __dm; } \
213 printf("**PROFILE** [MSGFW: %s: %s() %u ~ %u] " #pfid \
214 " -> Elapsed Time: %u.%06u seconds\n", \
215 rindex(__FILE__, '/')+1, \
219 (unsigned int)(__ds), \
220 (unsigned int)(__dm)); \
225 const char * MsgDbgCmdStr(MSG_CMD_TYPE_T cmdType);
226 const char * MsgDbgEvtStr(MSG_EVENT_TYPE_T evtType);
228 #endif //__MSG_DEBUG_H__