1/*
2** Copyright 2008, The Android Open-Source Project
3**
4** Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
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#ifndef DEBUG_H
18#define DEBUG_H
19
20#include <stdio.h>
21
22#define LOG_TAG "RPC"
23#include <utils/Log.h>
24
25#ifdef RPC_LOG_TO_STDOUT_ONLY
26#define PRINT(x...) do {                                    \
27        fprintf(stdout, "%s(%d) ", __FUNCTION__, __LINE__); \
28        fprintf(stdout, ##x);                               \
29    } while(0)
30#elif defined(RPC_LOG_TO_STDOUT_AND_LOG)
31#define PRINT(x...) do {                                    \
32        fprintf(stdout, "%s(%d) ", __FUNCTION__, __LINE__); \
33        fprintf(stdout, ##x);                               \
34        ALOGI(x);                               \
35    } while(0)
36#else
37#define PRINT(x...) ALOGI(x)
38#endif
39
40#ifdef DEBUG
41#define D PRINT
42#else
43#define D(x...) do { } while(0)
44#endif
45
46#ifdef VERBOSE
47#define V PRINT
48#else
49#define V(x...) do { } while(0)
50#endif
51
52#define E(x...) do {                                        \
53        fprintf(stderr, "%s(%d) ", __FUNCTION__, __LINE__); \
54        fprintf(stderr, ##x);                               \
55        ALOGE(x);                                            \
56    } while(0)
57
58#define FAILIF(cond, msg...) do {                                              \
59        if (__builtin_expect (cond, 0)) {                                      \
60            fprintf(stderr, "%s:%s:(%d): ", __FILE__, __FUNCTION__, __LINE__); \
61            fprintf(stderr, ##msg);                                            \
62            ALOGE(msg);                                                         \
63        }                                                                      \
64    } while(0)
65
66#endif/*DEBUG_H*/
67