Message ID | 1361976054-28357-7-git-send-email-colin.king@canonical.com |
---|---|
State | Accepted |
Headers | show |
On 02/27/2013 10:40 PM, Colin King wrote: > From: Colin Ian King <colin.king@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@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; > Acked-by: Alex Hung <alex.hung@canonical.com>
On Wed, Feb 27, 2013 at 10:40 PM, Colin King <colin.king@canonical.com> wrote: > From: Colin Ian King <colin.king@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@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 > Acked-by: Keng-Yu Lin <kengyu@canonical.com>
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;