libpayload: Add iterators for CMOS variables
Provide functions that pick the first CMOS variable defined in the cmos layout, and from there, the next one. Change-Id: Ie98146de7f6273089fc6fc0b232a4b94337cf8a3 Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Reviewed-on: http://review.coreboot.org/587 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
This commit is contained in:
parent
56f468d29b
commit
0a59511108
|
@ -171,6 +171,20 @@ static struct cb_cmos_entries *lookup_cmos_entry(struct cb_cmos_option_table *op
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct cb_cmos_entries *first_cmos_entry(struct cb_cmos_option_table *option_table)
|
||||||
|
{
|
||||||
|
return lookup_cmos_entry(option_table, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
struct cb_cmos_entries *next_cmos_entry(struct cb_cmos_entries *cmos_entry)
|
||||||
|
{
|
||||||
|
struct cb_cmos_entries *next = (struct cb_cmos_entries*)((unsigned char *)cmos_entry + cmos_entry->size);
|
||||||
|
if (next->tag == CB_TAG_OPTION)
|
||||||
|
return next;
|
||||||
|
else
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Either value or text must be NULL. Returns the field that matches "the other" for a given config_id */
|
/* Either value or text must be NULL. Returns the field that matches "the other" for a given config_id */
|
||||||
static struct cb_cmos_enums *lookup_cmos_enum_core(struct cb_cmos_option_table *option_table, int config_id, u8 *value, char *text)
|
static struct cb_cmos_enums *lookup_cmos_enum_core(struct cb_cmos_option_table *option_table, int config_id, u8 *value, char *text)
|
||||||
{
|
{
|
||||||
|
|
|
@ -206,6 +206,8 @@ struct cb_cmos_option_table *get_system_option_table(void);
|
||||||
int options_checksum_valid(const struct nvram_accessor *nvram);
|
int options_checksum_valid(const struct nvram_accessor *nvram);
|
||||||
void fix_options_checksum_with(const struct nvram_accessor *nvram);
|
void fix_options_checksum_with(const struct nvram_accessor *nvram);
|
||||||
void fix_options_checksum(void);
|
void fix_options_checksum(void);
|
||||||
|
struct cb_cmos_entries *first_cmos_entry(struct cb_cmos_option_table *option_table);
|
||||||
|
struct cb_cmos_entries *next_cmos_entry(struct cb_cmos_entries *cur);
|
||||||
int get_option_with(const struct nvram_accessor *nvram, struct cb_cmos_option_table *option_table, void *dest, char *name);
|
int get_option_with(const struct nvram_accessor *nvram, struct cb_cmos_option_table *option_table, void *dest, char *name);
|
||||||
int get_option_from(struct cb_cmos_option_table *option_table, void *dest, char *name);
|
int get_option_from(struct cb_cmos_option_table *option_table, void *dest, char *name);
|
||||||
int get_option(void *dest, char *name);
|
int get_option(void *dest, char *name);
|
||||||
|
|
Loading…
Reference in New Issue