From: Brian Paul Date: Wed, 23 Nov 2005 01:37:30 +0000 (+0000) Subject: New _eglLog() function to replace fprintf/printf calls for debug/info. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f049ca4e33e0e5d06223a1c05815bc564b4bf06e;p=mesa.git New _eglLog() function to replace fprintf/printf calls for debug/info. --- diff --git a/src/egl/main/Makefile b/src/egl/main/Makefile index 4bb1ffc9e85..45a4fb39b8b 100644 --- a/src/egl/main/Makefile +++ b/src/egl/main/Makefile @@ -12,6 +12,7 @@ HEADERS = \ egldisplay.h \ egldriver.h \ eglglobals.h \ + egllog.h \ eglhash.h \ eglmode.h \ eglscreen.h \ @@ -24,6 +25,7 @@ SOURCES = \ egldisplay.c \ egldriver.c \ eglglobals.c \ + egllog.c \ eglhash.c \ eglmode.c \ eglscreen.c \ diff --git a/src/egl/main/egllog.c b/src/egl/main/egllog.c new file mode 100644 index 00000000000..59b1d2684e3 --- /dev/null +++ b/src/egl/main/egllog.c @@ -0,0 +1,57 @@ +/** + * Logging facility for debug/info messages. + */ + + +#include +#include +#include +#include "egllog.h" + +#define MAXSTRING 1000 + + +/* XXX init this with an env var or something */ +static EGLint ReportingLevel = _EGL_DEBUG; + + +/** + * Log a message to stderr. + * \param level one of _EGL_FATAL, _EGL_WARNING, _EGL_INFO, _EGL_DEBUG. + */ +void +_eglLog(EGLint level, const char *fmtStr, ...) +{ + va_list args; + char msg[MAXSTRING]; + const char *levelStr; + + if (level <= ReportingLevel) { + switch (level) { + case _EGL_FATAL: + levelStr = "Fatal"; + break; + case _EGL_WARNING: + levelStr = "Warning"; + break; + case _EGL_INFO: + levelStr = "Info"; + break; + case _EGL_DEBUG: + levelStr = "Debug"; + break; + default: + levelStr = ""; + } + + va_start(args, fmtStr); + vsnprintf(msg, MAXSTRING, fmtStr, args); + va_end(args); + + fprintf(stderr, "EGL %s: %s\n", levelStr, msg); + + if (level == _EGL_FATAL) { + exit(1); /* or abort()? */ + } + } +} diff --git a/src/egl/main/egllog.h b/src/egl/main/egllog.h new file mode 100644 index 00000000000..2fa352f155d --- /dev/null +++ b/src/egl/main/egllog.h @@ -0,0 +1,16 @@ +#ifndef EGLLOG_INCLUDED +#define EGLLOG_INCLUDED + +#include "egltypedefs.h" + +#define _EGL_FATAL 0 /* unrecoverable error */ +#define _EGL_WARNING 1 /* recoverable error/problem */ +#define _EGL_INFO 2 /* just useful info */ +#define _EGL_DEBUG 3 /* useful info for debugging */ + + +extern void +_eglLog(EGLint level, const char *fmtStr, ...); + + +#endif /* EGLLOG_INCLUDED */