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 enum bootsource bootsource = BOOTSOURCE_UNKNOWN;
|
||||||
|
static int bootsource_instance = BOOTSOURCE_INSTANCE_UNKNOWN;
|
||||||
|
|
||||||
void bootsource_set(enum bootsource src)
|
void bootsource_set(enum bootsource src)
|
||||||
{
|
{
|
||||||
|
@ -45,6 +46,20 @@ void bootsource_set(enum bootsource src)
|
||||||
setenv("bootsource", bootsource_str[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)
|
enum bootsource bootsource_get(void)
|
||||||
{
|
{
|
||||||
return bootsource;
|
return bootsource;
|
||||||
|
@ -52,10 +67,19 @@ enum bootsource bootsource_get(void)
|
||||||
|
|
||||||
BAREBOX_MAGICVAR(bootsource, "The source barebox has been booted from");
|
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)
|
static int bootsource_init(void)
|
||||||
{
|
{
|
||||||
bootsource_set(bootsource);
|
bootsource_set(bootsource);
|
||||||
|
bootsource_set_instance(bootsource_instance);
|
||||||
export("bootsource");
|
export("bootsource");
|
||||||
|
export("bootsource_instance");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,11 @@ enum bootsource {
|
||||||
BOOTSOURCE_HD,
|
BOOTSOURCE_HD,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define BOOTSOURCE_INSTANCE_UNKNOWN -1
|
||||||
|
|
||||||
enum bootsource bootsource_get(void);
|
enum bootsource bootsource_get(void);
|
||||||
|
int bootsource_get_instance(void);
|
||||||
void bootsource_set(enum bootsource src);
|
void bootsource_set(enum bootsource src);
|
||||||
|
void bootsource_set_instance(int instance);
|
||||||
|
|
||||||
#endif /* __BOOTSOURCE_H__ */
|
#endif /* __BOOTSOURCE_H__ */
|
||||||
|
|
Loading…
Reference in New Issue