Tizen 2.1 base
[apps/home/call-setting.git] / include / cst-debug.h
1 /*
2  * Copyright 2012  Samsung Electronics Co., Ltd
3  *
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
7  *
8  * http://floralicense.org/license/
9  *
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.
15  */
16
17 #include <dlog.h>
18 #include <stdio.h>
19 #ifndef CST_LOG_TAG
20 #define CST_LOG_TAG "CST"
21 #endif
22
23 #define DBGFILE(fmt, arg...) \
24         do { \
25                 FILE *fp; \
26                 fp = fopen(CST_DEBUG_FILE, "a"); \
27                 fprintf(fp, "[CST][%s:%d] "fmt"\n",  __func__, __LINE__, ##arg); \
28                 if(fp) \
29                         fclose(fp); \
30         } while(0)
31
32 #define DBG(fmt, arg...) \
33         do { \
34                 LOG(LOG_INFO, CST_LOG_TAG, "[CST][%s:%d] "fmt"\n",  __func__, __LINE__, ##arg); \
35         } while(0)
36
37 #define ENTER(arg...) \
38         do {\
39                 LOG(LOG_INFO, CST_LOG_TAG, "[CST][%s:%d] Enter func=%p", __func__, __LINE__, ##arg);\
40         }while(0)
41
42 #define LEAVE() \
43         do {\
44                 LOG(LOG_INFO, CST_LOG_TAG, "[CST][%s:%d] Leave func", __func__, __LINE__);\
45         } while(0)
46
47 #define ERR(fmt, arg...) \
48         do { \
49                 LOG(LOG_INFO, CST_LOG_TAG, "[CST][%s:%d] "fmt"\n",  __func__, __LINE__, ##arg); \
50         } while(0)
51
52 #define warn_if(expr, fmt, arg...) do { \
53                 if(expr) { \
54                         DBG("(%s) -> "fmt, #expr, ##arg); \
55                 } \
56         } while (0)
57
58 #define ret_if(expr) do { \
59                 if(expr) { \
60                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
61                         return; \
62                 } \
63         } while (0)
64
65 #define retv_if(expr, val) do { \
66                 if(expr) { \
67                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
68                         return (val); \
69                 } \
70         } while (0)
71
72 #define retm_if(expr, fmt, arg...) do { \
73                 if(expr) { \
74                         ERR(fmt, ##arg); \
75                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
76                         return; \
77                 } \
78         } while (0)
79
80 #define retvm_if(expr, val, fmt, arg...) do { \
81                 if(expr) { \
82                         ERR(fmt, ##arg); \
83                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
84                         return (val); \
85                 } \
86         } while (0)
87