Change-Id: If881ec130833c7e7e62caa3d31e350a531f5bc8e Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: http://review.coreboot.org/12398 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
		
			
				
	
	
		
			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;
 | |
| }
 |