2010-08-10 15:58:50 -03:00
# include "util.h"
2012-05-29 13:22:58 +09:00
# include "../debug.h"
2011-10-26 07:11:03 -02:00
2012-05-29 13:22:58 +09:00
/*
* Default error logging functions
*/
static int perf_stdio__error ( const char * format , va_list args )
2010-03-24 16:40:14 -03:00
{
2012-05-29 13:22:58 +09:00
fprintf ( stderr , " Error: \n " ) ;
vfprintf ( stderr , format , args ) ;
return 0 ;
2010-03-24 16:40:14 -03:00
}
2012-05-29 13:22:58 +09:00
static int perf_stdio__warning ( const char * format , va_list args )
2012-03-16 17:50:52 +09:00
{
2012-05-29 13:22:58 +09:00
fprintf ( stderr , " Warning: \n " ) ;
vfprintf ( stderr , format , args ) ;
return 0 ;
2012-03-16 17:50:52 +09:00
}
2012-05-29 13:22:58 +09:00
static struct perf_error_ops default_eops =
2010-05-16 21:04:27 -03:00
{
2012-05-29 13:22:58 +09:00
. error = perf_stdio__error ,
. warning = perf_stdio__warning ,
} ;
2010-05-16 21:04:27 -03:00
2012-05-29 13:22:58 +09:00
static struct perf_error_ops * perf_eops = & default_eops ;
2010-11-06 11:47:24 +03:00
2011-10-26 08:00:55 -02:00
2012-05-29 13:22:58 +09:00
int ui__error ( const char * format , . . . )
2011-10-26 08:00:55 -02:00
{
2012-05-29 13:22:58 +09:00
int ret ;
va_list args ;
2011-10-26 12:04:37 -02:00
2012-05-29 13:22:58 +09:00
va_start ( args , format ) ;
ret = perf_eops - > error ( format , args ) ;
va_end ( args ) ;
2011-10-26 08:00:55 -02:00
2012-05-29 13:22:58 +09:00
return ret ;
2010-03-24 16:40:14 -03:00
}
2010-11-27 02:41:01 -02:00
2011-10-26 12:04:37 -02:00
int ui__warning ( const char * format , . . . )
2010-11-27 02:41:01 -02:00
{
2012-05-29 13:22:58 +09:00
int ret ;
2010-11-27 02:41:01 -02:00
va_list args ;
va_start ( args , format ) ;
2012-05-29 13:22:58 +09:00
ret = perf_eops - > warning ( format , args ) ;
2011-10-26 08:00:55 -02:00
va_end ( args ) ;
2012-05-29 13:22:58 +09:00
return ret ;
2011-10-26 08:00:55 -02:00
}
2012-05-29 13:22:58 +09:00
/**
* perf_error__register - Register error logging functions
* @ eops : The pointer to error logging function struct
*
* Register UI - specific error logging functions . Before calling this ,
* other logging functions should be unregistered , if any .
*/
int perf_error__register ( struct perf_error_ops * eops )
2011-10-26 08:00:55 -02:00
{
2012-05-29 13:22:58 +09:00
if ( perf_eops ! = & default_eops )
return - 1 ;
2011-10-26 08:00:55 -02:00
2012-05-29 13:22:58 +09:00
perf_eops = eops ;
return 0 ;
}
/**
* perf_error__unregister - Unregister error logging functions
* @ eops : The pointer to error logging function struct
*
* Unregister already registered error logging functions .
*/
int perf_error__unregister ( struct perf_error_ops * eops )
{
if ( perf_eops ! = eops )
return - 1 ;
perf_eops = & default_eops ;
return 0 ;
2010-11-27 02:41:01 -02:00
}