Better error messages, a bit of code cleanup, and a big endian fix.
Not addressed: qemu_uuid_parse() sets an SMBIOS field by side effect.
Gross!
Testing:
* Verify error messages improve for
-smbios gaga
-smbios file=gaga
-smbios type=42
-smbios type=1,uuid=gaga
-smbios type=0,release=gaga
* Verify SMBIOS table remains unchanged
-smbios type=0,vendor=me,version=42,date=today,release=1.2 -smbios
type=1,manufacturer=me,product=crap,version=6,serial=77,uuid=988bc9dd-0986-440f-ac24-cf9626c5aa88,sku=888,family=flintstones
by sticking
qemu_hexdump(smbios_entries, stdout, "SMBIOS", smbios_entries_len);
into smbios_get_table()
v2: Address "Hawkeye" Laszlo's review
* 1-3/7 unchanged
* Drop 4/7 because it's buggy, and the fixed version isn't worthwhile
* Spelling fix in commit message of 5/7
* Correct scanf format in 5-6/7
Markus Armbruster (6):
error-report.h: Supply missing include
log.h: Supply missing includes
smbios: Convert to error_report()
smbios: Clean up smbios_add_field() parameters
smbios: Fix -smbios type=0,release=... for big endian hosts
smbios: Check R in -smbios type=0,release=R parses okay
arch_init.c | 3 +--
hw/i386/smbios.c | 57 ++++++++++++++++++++++++---------------------
include/hw/i386/smbios.h | 2 +-
include/qemu/error-report.h | 1 +
include/qemu/log.h | 3 +++
5 files changed, 37 insertions(+), 29 deletions(-)
--
1.7.11.7