@ -59,12 +59,49 @@ static int do_log_format(cmd_tbl_t *cmdtp, int flag, int argc,
return 0 ;
}
static int do_log_rec ( cmd_tbl_t * cmdtp , int flag , int argc , char * const argv [ ] )
{
enum log_category_t cat ;
enum log_level_t level ;
const char * file ;
uint line ;
const char * func ;
const char * msg ;
char * end ;
if ( argc < 7 )
return CMD_RET_USAGE ;
cat = log_get_cat_by_name ( argv [ 1 ] ) ;
level = simple_strtoul ( argv [ 2 ] , & end , 10 ) ;
if ( end = = argv [ 2 ] ) {
level = log_get_level_by_name ( argv [ 2 ] ) ;
if ( level = = LOGL_NONE ) {
printf ( " Invalid log level '%s' \n " , argv [ 2 ] ) ;
return CMD_RET_USAGE ;
}
}
if ( level > = LOGL_MAX ) {
printf ( " Invalid log level %u \n " , level ) ;
return CMD_RET_USAGE ;
}
file = argv [ 3 ] ;
line = simple_strtoul ( argv [ 4 ] , NULL , 10 ) ;
func = argv [ 5 ] ;
msg = argv [ 6 ] ;
if ( _log ( cat , level , file , line , func , " %s \n " , msg ) )
return CMD_RET_FAILURE ;
return 0 ;
}
static cmd_tbl_t log_sub [ ] = {
U_BOOT_CMD_MKENT ( level , CONFIG_SYS_MAXARGS , 1 , do_log_level , " " , " " ) ,
# ifdef CONFIG_LOG_TEST
U_BOOT_CMD_MKENT ( test , 2 , 1 , do_log_test , " " , " " ) ,
# endif
U_BOOT_CMD_MKENT ( format , CONFIG_SYS_MAXARGS , 1 , do_log_format , " " , " " ) ,
U_BOOT_CMD_MKENT ( rec , CONFIG_SYS_MAXARGS , 1 , do_log_rec , " " , " " ) ,
} ;
static int do_log ( cmd_tbl_t * cmdtp , int flag , int argc , char * const argv [ ] )
@ -94,7 +131,9 @@ static char log_help_text[] =
" log format <fmt> - set log output format. <fmt> is a string where \n "
" \t each letter indicates something that should be displayed: \n "
" \t c=category, l=level, F=file, L=line number, f=function, m=msg \n "
" \t or 'default', equivalent to 'fm', or 'all' for all "
" \t or 'default', equivalent to 'fm', or 'all' for all \n "
" log rec <category> <level> <file> <line> <func> <message> - "
" output a log record "
;
# endif