option: Decouple API from CMOS backend
Prepare to allow using other backends to store options. Change-Id: I3f838d27bf476207c6dc8f2c1f15c3fa9ae47d87 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/54727 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
This commit is contained in:
parent
b2a4c27a2f
commit
07056feba0
|
@ -84,7 +84,7 @@ static struct cmos_entries *find_cmos_entry(struct cmos_option_table *ct, const
|
|||
return NULL;
|
||||
}
|
||||
|
||||
enum cb_err cmos_get_uint_option(unsigned int *dest, const char *name)
|
||||
static enum cb_err cmos_get_uint_option(unsigned int *dest, const char *name)
|
||||
{
|
||||
struct cmos_option_table *ct;
|
||||
struct cmos_entries *ce;
|
||||
|
@ -113,6 +113,12 @@ enum cb_err cmos_get_uint_option(unsigned int *dest, const char *name)
|
|||
return CB_SUCCESS;
|
||||
}
|
||||
|
||||
unsigned int get_uint_option(const char *name, const unsigned int fallback)
|
||||
{
|
||||
unsigned int value = 0;
|
||||
return cmos_get_uint_option(&value, name) == CB_SUCCESS ? value : fallback;
|
||||
}
|
||||
|
||||
static enum cb_err set_cmos_value(unsigned long bit, unsigned long length,
|
||||
void *vret)
|
||||
{
|
||||
|
@ -154,7 +160,7 @@ static enum cb_err set_cmos_value(unsigned long bit, unsigned long length,
|
|||
return CB_SUCCESS;
|
||||
}
|
||||
|
||||
enum cb_err cmos_set_uint_option(const char *name, unsigned int *value)
|
||||
static enum cb_err cmos_set_uint_option(const char *name, unsigned int *value)
|
||||
{
|
||||
struct cmos_option_table *ct;
|
||||
struct cmos_entries *ce;
|
||||
|
@ -180,6 +186,11 @@ enum cb_err cmos_set_uint_option(const char *name, unsigned int *value)
|
|||
return CB_SUCCESS;
|
||||
}
|
||||
|
||||
enum cb_err set_uint_option(const char *name, unsigned int value)
|
||||
{
|
||||
return cmos_set_uint_option(name, &value);
|
||||
}
|
||||
|
||||
int cmos_lb_cks_valid(void)
|
||||
{
|
||||
return cmos_checksum_valid(LB_CKS_RANGE_START, LB_CKS_RANGE_END, LB_CKS_LOC);
|
||||
|
|
|
@ -7,25 +7,23 @@
|
|||
|
||||
void sanitize_cmos(void);
|
||||
|
||||
enum cb_err cmos_set_uint_option(const char *name, unsigned int *value);
|
||||
enum cb_err cmos_get_uint_option(unsigned int *dest, const char *name);
|
||||
|
||||
static inline enum cb_err set_uint_option(const char *name, unsigned int value)
|
||||
{
|
||||
if (CONFIG(USE_OPTION_TABLE))
|
||||
return cmos_set_uint_option(name, &value);
|
||||
|
||||
return CB_CMOS_OTABLE_DISABLED;
|
||||
}
|
||||
#if !CONFIG(USE_OPTION_TABLE)
|
||||
|
||||
static inline unsigned int get_uint_option(const char *name, const unsigned int fallback)
|
||||
{
|
||||
if (CONFIG(USE_OPTION_TABLE)) {
|
||||
unsigned int value = 0;
|
||||
if (cmos_get_uint_option(&value, name) == CB_SUCCESS)
|
||||
return value;
|
||||
}
|
||||
return fallback;
|
||||
}
|
||||
|
||||
static inline enum cb_err set_uint_option(const char *name, unsigned int value)
|
||||
{
|
||||
return CB_CMOS_OTABLE_DISABLED;
|
||||
}
|
||||
|
||||
#else /* USE_OPTION_TABLE */
|
||||
|
||||
unsigned int get_uint_option(const char *name, const unsigned int fallback);
|
||||
enum cb_err set_uint_option(const char *name, unsigned int value);
|
||||
|
||||
#endif /* USE_OPTION_TABLE? */
|
||||
|
||||
#endif /* _OPTION_H_ */
|
||||
|
|
Loading…
Reference in New Issue