diff options
author | khali <khali> | 2015-05-04 11:24:54 +0000 |
---|---|---|
committer | khali <khali> | 2015-05-04 11:24:54 +0000 |
commit | b27744de8a0c39b13a01039ba3812bd48feb5255 (patch) | |
tree | 1a22bd225e880d44eaa9587f9afe1efd4b70b3c6 | |
parent | eb6ee0135eb393ef6d33a9956bd25be327af1b6d (diff) | |
download | dmidecode-b27744de8a0c39b13a01039ba3812bd48feb5255.tar.gz |
dmidecode: Simplify function dmi_table_dump
We can let function dmi_table read the memory chunk and free the
memory for us, this avoids some code duplication.
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | dmidecode.c | 22 |
2 files changed, 6 insertions, 17 deletions
@@ -1,6 +1,7 @@ 2015-05-04 Jean Delvare <jdelvare@suse.de> * dmidecode.c: Move table decoding to a separate function. + * dmidecode.c: Simplify function dmi_table_dump. 2015-04-28 Jean Delvare <jdelvare@suse.de> diff --git a/dmidecode.c b/dmidecode.c index 1c277e5..05858b4 100644 --- a/dmidecode.c +++ b/dmidecode.c @@ -4357,20 +4357,11 @@ static void dmi_table_string(const struct dmi_header *h, const u8 *data, u16 ver } } -static void dmi_table_dump(off_t base, u32 len, const char *devmem) +static void dmi_table_dump(const u8 *buf, u32 len) { - u8 *buf; - - if ((buf = mem_chunk(base, len, devmem)) == NULL) - { - fprintf(stderr, "Failed to read table, sorry.\n"); - return; - } - if (!(opt.flags & FLAG_QUIET)) printf("# Writing %d bytes to %s.\n", len, opt.dumpfile); write_dump(32, len, buf, opt.dumpfile, 0); - free(buf); } static void dmi_table_decode(u8 *buf, u32 len, u16 num, u16 ver, u32 flags) @@ -4502,12 +4493,6 @@ static void dmi_table(off_t base, u32 len, u16 num, u16 ver, const char *devmem, if (flags & FLAG_NO_FILE_OFFSET) base = 0; - if (opt.flags & FLAG_DUMP_BIN) - { - dmi_table_dump(base, len, devmem); - return; - } - if ((buf = mem_chunk(base, len, devmem)) == NULL) { fprintf(stderr, "Table is unreachable, sorry." @@ -4518,7 +4503,10 @@ static void dmi_table(off_t base, u32 len, u16 num, u16 ver, const char *devmem, return; } - dmi_table_decode(buf, len, num, ver, flags); + if (opt.flags & FLAG_DUMP_BIN) + dmi_table_dump(buf, len); + else + dmi_table_decode(buf, len, num, ver, flags); free(buf); } |