• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Copyright (C) 2007-2008 The Android Open Source Project
2 **
3 ** This software is licensed under the terms of the GNU General Public
4 ** License version 2, as published by the Free Software Foundation, and
5 ** may be copied, distributed, and modified under those terms.
6 **
7 ** This program is distributed in the hope that it will be useful,
8 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
9 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10 ** GNU General Public License for more details.
11 */
12 #ifndef _ANDROID_UTILS_DEBUG_H
13 #define _ANDROID_UTILS_DEBUG_H
14 
15 #include <stdarg.h>
16 
17 #define  VERBOSE_TAG_LIST    \
18     _VERBOSE_TAG(init,         "emulator initialization")  \
19     _VERBOSE_TAG(console,      "control console")  \
20     _VERBOSE_TAG(modem,        "emulated GSM modem")  \
21     _VERBOSE_TAG(radio,        "emulated GSM AT Command channel") \
22     _VERBOSE_TAG(keys,         "key bindings & presses") \
23     _VERBOSE_TAG(slirp,        "internal router/firewall") \
24     _VERBOSE_TAG(timezone,     "host timezone detection" ) \
25     _VERBOSE_TAG(socket,       "network sockets") \
26     _VERBOSE_TAG(proxy,        "network proxy support") \
27     _VERBOSE_TAG(audio,        "audio sub-system") \
28     _VERBOSE_TAG(audioin,      "audio input backend") \
29     _VERBOSE_TAG(audioout,     "audio output backend") \
30     _VERBOSE_TAG(surface,      "video surface support") \
31     _VERBOSE_TAG(qemud,        "qemud multiplexer daemon") \
32     _VERBOSE_TAG(gps,          "emulated GPS") \
33     _VERBOSE_TAG(nand_limits,  "nand/flash read/write thresholding") \
34     _VERBOSE_TAG(hw_control,   "emulated power/flashlight/led/vibrator") \
35     _VERBOSE_TAG(avd_config,   "android virtual device configuration") \
36     _VERBOSE_TAG(sensors,      "emulated sensors") \
37     _VERBOSE_TAG(memcheck,     "memory checker") \
38     _VERBOSE_TAG(camera,       "camera") \
39     _VERBOSE_TAG(adevice,      "android device connected via port forwarding") \
40     _VERBOSE_TAG(sensors_port, "sensors emulator connected to android device") \
41     _VERBOSE_TAG(mtport,       "multi-touch emulator connected to android device") \
42     _VERBOSE_TAG(mtscreen,     "multi-touch screen emulation") \
43     _VERBOSE_TAG(gles,         "hardware OpenGLES emulation") \
44     _VERBOSE_TAG(adbserver,    "ADB server") \
45     _VERBOSE_TAG(adbclient,    "ADB QEMU client") \
46     _VERBOSE_TAG(adb,          "ADB debugger") \
47     _VERBOSE_TAG(asconnector,  "Asynchronous socket connector") \
48     _VERBOSE_TAG(asyncsocket,  "Asynchronous socket") \
49     _VERBOSE_TAG(sdkctlsocket, "Socket tethering to SdkControl server") \
50 
51 #define  _VERBOSE_TAG(x,y)  VERBOSE_##x,
52 typedef enum {
53     VERBOSE_TAG_LIST
54     VERBOSE_MAX  /* do not remove */
55 } VerboseTag;
56 #undef  _VERBOSE_TAG
57 
58 /* defined in android_main.c */
59 extern unsigned long  android_verbose;
60 
61 #define  VERBOSE_ENABLE(tag)    \
62     android_verbose |= (1 << VERBOSE_##tag)
63 
64 #define  VERBOSE_DISABLE(tag)   \
65     android_verbose &= (1 << VERBOSE_##tag)
66 
67 #define  VERBOSE_CHECK(tag)    \
68     ((android_verbose & (1 << VERBOSE_##tag)) != 0)
69 
70 #define  VERBOSE_CHECK_ANY()    \
71     (android_verbose != 0)
72 
73 #define  VERBOSE_PRINT(tag,...)  \
74     do { if (VERBOSE_CHECK(tag)) dprint(__VA_ARGS__); } while (0)
75 
76 /** DEBUG TRACE SUPPORT
77  **
78  ** debug messages can be sent by calling these function
79  **
80  ** 'dprint' prints the message, then appends a '\n\
81  ** 'dprintn' simply prints the message as is
82  ** 'dprintnv' allows you to use a va_list argument
83  ** 'dwarning' prints a warning message, then appends a '\n'
84  ** 'derror' prints a severe error message, then appends a '\n'
85  */
86 
87 extern void   dprint( const char*  format, ... );
88 extern void   dprintn( const char*  format, ... );
89 extern void   dprintnv( const char*  format, va_list  args );
90 extern void   dwarning( const char*  format, ... );
91 extern void   derror( const char*  format, ... );
92 
93 /** STDOUT/STDERR REDIRECTION
94  **
95  ** allows you to shut temporarily shutdown stdout/stderr
96  ** this is useful to get rid of debug messages from ALSA and esd
97  ** on Linux.
98  **/
99 
100 extern void  stdio_disable( void );
101 extern void  stdio_enable( void );
102 
103 /* */
104 
105 #endif /* _ANDROID_UTILS_DEBUG_H */
106