bootsource: add support for bootsource instance information
Add a C interface to set and get the bootsource instance: int bootsource_get_instance(void); void bootsource_set_instance(int instance); Also export the shell variable "bootsource_instance". Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
54c3870f54
commit
5d8240619c
|
@ -34,6 +34,7 @@ static const char *bootsource_str[] = {
|
|||
};
|
||||
|
||||
static enum bootsource bootsource = BOOTSOURCE_UNKNOWN;
|
||||
static int bootsource_instance = BOOTSOURCE_INSTANCE_UNKNOWN;
|
||||
|
||||
void bootsource_set(enum bootsource src)
|
||||
{
|
||||
|
@ -45,6 +46,20 @@ void bootsource_set(enum bootsource src)
|
|||
setenv("bootsource", bootsource_str[src]);
|
||||
}
|
||||
|
||||
void bootsource_set_instance(int instance)
|
||||
{
|
||||
char buf[32];
|
||||
|
||||
bootsource_instance = instance;
|
||||
|
||||
if (instance < 0)
|
||||
sprintf(buf, "unknown");
|
||||
else
|
||||
snprintf(buf, sizeof(buf), "%d", instance);
|
||||
|
||||
setenv("bootsource_instance", buf);
|
||||
}
|
||||
|
||||
enum bootsource bootsource_get(void)
|
||||
{
|
||||
return bootsource;
|
||||
|
@ -52,10 +67,19 @@ enum bootsource bootsource_get(void)
|
|||
|
||||
BAREBOX_MAGICVAR(bootsource, "The source barebox has been booted from");
|
||||
|
||||
int bootsource_get_instance(void)
|
||||
{
|
||||
return bootsource_instance;
|
||||
}
|
||||
|
||||
BAREBOX_MAGICVAR(bootsource_instance, "The instance of the source barebox has been booted from");
|
||||
|
||||
static int bootsource_init(void)
|
||||
{
|
||||
bootsource_set(bootsource);
|
||||
bootsource_set_instance(bootsource_instance);
|
||||
export("bootsource");
|
||||
export("bootsource_instance");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -13,7 +13,11 @@ enum bootsource {
|
|||
BOOTSOURCE_HD,
|
||||
};
|
||||
|
||||
#define BOOTSOURCE_INSTANCE_UNKNOWN -1
|
||||
|
||||
enum bootsource bootsource_get(void);
|
||||
int bootsource_get_instance(void);
|
||||
void bootsource_set(enum bootsource src);
|
||||
void bootsource_set_instance(int instance);
|
||||
|
||||
#endif /* __BOOTSOURCE_H__ */
|
||||
|
|
Loading…
Reference in New Issue