9
0
Fork 0

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:
Marc Kleine-Budde 2013-04-03 10:12:13 +02:00 committed by Sascha Hauer
parent 54c3870f54
commit 5d8240619c
2 changed files with 28 additions and 0 deletions

View File

@ -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;
} }

View File

@ -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__ */