6832eb4b500f9da8ff2ced1d04b57a19a1244b89
[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://www.tizenopensource.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 CISS_LOG_TAG
20 #define CISS_LOG_TAG "CISS"
21 #endif
22
23 #define DBGFILE(fmt, arg...) \
24         do { \
25                         FILE *fp; \
26                         fp = fopen(CISS_DEBUG_FILE, "a"); \
27                         fprintf(fp, "[CISS][%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, CISS_LOG_TAG, "[CISS][%s:%d] "fmt"\n",  __func__, __LINE__, ##arg); \
35         } while(0)
36
37 #define ENTER(arg...) \
38     do {\
39         LOG(LOG_INFO, CISS_LOG_TAG, "[CISS][%s:%d] Enter func=%p", __func__, __LINE__, ##arg);\
40     }while(0)
41
42 #define LEAVE() \
43     do {\
44         LOG(LOG_INFO, CISS_LOG_TAG, "[CISS][%s:%d] Leave func", __func__, __LINE__);\
45     } while(0)
46
47 #define ERR(fmt, arg...) \
48         do { \
49                 LOGE(""fmt"\n", ##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 #  define ret_if(expr) do { \
58                 if(expr) { \
59                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
60                         return; \
61                 } \
62         } while (0)
63 #  define retv_if(expr, val) do { \
64                 if(expr) { \
65                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
66                         return (val); \
67                 } \
68         } while (0)
69 #  define retm_if(expr, fmt, arg...) do { \
70                 if(expr) { \
71                         ERR(fmt, ##arg); \
72                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
73                         return; \
74                 } \
75         } while (0)
76 #  define retvm_if(expr, val, fmt, arg...) do { \
77                 if(expr) { \
78                         ERR(fmt, ##arg); \
79                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
80                         return (val); \
81                 } \
82         } while (0)