Change-Id: Iffed3602456f5306711c65f06c873c58d4086e11 Signed-off-by: Stefan Reinauer <reinauer@google.com> Reviewed-on: http://review.coreboot.org/363 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
		
			
				
	
	
		
			82 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Public Domain Curses */
 | 
						|
 | 
						|
#include <curspriv.h>
 | 
						|
 | 
						|
RCSID("$Id: debug.c,v 1.7 2008/07/13 16:08:18 wmcbrine Exp $")
 | 
						|
 | 
						|
/*man-start**************************************************************
 | 
						|
 | 
						|
  Name:                                                         debug
 | 
						|
 | 
						|
  Synopsis:
 | 
						|
        void traceon(void);
 | 
						|
        void traceoff(void);
 | 
						|
        void PDC_debug(const char *, ...);
 | 
						|
 | 
						|
  Description:
 | 
						|
        traceon() and traceoff() toggle the recording of debugging
 | 
						|
        information to the file "trace". Although not standard, similar
 | 
						|
        functions are in some other curses implementations.
 | 
						|
 | 
						|
        PDC_debug() is the function that writes to the file, based on
 | 
						|
        whether traceon() has been called. It's used from the PDC_LOG()
 | 
						|
        macro.
 | 
						|
 | 
						|
  Portability                                X/Open    BSD    SYS V
 | 
						|
        traceon                                 -       -       -
 | 
						|
        traceoff                                -       -       -
 | 
						|
        PDC_debug                               -       -       -
 | 
						|
 | 
						|
**man-end****************************************************************/
 | 
						|
 | 
						|
#include <string.h>
 | 
						|
#include <sys/types.h>
 | 
						|
#include <time.h>
 | 
						|
 | 
						|
bool pdc_trace_on = FALSE;
 | 
						|
 | 
						|
void PDC_debug(const char *fmt, ...)
 | 
						|
{
 | 
						|
    va_list args;
 | 
						|
    FILE *dbfp;
 | 
						|
    char hms[9];
 | 
						|
    time_t now;
 | 
						|
 | 
						|
    if (!pdc_trace_on)
 | 
						|
        return;
 | 
						|
 | 
						|
    /* open debug log file append */
 | 
						|
 | 
						|
    dbfp = fopen("trace", "a");
 | 
						|
    if (!dbfp)
 | 
						|
    {
 | 
						|
        fprintf(stderr,
 | 
						|
            "PDC_debug(): Unable to open debug log file\n");
 | 
						|
        return;
 | 
						|
    }
 | 
						|
 | 
						|
    time(&now);
 | 
						|
    strftime(hms, 9, "%H:%M:%S", localtime(&now));
 | 
						|
    fprintf(dbfp, "At: %8.8ld - %s ", (long) clock(), hms);
 | 
						|
 | 
						|
    va_start(args, fmt);
 | 
						|
    vfprintf(dbfp, fmt, args);
 | 
						|
    va_end(args);
 | 
						|
 | 
						|
    fclose(dbfp);
 | 
						|
}
 | 
						|
 | 
						|
void traceon(void)
 | 
						|
{
 | 
						|
    PDC_LOG(("traceon() - called\n"));
 | 
						|
 | 
						|
    pdc_trace_on = TRUE;
 | 
						|
}
 | 
						|
 | 
						|
void traceoff(void)
 | 
						|
{
 | 
						|
    PDC_LOG(("traceoff() - called\n"));
 | 
						|
 | 
						|
    pdc_trace_on = FALSE;
 | 
						|
}
 |