diff options
Diffstat (limited to 'android/utils/debug.h')
-rw-r--r-- | android/utils/debug.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/android/utils/debug.h b/android/utils/debug.h new file mode 100644 index 0000000..fdf93c9 --- /dev/null +++ b/android/utils/debug.h @@ -0,0 +1,91 @@ +/* Copyright (C) 2007-2008 The Android Open Source Project +** +** This software is licensed under the terms of the GNU General Public +** License version 2, as published by the Free Software Foundation, and +** may be copied, distributed, and modified under those terms. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +*/ +#ifndef _ANDROID_UTILS_DEBUG_H +#define _ANDROID_UTILS_DEBUG_H + +#include <stdarg.h> + +#define VERBOSE_TAG_LIST \ + _VERBOSE_TAG(init, "emulator initialization") \ + _VERBOSE_TAG(console, "control console") \ + _VERBOSE_TAG(modem, "emulated GSM modem") \ + _VERBOSE_TAG(radio, "emulated GSM AT Command channel") \ + _VERBOSE_TAG(keys, "key bindings & presses") \ + _VERBOSE_TAG(slirp, "internal router/firewall") \ + _VERBOSE_TAG(timezone, "host timezone detection" ) \ + _VERBOSE_TAG(socket, "network sockets") \ + _VERBOSE_TAG(proxy, "network proxy support") \ + _VERBOSE_TAG(audio, "audio sub-system") \ + _VERBOSE_TAG(audioin, "audio input backend") \ + _VERBOSE_TAG(audioout, "audio output backend") \ + _VERBOSE_TAG(surface, "video surface support") \ + _VERBOSE_TAG(qemud, "qemud multiplexer daemon") \ + _VERBOSE_TAG(gps, "emulated GPS") \ + _VERBOSE_TAG(nand_limits, "nand/flash read/write thresholding") \ + _VERBOSE_TAG(hw_control, "emulated power/flashlight/led/vibrator") \ + _VERBOSE_TAG(avd_config, "android virtual device configuration") \ + +#define _VERBOSE_TAG(x,y) VERBOSE_##x, +typedef enum { + VERBOSE_TAG_LIST + VERBOSE_MAX /* do not remove */ +} VerboseTag; +#undef _VERBOSE_TAG + +/* defined in android_main.c */ +extern unsigned long android_verbose; + +#define VERBOSE_ENABLE(tag) \ + android_verbose |= (1 << VERBOSE_##tag) + +#define VERBOSE_DISABLE(tag) \ + android_verbose &= (1 << VERBOSE_##tag) + +#define VERBOSE_CHECK(tag) \ + ((android_verbose & (1 << VERBOSE_##tag)) != 0) + +#define VERBOSE_CHECK_ANY() \ + (android_verbose != 0) + +#define VERBOSE_PRINT(tag,...) \ + do { if (VERBOSE_CHECK(tag)) dprint(__VA_ARGS__); } while (0) + +/** DEBUG TRACE SUPPORT + ** + ** debug messages can be sent by calling these function + ** + ** 'dprint' prints the message, then appends a '\n\ + ** 'dprintn' simply prints the message as is + ** 'dprintnv' allows you to use a va_list argument + ** 'dwarning' prints a warning message, then appends a '\n' + ** 'derror' prints a severe error message, then appends a '\n' + */ + +extern void dprint( const char* format, ... ); +extern void dprintn( const char* format, ... ); +extern void dprintnv( const char* format, va_list args ); +extern void dwarning( const char* format, ... ); +extern void derror( const char* format, ... ); + +/** STDOUT/STDERR REDIRECTION + ** + ** allows you to shut temporarily shutdown stdout/stderr + ** this is useful to get rid of debug messages from ALSA and esd + ** on Linux. + **/ + +extern void stdio_disable( void ); +extern void stdio_enable( void ); + +/* */ + +#endif /* _ANDROID_UTILS_DEBUG_H */ |