• 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