diff options
Diffstat (limited to 'dmidecode.c')
-rw-r--r-- | dmidecode.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/dmidecode.c b/dmidecode.c index 30f855b..1540937 100644 --- a/dmidecode.c +++ b/dmidecode.c @@ -3815,7 +3815,8 @@ static void dmi_table(u32 base, u16 len, u16 num, u16 ver, const char *devmem) u8 *next; struct dmi_header *h=(struct dmi_header *)data; int display=((opt.type==NULL || opt.type[h->type]) - && !((opt.flags & FLAG_QUIET) && h->type>39)); + && !((opt.flags & FLAG_QUIET) && h->type>39) + && !opt.string_offset); /* In quiet mode, stop decoding at end of table marker */ if((opt.flags & FLAG_QUIET) && h->type==127) @@ -3843,6 +3844,12 @@ static void dmi_table(u32 base, u16 len, u16 num, u16 ver, const char *devmem) printf("\t<TRUNCATED>\n"); printf("\n"); } + else if(opt.string_type==h->type + && opt.string_offset + && opt.string_offset<h->length) + { + printf("%s\n", dmi_string(h, data[opt.string_offset])); + } data=next; i++; |