ACK: [PATCH 2/5] lib: Make --disassemble-aml accept the outputdir argument (LP: #1201250)
Alex Hung
alex.hung at canonical.com
Thu Feb 27 03:39:09 UTC 2014
On 02/11/2014 08:49 PM, Keng-Yu Lin wrote:
> This patch make it possible to optionally specify an argument as
> the output directory as:
>
> fwts --disassemble-aml=/tmp
>
> If the argument is not specified, the output directory is the pwd.
>
> Signed-off-by: Keng-Yu Lin <kengyu at canonical.com>
> ---
> src/lib/include/fwts_iasl.h | 3 ++-
> src/lib/src/fwts_framework.c | 4 ++--
> src/lib/src/fwts_iasl.c | 22 +++++++++++++++-------
> 3 files changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/src/lib/include/fwts_iasl.h b/src/lib/include/fwts_iasl.h
> index 0de4756..5efc95c 100644
> --- a/src/lib/include/fwts_iasl.h
> +++ b/src/lib/include/fwts_iasl.h
> @@ -22,7 +22,8 @@
>
> #include "fwts.h"
>
> -int fwts_iasl_disassemble_all_to_file(fwts_framework *fw);
> +int fwts_iasl_disassemble_all_to_file(fwts_framework *fw,
> + const char *path);
>
> int fwts_iasl_disassemble(fwts_framework *fw,
> const char *table,
> diff --git a/src/lib/src/fwts_framework.c b/src/lib/src/fwts_framework.c
> index 9c69bca..39ac802 100644
> --- a/src/lib/src/fwts_framework.c
> +++ b/src/lib/src/fwts_framework.c
> @@ -73,7 +73,7 @@ static fwts_option fwts_framework_options[] = {
> { "show-tests-full", "", 0, "Show available tests including all minor tests." },
> { "utils", "u", 0, "Run Utility 'tests'." },
> { "json-data-path", "j:", 1, "Specify path to fwts json data files - default is /usr/share/fwts." },
> - { "disassemble-aml", "", 0, "Disassemble AML from DSDT and SSDT tables." },
> + { "disassemble-aml", "", 2, "Disassemble AML from DSDT and SSDT tables." },
> { "log-type", "", 1, "Specify log type (plaintext, json, html or xml)." },
> { "unsafe", "U", 0, "Unsafe tests (tests that can potentially cause kernel oopses)." },
> { "filter-error-discard", "", 1, "Discard errors that match any of the specified labels." },
> @@ -1091,7 +1091,7 @@ int fwts_framework_options_handler(fwts_framework *fw, int argc, char * const ar
> fwts_framework_strdup(&fw->json_data_path, optarg);
> break;
> case 29: /* --disassemble-aml */
> - fwts_iasl_disassemble_all_to_file(fw);
> + fwts_iasl_disassemble_all_to_file(fw, optarg);
> return FWTS_COMPLETE;
> case 30: /* --log-type */
> if (fwts_framework_log_type_parse(fw, optarg) != FWTS_OK)
> diff --git a/src/lib/src/fwts_iasl.c b/src/lib/src/fwts_iasl.c
> index af1785e..1800912 100644
> --- a/src/lib/src/fwts_iasl.c
> +++ b/src/lib/src/fwts_iasl.c
> @@ -137,26 +137,34 @@ int fwts_iasl_disassemble(fwts_framework *fw,
> * fwts_iasl_disassemble_all_to_file()
> * Disassemble DSDT and SSDT tables to separate files.
> */
> -int fwts_iasl_disassemble_all_to_file(fwts_framework *fw)
> +int fwts_iasl_disassemble_all_to_file(fwts_framework *fw,
> + const char *path)
> {
> int i;
> int ret;
> + char filename[PATH_MAX];
> + char pathname[PATH_MAX];
>
> - ret = fwts_iasl_disassemble_to_file(fw, "DSDT", 0, "DSDT.dsl");
> + if (path == NULL)
> + strncpy(pathname, "", sizeof(pathname));
> + else
> + snprintf(pathname, sizeof(pathname), "%s/", path);
> +
> + snprintf(filename, sizeof(filename), "%sDSDT.dsl", pathname);
> +
> + ret = fwts_iasl_disassemble_to_file(fw, "DSDT", 0, filename);
> if (ret == FWTS_ERROR_NO_PRIV) {
> fprintf(stderr, "Need to have root privilege to read ACPI tables from memory! Re-run using sudo.\n");
> return FWTS_ERROR;
> }
> if (ret == FWTS_OK)
> - printf("Disassembled DSDT to DSDT.dsl\n");
> + printf("Disassembled DSDT to %s\n", filename);
>
> for (i=0; ;i++) {
> - char filename[PATH_MAX];
> -
> - snprintf(filename, sizeof(filename), "SSDT%d.dsl", i);
> + snprintf(filename, sizeof(filename), "%sSSDT%d.dsl", pathname, i);
> if (fwts_iasl_disassemble_to_file(fw, "SSDT", i, filename) != FWTS_OK)
> break;
> - printf("Disassembled SSDT %d to SSDT%d.dsl\n", i, i);
> + printf("Disassembled SSDT %d to %s\n", i, filename);
> }
>
> return FWTS_OK;
>
Acked-by: Alex Hung <alex.hung at canonical.com>
More information about the fwts-devel
mailing list