Upgrade to version 4.1 of radeon driver.
Includes some common routines which may be used by other drivers. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8405 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
/*
|
||||
Copyright (c) 2002, Thomas Kurschel
|
||||
|
||||
|
||||
Part of Radeon driver
|
||||
|
||||
Extended debugging functions
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __DEBUG_EXT_H__
|
||||
#define __DEBUG_EXT_H__
|
||||
|
||||
// this is a dprintf wrapper
|
||||
//
|
||||
// there are three kinds of messages:
|
||||
// flow: used to trace execution
|
||||
// info: tells things that are important but not an error
|
||||
// error: used if something has gone wrong
|
||||
//
|
||||
// common usage is
|
||||
// SHOW_{FLOW,INFO,ERROR}( seriousness, format string, parameters... );
|
||||
// SHOW_{FLOW,INFO,ERROR}0( seriousness, string );
|
||||
//
|
||||
// with
|
||||
// seriousness: the smaller the more serious (0..3)
|
||||
// format string, parameters: normal printf stuff
|
||||
//
|
||||
// to specify the module that created the message you have
|
||||
// to define a string called
|
||||
// DEBUG_MSG_PREFIX
|
||||
// you dynamically speficify the maximum seriousness level by defining
|
||||
// the following variables/macros
|
||||
// debug_level_flow
|
||||
// debug_level_info
|
||||
// debug_level_error
|
||||
//
|
||||
// you _can_ statically specify the maximum seriuosness level by defining
|
||||
// DEBUG_MAX_LEVEL_FLOW
|
||||
// DEBUG_MAX_LEVEL_INFO
|
||||
// DEBUG_MAX_LEVEL_ERRROR
|
||||
//
|
||||
// you _can_ ask to delay execution after each printed message
|
||||
// by defining the duration (in ms) via
|
||||
// DEBUG_WAIT_ON_MSG (for flow and info)
|
||||
// DEBUG_WAIT_ON_ERROR (for error)
|
||||
|
||||
#ifdef DEBUG_WAIT_ON_MSG
|
||||
#define DEBUG_WAIT snooze( DEBUG_WAIT_ON_MSG );
|
||||
#else
|
||||
#define DEBUG_WAIT
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_WAIT_ON_ERROR
|
||||
#define DEBUG_WAIT_ERROR snooze( DEBUG_WAIT_ON_ERROR );
|
||||
#else
|
||||
#define DEBUG_WAIT_ERROR
|
||||
#endif
|
||||
|
||||
#ifndef DEBUG_MAX_LEVEL_FLOW
|
||||
#define DEBUG_MAX_LEVEL_FLOW 4
|
||||
#endif
|
||||
|
||||
#ifndef DEBUG_MAX_LEVEL_INFO
|
||||
#define DEBUG_MAX_LEVEL_INFO 4
|
||||
#endif
|
||||
|
||||
#ifndef DEBUG_MAX_LEVEL_ERROR
|
||||
#define DEBUG_MAX_LEVEL_ERROR 4
|
||||
#endif
|
||||
|
||||
#ifndef DEBUG_MSG_PREFIX
|
||||
#error you need to define DEBUG_MSG_PREFIX with the module name
|
||||
#endif
|
||||
|
||||
#define FUNC_NAME DEBUG_MSG_PREFIX __FUNCTION__ ": "
|
||||
|
||||
#define SHOW_FLOW(seriousness, format, param...) \
|
||||
do { if( seriousness <= debug_level_flow && seriousness <= DEBUG_MAX_LEVEL_FLOW ) { \
|
||||
dprintf( "%s"##format"\n", FUNC_NAME, param ); DEBUG_WAIT \
|
||||
}} while( 0 )
|
||||
|
||||
#define SHOW_FLOW0(seriousness, format) \
|
||||
do { if( seriousness <= debug_level_flow && seriousness <= DEBUG_MAX_LEVEL_FLOW ) { \
|
||||
dprintf( "%s"##format"\n", FUNC_NAME); DEBUG_WAIT \
|
||||
}} while( 0 )
|
||||
|
||||
#define SHOW_INFO(seriousness, format, param...) \
|
||||
do { if( seriousness <= debug_level_info && seriousness <= DEBUG_MAX_LEVEL_INFO ) { \
|
||||
dprintf( "%s"##format"\n", FUNC_NAME, param ); DEBUG_WAIT \
|
||||
}} while( 0 )
|
||||
|
||||
#define SHOW_INFO0(seriousness, format) \
|
||||
do { if( seriousness <= debug_level_info && seriousness <= DEBUG_MAX_LEVEL_INFO ) { \
|
||||
dprintf( "%s"##format"\n", FUNC_NAME); DEBUG_WAIT \
|
||||
}} while( 0 )
|
||||
|
||||
#define SHOW_ERROR(seriousness, format, param...) \
|
||||
do { if( seriousness <= debug_level_error && seriousness <= DEBUG_MAX_LEVEL_ERROR ) { \
|
||||
dprintf( "%s"##format"\n", FUNC_NAME, param ); DEBUG_WAIT_ERROR \
|
||||
}} while( 0 )
|
||||
|
||||
#define SHOW_ERROR0(seriousness, format) \
|
||||
do { if( seriousness <= debug_level_error && seriousness <= DEBUG_MAX_LEVEL_ERROR ) { \
|
||||
dprintf( "%s"##format"\n", FUNC_NAME); DEBUG_WAIT_ERROR \
|
||||
}} while( 0 )
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user