libpayload: CMOS access was implemented in a backward way

Instead of having the highlevel functions make use of the lowlevel
functions, it implemented the lowlevel stuff in terms of highlevel.

Change-Id: I530bfe3cbc6f57a6294d86fbf1739e06467a2318
Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com>
Reviewed-on: http://review.coreboot.org/1539
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Patrick Georgi 2012-09-24 20:47:03 +02:00 committed by Stefan Reinauer
parent c31e3ac258
commit d357e62836
1 changed files with 6 additions and 8 deletions

View File

@ -158,13 +158,11 @@ static struct cb_cmos_entries *lookup_cmos_entry(struct cb_cmos_option_table *op
int len = name ? strnlen(name, CMOS_MAX_NAME_LENGTH) : 0; int len = name ? strnlen(name, CMOS_MAX_NAME_LENGTH) : 0;
/* cmos entries are located right after the option table */ /* cmos entries are located right after the option table */
cmos_entry = first_cmos_entry(option_table);
for ( cmos_entry = (struct cb_cmos_entries*)((unsigned char *)option_table + option_table->header_length); while (cmos_entry) {
cmos_entry->tag == CB_TAG_OPTION; if (memcmp((const char*)cmos_entry->name, name, len) == 0)
cmos_entry = (struct cb_cmos_entries*)((unsigned char *)cmos_entry + cmos_entry->size)) { return cmos_entry;
if (memcmp((const char*)cmos_entry->name, name, len)) cmos_entry = next_cmos_entry(cmos_entry);
continue;
return cmos_entry;
} }
printf("ERROR: No such CMOS option (%s)\n", name); printf("ERROR: No such CMOS option (%s)\n", name);
@ -173,7 +171,7 @@ static struct cb_cmos_entries *lookup_cmos_entry(struct cb_cmos_option_table *op
struct cb_cmos_entries *first_cmos_entry(struct cb_cmos_option_table *option_table) struct cb_cmos_entries *first_cmos_entry(struct cb_cmos_option_table *option_table)
{ {
return lookup_cmos_entry(option_table, NULL); return (struct cb_cmos_entries*)((unsigned char *)option_table + option_table->header_length);
} }
struct cb_cmos_entries *next_cmos_entry(struct cb_cmos_entries *cmos_entry) struct cb_cmos_entries *next_cmos_entry(struct cb_cmos_entries *cmos_entry)