diff mbox

[i-g-t,2/5] lib: add a critical warning level

Message ID 1418834747-5598-2-git-send-email-thomas.wood@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Thomas Wood Dec. 17, 2014, 4:45 p.m. UTC
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
---
 lib/igt_core.c | 10 ++++++----
 lib/igt_core.h | 10 ++++++++++
 2 files changed, 16 insertions(+), 4 deletions(-)
diff mbox

Patch

diff --git a/lib/igt_core.c b/lib/igt_core.c
index 457b3b1..6159a8c 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -1494,9 +1494,10 @@  void igt_skip_on_simulation(void)
  * between SUCESS and FAILURE.
  *
  * The log level can be set through the IGT_LOG_LEVEL environment variable with
- * values "debug", "info", "warn" and "none". By default verbose debug message
- * are disabled. "none" completely disables all output and is not recommended
- * since crucial issues only reported at the IGT_LOG_WARN level are ignored.
+ * values "debug", "info", "warn", "critical" and "none". By default verbose
+ * debug message are disabled. "none" completely disables all output and is not
+ * recommended since crucial issues only reported at the IGT_LOG_WARN level are
+ * ignored.
  */
 void igt_log(const char *domain, enum igt_log_level level, const char *format, ...)
 {
@@ -1530,6 +1531,7 @@  void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
 		"DEBUG",
 		"INFO",
 		"WARNING",
+		"CRITICAL",
 		"NONE"
 	};
 
@@ -1577,7 +1579,7 @@  void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
 			goto out;
 	}
 
-	if (level == IGT_LOG_WARN) {
+	if (level > IGT_LOG_WARN) {
 		file = stderr;
 		fflush(stdout);
 	}
diff --git a/lib/igt_core.h b/lib/igt_core.h
index 5c5ee25..f184d75 100644
--- a/lib/igt_core.h
+++ b/lib/igt_core.h
@@ -520,6 +520,7 @@  enum igt_log_level {
 	IGT_LOG_DEBUG,
 	IGT_LOG_INFO,
 	IGT_LOG_WARN,
+	IGT_LOG_CRITICAL,
 	IGT_LOG_NONE,
 };
 __attribute__((format(printf, 3, 4)))
@@ -550,6 +551,15 @@  void igt_vlog(const char *domain, enum igt_log_level level, const char *format,
  * Wrapper for igt_log() for message at the IGT_LOG_WARN level.
  */
 #define igt_warn(f...) igt_log(IGT_LOG_DOMAIN, IGT_LOG_WARN, f)
+
+/**
+ * igt_critical:
+ * @...: format string and optional arguments
+ *
+ * Wrapper for igt_log() for message at the IGT_LOG_CRITICAL level.
+ */
+#define igt_critical(f...) igt_log(IGT_LOG_DOMAIN, IGT_LOG_CRITICAL, f)
+
 extern enum igt_log_level igt_log_level;
 
 /**