sensor-hal: rename interface of HAL for managing it easily
[platform/adaptation/tm1/sensor-hal-tm1.git] / src / lib / sensor_logs.h
1 /*
2  * libsensord-share
3  *
4  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19
20 #if !defined(_COMMON_H_)
21 #define _COMMON_H_
22
23 #ifndef __cplusplus
24 #include <stdbool.h>
25 #endif /* !__cplusplus */
26
27 #ifdef __cplusplus
28 extern "C"
29 {
30 #endif
31
32 #if !defined(PATH_MAX)
33 #define PATH_MAX 256
34 #endif
35
36 #if !defined(NAME_MAX)
37 #define NAME_MAX 256
38 #endif
39
40
41 #define SENSOR_TYPE_SHIFT 16
42
43 enum sf_log_type {
44         SF_LOG_PRINT_FILE               = 1,
45         SF_LOG_SYSLOG                   = 2,
46         SF_LOG_DLOG                     = 3,
47 };
48
49 enum sf_priority_type {
50         SF_LOG_ERR                      = 1,
51         SF_LOG_DBG                      = 2,
52         SF_LOG_INFO                     = 3,
53         SF_LOG_WARN                     = 4,
54 };
55
56 void sf_log(int type , int priority , const char *tag , const char *fmt , ...);
57
58 #define MICROSECONDS(tv)        ((tv.tv_sec * 1000000ll) + tv.tv_usec)
59
60 #ifndef __MODULE__
61 #include <string.h>
62 #define __MODULE__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
63 #endif
64
65 //for new log system - dlog
66 #ifdef LOG_TAG
67         #undef LOG_TAG
68 #endif
69 #define LOG_TAG "SENSOR"
70
71 #if defined(_DEBUG) || defined(USE_FILE_DEBUG)
72
73 #define DbgPrint(fmt, arg...)   do { sf_log(SF_LOG_PRINT_FILE, 0, LOG_TAG , " [SF_MSG_PRT][%s:%d] " fmt"\n",__MODULE__, __LINE__, ##arg); } while(0)
74
75 #endif
76
77 #if defined(USE_SYSLOG_DEBUG)
78
79 #define ERR(fmt, arg...) do { sf_log(SF_LOG_SYSLOG, SF_LOG_ERR, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
80 #define WARN(fmt, arg...) do { sf_log(SF_LOG_SYSLOG, SF_LOG_WARN, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
81 #define INFO(fmt, arg...) do { sf_log(SF_LOG_SYSLOG, SF_LOG_INFO, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
82 #define DBG(fmt, arg...) do { sf_log(SF_LOG_SYSLOG, SF_LOG_DBG, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
83
84 #define _E(fmt, arg...) do { sf_log(SF_LOG_SYSLOG, SF_LOG_ERR, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
85 #define _W(fmt, arg...) do { sf_log(SF_LOG_SYSLOG, SF_LOG_WARN, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
86 #define _I(fmt, arg...) do { sf_log(SF_LOG_SYSLOG, SF_LOG_INFO, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
87 #define _D(fmt, arg...) do { sf_log(SF_LOG_SYSLOG, SF_LOG_DBG, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
88 #define _T(fmt, arg...) do { sf_log(SF_LOG_SYSLOG, SF_LOG_DBG, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
89
90
91 #elif defined(_DEBUG) || defined(USE_DLOG_DEBUG)
92
93 #define ERR(fmt, arg...) do { sf_log(SF_LOG_DLOG, SF_LOG_ERR, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
94 #define WARN(fmt, arg...) do { sf_log(SF_LOG_DLOG, SF_LOG_WARN, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
95 #define INFO(fmt, arg...) do { sf_log(SF_LOG_DLOG, SF_LOG_INFO, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
96 #define DBG(fmt, arg...) do { sf_log(SF_LOG_DLOG, SF_LOG_DBG, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
97
98 #define _E(fmt, arg...) do { sf_log(SF_LOG_SYSLOG, SF_LOG_ERR, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
99 #define _W(fmt, arg...) do { sf_log(SF_LOG_SYSLOG, SF_LOG_WARN, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
100 #define _I(fmt, arg...) do { sf_log(SF_LOG_SYSLOG, SF_LOG_INFO, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
101 #define _D(fmt, arg...) do { sf_log(SF_LOG_SYSLOG, SF_LOG_DBG, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
102 #define _T(fmt, arg...) do { sf_log(SF_LOG_SYSLOG, SF_LOG_DBG, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
103
104 #elif defined(USE_FILE_DEBUG)
105
106 #define ERR(fmt, arg...)        do { sf_log(SF_LOG_PRINT_FILE, 0, LOG_TAG, "[SF_MSG_ERR][%s:%d] " fmt"\n",__MODULE__, __LINE__, ##arg); } while(0)
107 #define WARN(fmt, arg...)       do { sf_log(SF_LOG_PRINT_FILE, 0, LOG_TAG, "[SF_MSG_WARN][%s:%d] " fmt"\n",__MODULE__, __LINE__, ##arg); } while(0)
108 #define DBG(fmt, arg...)        do { sf_log(SF_LOG_PRINT_FILE, 0, LOG_TAG, "[SF_MSG_DBG][%s:%d] " fmt"\n",__MODULE__, __LINE__, ##arg); } while(0)
109 #define INFO(fmt, arg...)       do { sf_log(SF_LOG_PRINT_FILE, 0, LOG_TAG, "[SF_MSG_INFO][%s:%d] " fmt"\n",__MODULE__, __LINE__, ##arg); } while(0)
110
111 #define _E(fmt, arg...) do { sf_log(SF_LOG_PRINT_FILE, 0, LOG_TAG ,"[SF_MSG_ERR][%s:%d] " fmt"\n",__MODULE__, __LINE__, ##arg); } while(0)
112 #define _W(fmt, arg...) do { sf_log(SF_LOG_PRINT_FILE, 0, LOG_TAG ,"[SF_MSG_WARN][%s:%d] " fmt"\n",__MODULE__, __LINE__, ##arg); } while(0)
113 #define _I(fmt, arg...) do { sf_log(SF_LOG_PRINT_FILE, 0, LOG_TAG ,"[SF_MSG_INFO][%s:%d] " fmt"\n",__MODULE__, __LINE__, ##arg); } while(0)
114 #define _D(fmt, arg...) do { sf_log(SF_LOG_PRINT_FILE, 0, LOG_TAG ,"[SF_MSG_DBG][%s:%d] " fmt"\n",__MODULE__, __LINE__, ##arg); } while(0)
115 #define _T(fmt, arg...) do { sf_log(SF_LOG_PRINT_FILE, 0, LOG_TAG ,"[SF_MSG_TEMP][%s:%d] " fmt"\n",__MODULE__, __LINE__, ##arg); } while(0)
116
117 #elif defined(USE_DLOG_LOG)
118
119 #define ERR(fmt, arg...) do { sf_log(SF_LOG_DLOG, SF_LOG_ERR, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
120 #define WARN(fmt, arg...) do { sf_log(SF_LOG_DLOG, SF_LOG_WARN, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
121 #define INFO(fmt, arg...) do { sf_log(SF_LOG_DLOG, SF_LOG_INFO, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
122
123 #define DBG(...) do{} while(0)
124 #define DbgPrint(...) do{} while(0)
125
126
127 #define _E(fmt, arg...) do { sf_log(SF_LOG_DLOG, SF_LOG_ERR, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
128 #define _W(fmt, arg...) do { sf_log(SF_LOG_DLOG, SF_LOG_WARN, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
129 #define _I(fmt, arg...) do { sf_log(SF_LOG_DLOG, SF_LOG_INFO, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
130 #define _D(fmt, arg...) do { sf_log(SF_LOG_DLOG, SF_LOG_DBG, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
131 #define _T(...)
132
133 #else
134 #define ERR(fmt, arg...) do { sf_log(SF_LOG_DLOG, SF_LOG_ERR, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
135 #define WARN(...) do{} while(0)
136 #define DbgPrint(...) do{} while(0)
137 #define DBG(...) do{} while(0)
138 #define INFO(...) do{} while(0)
139
140 #define _E(fmt, arg...) do { sf_log(SF_LOG_DLOG, SF_LOG_ERR, LOG_TAG, "%s:%s(%d)> " fmt, __MODULE__, __func__, __LINE__, ##arg); } while(0)
141 #define _W(...) do{} while(0)
142 #define _I(...) do{} while(0)
143 #define _D(...) do{} while(0)
144 #define _T(...) do{} while(0)
145
146 #endif
147
148
149 #if defined(_DEBUG)
150 #  define warn_if(expr, fmt, arg...) do { \
151                 if(expr) { \
152                         DBG("(%s) -> " fmt, #expr, ##arg); \
153                 } \
154         } while (0)
155 #  define ret_if(expr) do { \
156                 if(expr) { \
157                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
158                         return; \
159                 } \
160         } while (0)
161 #  define retv_if(expr, val) do { \
162                 if(expr) { \
163                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
164                         return (val); \
165                 } \
166         } while (0)
167 #  define retm_if(expr, fmt, arg...) do { \
168                 if(expr) { \
169                         ERR(fmt, ##arg); \
170                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
171                         return; \
172                 } \
173         } while (0)
174 #  define retvm_if(expr, val, fmt, arg...) do { \
175                 if(expr) { \
176                         ERR(fmt, ##arg); \
177                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
178                         return (val); \
179                 } \
180         } while (0)
181
182 #else
183 #  define warn_if(expr, fmt, arg...) do { \
184                 if(expr) { \
185                         ERR(fmt, ##arg); \
186                 } \
187         } while (0)
188 #  define ret_if(expr) do { \
189                 if(expr) { \
190                         return; \
191                 } \
192         } while (0)
193 #  define retv_if(expr, val) do { \
194                 if(expr) { \
195                         return (val); \
196                 } \
197         } while (0)
198 #  define retm_if(expr, fmt, arg...) do { \
199                 if(expr) { \
200                         ERR(fmt, ##arg); \
201                         return; \
202                 } \
203         } while (0)
204 #  define retvm_if(expr, val, fmt, arg...) do { \
205                 if(expr) { \
206                         ERR(fmt, ##arg); \
207                         return (val); \
208                 } \
209         } while (0)
210
211 #endif
212
213 #ifdef __cplusplus
214 }
215 #endif
216
217 #endif
218 //! End of a file