sensord: remove "c" prefix about all classes
[platform/core/system/sensord.git] / src / shared / 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 #ifndef _SENSOR_LOGS_H_
21 #define _SENSOR_LOGS_H_
22
23 #ifndef __cplusplus
24 #include <stdbool.h>
25 #endif /* !__cplusplus */
26
27 #ifdef __cplusplus
28 extern "C"
29 {
30 #endif
31
32 #include <sys/types.h>
33 #include <unistd.h>
34
35 #if !defined(PATH_MAX)
36 #define PATH_MAX 256
37 #endif
38
39 #if !defined(NAME_MAX)
40 #define NAME_MAX 256
41 #endif
42
43
44 #define SENSOR_TYPE_SHIFT 16
45
46 enum sf_log_type {
47         SF_LOG_PRINT_FILE               = 1,
48         SF_LOG_SYSLOG                   = 2,
49         SF_LOG_DLOG                     = 3,
50 };
51
52 enum sf_priority_type {
53         SF_LOG_ERR                      = 1,
54         SF_LOG_DBG                      = 2,
55         SF_LOG_INFO                     = 3,
56         SF_LOG_WARN                     = 4,
57 };
58
59 void sf_log(int type , int priority , const char *tag , const char *fmt , ...);
60
61 #define MICROSECONDS(tv)        ((tv.tv_sec * 1000000ll) + tv.tv_usec)
62
63 #ifndef __MODULE__
64 #include <string.h>
65 #define __MODULE__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
66 #endif
67
68 //for new log system - dlog
69 #ifdef LOG_TAG
70         #undef LOG_TAG
71 #endif
72 #define LOG_TAG "SENSOR"
73
74 #if defined(_DEBUG) || defined(USE_FILE_DEBUG)
75
76 #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)
77
78 #endif
79
80 #if defined(USE_SYSLOG_DEBUG)
81
82 #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)
83 #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)
84 #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)
85 #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)
86
87 #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)
88 #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)
89 #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)
90 #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)
91 #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)
92
93
94 #elif defined(_DEBUG) || defined(USE_DLOG_DEBUG)
95
96 #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)
97 #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)
98 #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)
99 #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)
100
101 #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)
102 #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)
103 #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)
104 #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)
105 #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)
106
107 #elif defined(USE_FILE_DEBUG)
108
109 #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)
110 #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)
111 #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)
112 #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)
113
114 #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)
115 #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)
116 #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)
117 #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)
118 #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)
119
120 #elif defined(USE_DLOG_LOG)
121
122 #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)
123 #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)
124 #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)
125
126 #define DBG(...) do{} while(0)
127 #define DbgPrint(...) do{} while(0)
128
129
130 #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)
131 #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)
132 #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)
133 #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)
134 #define _T(...)
135
136 #else
137 #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)
138 #define WARN(...) do{} while(0)
139 #define DbgPrint(...) do{} while(0)
140 #define DBG(...) do{} while(0)
141 #define INFO(...) do{} while(0)
142
143 #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)
144 #define _W(...) do{} while(0)
145 #define _I(...) do{} while(0)
146 #define _D(...) do{} while(0)
147 #define _T(...) do{} while(0)
148
149 #endif
150
151
152 #if defined(_DEBUG)
153 #  define warn_if(expr, fmt, arg...) do { \
154                 if(expr) { \
155                         DBG("(%s) -> " fmt, #expr, ##arg); \
156                 } \
157         } while (0)
158 #  define ret_if(expr) do { \
159                 if(expr) { \
160                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
161                         return; \
162                 } \
163         } while (0)
164 #  define retv_if(expr, val) do { \
165                 if(expr) { \
166                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
167                         return (val); \
168                 } \
169         } while (0)
170 #  define retm_if(expr, fmt, arg...) do { \
171                 if(expr) { \
172                         ERR(fmt, ##arg); \
173                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
174                         return; \
175                 } \
176         } while (0)
177 #  define retvm_if(expr, val, fmt, arg...) do { \
178                 if(expr) { \
179                         ERR(fmt, ##arg); \
180                         DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
181                         return (val); \
182                 } \
183         } while (0)
184
185 #else
186 #  define warn_if(expr, fmt, arg...) do { \
187                 if(expr) { \
188                         ERR(fmt, ##arg); \
189                 } \
190         } while (0)
191 #  define ret_if(expr) do { \
192                 if(expr) { \
193                         return; \
194                 } \
195         } while (0)
196 #  define retv_if(expr, val) do { \
197                 if(expr) { \
198                         return (val); \
199                 } \
200         } while (0)
201 #  define retm_if(expr, fmt, arg...) do { \
202                 if(expr) { \
203                         ERR(fmt, ##arg); \
204                         return; \
205                 } \
206         } while (0)
207 #  define retvm_if(expr, val, fmt, arg...) do { \
208                 if(expr) { \
209                         ERR(fmt, ##arg); \
210                         return (val); \
211                 } \
212         } while (0)
213
214 #endif
215
216 struct sensor_data_t;
217 struct sensorhub_data_t;
218 typedef struct sensor_data_t sensor_data_t;
219 typedef struct sensorhub_data_t sensorhub_data_t;
220
221 const char* get_client_name(void);
222 bool get_proc_name(pid_t pid, char *process_name);
223 bool is_sensorhub_event(unsigned int event_type);
224 void copy_sensor_data(sensor_data_t *dest, sensor_data_t *src);
225 void copy_sensorhub_data(sensorhub_data_t *dest, sensorhub_data_t *src);
226
227 #ifdef __cplusplus
228 }
229 #endif
230
231 #endif /* _SENSOR_LOGS_H_ */