2 * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved
4 * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
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"
32 /*==================================================================================================
34 ==================================================================================================*/
35 #define USER_TAG "MSG_FW"
37 #define LOG_TAG "MSG_SERVICE"
38 #define MSG_SMS_VALID_TAG "VLD_SMS"
39 #define MSG_MMS_VALID_TAG "VLD_MMS"
43 #if defined(DLOG_ENABLE)
48 SLOGD(" BEGIN >>>> \n");\
53 SLOGD(" END <<<< \n");\
56 #define MSG_DEBUG(fmt, ...)\
58 SLOGD(fmt"\n", ##__VA_ARGS__);\
61 #define MSG_INFO(fmt, ...)\
63 SLOGI("* Info * " fmt "\n", ##__VA_ARGS__);\
66 #define MSG_WARN(fmt, ...)\
68 SLOGW("* Warning * " fmt "\n", ##__VA_ARGS__);\
71 #define MSG_ERR(fmt, ...)\
73 SLOGE("* Error * " fmt "\n", ##__VA_ARGS__);\
76 #define MSG_FATAL(fmt, ...)\
78 SLOGE(" ERROR << " fmt " >>\n", ##__VA_ARGS__);\
82 #define MSG_SEC_DEBUG(fmt, ...)\
84 SECURE_SLOGD(fmt"\n", ##__VA_ARGS__);\
87 #define MSG_SEC_INFO(fmt, ...)\
89 SECURE_SLOGI("* Info * " fmt"\n", ##__VA_ARGS__);\
92 #define MSG_SEC_ERR(fmt, ...)\
94 SECURE_LOG(LOG_ERROR, LOG_TAG, "* Error *" fmt "\n", ##__VA_ARGS__);\
97 /*valid data log macros*/
98 #define MSG_SMS_VLD_INFO(fmt, ...)\
100 SLOG(LOG_DEBUG, MSG_SMS_VALID_TAG, "[SMS INFO]%s, " fmt "\n", __TIMESTAMP__, ##__VA_ARGS__);\
103 #define MSG_SMS_VLD_TXT(fmt, ...)\
105 SLOG(LOG_DEBUG, MSG_SMS_VALID_TAG, "[SMS_TEXT]%s, " fmt "\n", __TIMESTAMP__, ##__VA_ARGS__);\
108 #define MSG_MMS_VLD_INFO(fmt, ...)\
110 SLOG(LOG_DEBUG, MSG_MMS_VALID_TAG, "[MMS INFO]%s, " fmt "\n", __TIMESTAMP__, ##__VA_ARGS__);\
113 #define MSG_MMS_VLD_TXT(fmt, ...)\
115 SLOG(LOG_DEBUG, MSG_MMS_VALID_TAG, "[MMS TEXT]%s, " fmt "\n", __TIMESTAMP__, ##__VA_ARGS__);\
118 #define MSG_MMS_VLD_FILE(fmt, ...)\
120 SLOG(LOG_DEBUG, MSG_MMS_VALID_TAG, "[MMS FILE]%s, " fmt "\n", __TIMESTAMP__, ##__VA_ARGS__);\
123 /*err & warn return message log macros*/
124 #define MSG_ERR_RET_VM(expr, val, fmt, ...)\
127 MSG_ERR(fmt, ##__VA_ARGS__);\
132 #define MSG_ERR_RET_M(expr, fmt, ...)\
135 MSG_ERR(fmt, ##__VA_ARGS__);\
140 #define MSG_WARN_M(expr, fmt, ...)\
143 MSG_WARN(fmt, ##__VA_ARGS__);\
147 /*profile log macros*/
148 #define MSG_PROFILE_BEGIN(pfid) \
149 unsigned int __prf_l1_##pfid = __LINE__;\
150 struct timeval __prf_1_##pfid;\
151 struct timeval __prf_2_##pfid;\
153 gettimeofday(&__prf_1_##pfid, 0);\
156 #define MSG_PROFILE_END(pfid) \
157 unsigned int __prf_l2_##pfid = __LINE__;\
159 gettimeofday(&__prf_2_##pfid, 0);\
160 long __ds = __prf_2_##pfid.tv_sec - __prf_1_##pfid.tv_sec;\
161 long __dm = __prf_2_##pfid.tv_usec - __prf_1_##pfid.tv_usec;\
162 if ( __dm < 0 ) { __ds--; __dm = 1000000 + __dm; } \
163 SLOGD("**PROFILE** [MSGFW: %s: %s() %u ~ %u] " #pfid " -> Elapsed Time: %u.%06u seconds\n", \
164 rindex(__FILE__, '/')+1, \
168 (unsigned int)(__ds), \
169 (unsigned int)(__dm));\
172 #elif defined(LOG_ENABLE)
176 #define MSG_FATAL(fmt, ...) \
178 printf("\n[%d] [MSGFW: %s: %s(): %d] *FAILED* << " fmt" >>\n", get_tid(), rindex(__FILE__, '/')+1, __FUNCTION__, __LINE__, ##__VA_ARGS__);\
181 #define MSG_DEBUG(fmt, ...) \
183 printf("\n[%d] [MSGFW: %s: %s(): %d] " fmt"\n", get_tid(), rindex(__FILE__, '/')+1, __FUNCTION__, __LINE__, ##__VA_ARGS__);\
186 #define MSG_BEGIN() \
188 printf("\n[%d] BEGIN >>>> %s() at [MSGFW: %s: %d]\n", get_tid(), __FUNCTION__, rindex(__FILE__, '/')+1, __LINE__);\
193 printf("\n[%d] END <<<< %s() at [MSGFW: %s: %d]\n", get_tid(), __FUNCTION__, rindex(__FILE__, '/')+1, __LINE__); \
197 #define MSG_PROFILE_BEGIN(pfid) \
198 unsigned int __prf_l1_##pfid = __LINE__; \
199 struct timeval __prf_1_##pfid; \
200 struct timeval __prf_2_##pfid; \
202 gettimeofday(&__prf_1_##pfid, 0); \
205 #define MSG_PROFILE_END(pfid) \
206 unsigned int __prf_l2_##pfid = __LINE__;\
208 gettimeofday(&__prf_2_##pfid, 0);\
209 long __ds = __prf_2_##pfid.tv_sec - __prf_1_##pfid.tv_sec;\
210 long __dm = __prf_2_##pfid.tv_usec - __prf_1_##pfid.tv_usec;\
211 if ( __dm < 0 ) { __ds--; __dm = 1000000 + __dm; } \
212 printf("**PROFILE** [MSGFW: %s: %s() %u ~ %u] " #pfid \
213 " -> Elapsed Time: %u.%06u seconds\n", \
214 rindex(__FILE__, '/')+1, \
218 (unsigned int)(__ds), \
219 (unsigned int)(__dm)); \
224 #define MSG_FATAL(fmt, ...)
225 #define MSG_DEBUG(fmt, ...)
229 #define MSG_PROFILE_BEGIN(pfid) \
230 unsigned int __prf_l1_##pfid = __LINE__; \
231 struct timeval __prf_1_##pfid; \
232 struct timeval __prf_2_##pfid; \
234 gettimeofday(&__prf_1_##pfid, 0); \
237 #define MSG_PROFILE_END(pfid) \
238 unsigned int __prf_l2_##pfid = __LINE__;\
240 gettimeofday(&__prf_2_##pfid, 0);\
241 long __ds = __prf_2_##pfid.tv_sec - __prf_1_##pfid.tv_sec;\
242 long __dm = __prf_2_##pfid.tv_usec - __prf_1_##pfid.tv_usec;\
243 if ( __dm < 0 ) { __ds--; __dm = 1000000 + __dm; } \
244 printf("**PROFILE** [MSGFW: %s: %s() %u ~ %u] " #pfid \
245 " -> Elapsed Time: %u.%06u seconds\n", \
246 rindex(__FILE__, '/')+1, \
250 (unsigned int)(__ds), \
251 (unsigned int)(__dm)); \
257 #define MSG_FREE(x) \
265 /*==================================================================================================
267 ==================================================================================================*/
269 const char * MsgDbgCmdStr(MSG_CMD_TYPE_T cmdType);
270 const char * MsgDbgEvtStr(MSG_EVENT_TYPE_T evtType);
272 #endif /*__MSG_DEBUG_H__ */