[PATCH 6/8] acpi: syntaxcheck: issue error messages depending on error level

Colin King colin.king at canonical.com
Wed Feb 27 14:40:52 UTC 2013


From: Colin Ian King <colin.king at canonical.com>

Since we can determine the error level from the error code we
should more intelligently report high/medium errors or skip messages
depending on the error level.

Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 src/acpi/syntaxcheck/syntaxcheck.c | 33 ++++++++++++++++++++++++++++-----
 1 file changed, 28 insertions(+), 5 deletions(-)

diff --git a/src/acpi/syntaxcheck/syntaxcheck.c b/src/acpi/syntaxcheck/syntaxcheck.c
index 4ebf450..185f43a 100644
--- a/src/acpi/syntaxcheck/syntaxcheck.c
+++ b/src/acpi/syntaxcheck/syntaxcheck.c
@@ -475,6 +475,9 @@ static int syntaxcheck_table(fwts_framework *fw, char *tablename, int which)
 						char *ptr;
 						int colon_offset = (colon == NULL) ? 0 : colon + 1 - line;
 						int carat_offset = (carat == NULL) ? 0 : carat - error_text;
+						uint16_t error_level =
+							syntaxcheck_error_code_to_error_level((uint32_t)error_code);
+						bool skip = false;
 
 						/* trim */
 						fwts_chop_newline(error_text);
@@ -497,11 +500,31 @@ static int syntaxcheck_table(fwts_framework *fw, char *tablename, int which)
 
 						snprintf(label, sizeof(label), "AMLAsm%s",
 							syntaxcheck_error_code_to_id(error_code));
-						fwts_failed(fw, LOG_LEVEL_HIGH, label, "Assembler error in line %d", num);
-						syntaxcheck_dump_code(fw, error_code,
-							carat_offset - colon_offset, ptr,
-							iasl_disassembly, num, 8);
-						syntaxcheck_give_advice(fw, error_code);
+
+						switch (error_level) {
+						case ASL_WARNING:
+						case ASL_WARNING2:
+						case ASL_WARNING3:
+							fwts_failed(fw, LOG_LEVEL_MEDIUM, label, "Assembler warning in line %d", num);
+							break;
+						case ASL_ERROR:
+							fwts_failed(fw, LOG_LEVEL_HIGH, label, "Assembler error in line %d", num);
+							break;
+						case ASL_REMARK:
+						case ASL_OPTIMIZATION:
+							skip = true;
+							break;
+						default:
+							fwts_log_info(fw, "Assember message in line %d", num);
+							break;
+						}
+
+						if (!skip) {
+							syntaxcheck_dump_code(fw, error_code,
+								carat_offset - colon_offset, ptr,
+								iasl_disassembly, num, 8);
+							syntaxcheck_give_advice(fw, error_code);
+						}
 					}
 					errors += iasl_error;
 					warnings += iasl_warning;
-- 
1.8.1.2




More information about the fwts-devel mailing list