cc4911ffecd4c5961b8bf17a306393144b5adf4e
[apps/livebox/data-provider-master.git] / include / debug.h
1 /*
2  * Copyright 2013  Samsung Electronics Co., Ltd
3  *
4  * Licensed under the Flora License, Version 1.1 (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 #if !defined(FLOG)
18 #define DbgPrint(format, arg...)        SECURE_LOGD(format, ##arg)
19 #define ErrPrint(format, arg...)        SECURE_LOGE(format, ##arg)
20 #define WarnPrint(format, arg...)       SECURE_LOGW(format, ##arg)
21 #else
22 extern FILE *__file_log_fp;
23 #define DbgPrint(format, arg...) do { fprintf(__file_log_fp, "[LOG] [\e[32m%s/%s\e[0m:%d] " format, util_basename(__FILE__), __func__, __LINE__, ##arg); fflush(__file_log_fp); } while (0)
24 #define ErrPrint(format, arg...) do { fprintf(__file_log_fp, "[ERR] [\e[32m%s/%s\e[0m:%d] " format, util_basename(__FILE__), __func__, __LINE__, ##arg); fflush(__file_log_fp); } while (0)
25 #define WarnPrint(format, arg...) do { fprintf(__file_log_fp, "[WRN] [\e[32m%s/%s\e[0m:%d] " format, util_basename(__FILE__), __func__, __LINE__, ##arg); fflush(__file_log_fp); } while (0)
26 #endif
27
28 // DbgPrint("FREE\n");
29 #define DbgFree(a) do { \
30         free(a); \
31 } while (0)
32
33 #define DbgXFree(a) do { \
34         DbgPrint("XFree\n"); \
35         XFree(a); \
36 } while (0)
37
38
39 #if defined(LOG_TAG)
40 #undef LOG_TAG
41 #endif
42
43 #define LOG_TAG "DATA_PROVIDER_MASTER"
44
45 #if defined(_ENABLE_PERF)
46 #define PERF_INIT() \
47         struct timeval __stv; \
48         struct timeval __etv; \
49         struct timeval __rtv
50
51 #define PERF_BEGIN() do { \
52         if (gettimeofday(&__stv, NULL) < 0) { \
53                 ErrPrint("gettimeofday: %s\n", strerror(errno)); \
54         } \
55 } while (0)
56
57 #define PERF_MARK(tag) do { \
58         if (gettimeofday(&__etv, NULL) < 0) { \
59                 ErrPrint("gettimeofday: %s\n", strerror(errno)); \
60         } \
61         timersub(&__etv, &__stv, &__rtv); \
62         DbgPrint("[%s] %u.%06u\n", tag, __rtv.tv_sec, __rtv.tv_usec); \
63 } while (0)
64 #else
65 #define PERF_INIT()
66 #define PERF_BEGIN()
67 #define PERF_MARK(tag)
68 #endif
69
70 /* End of a file */