9
0
Fork 0

Make hostname available to C Code

The boards often have a sane default for the hostname. Provide a C
function for setting/getting it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Sascha Hauer 2013-08-14 21:54:40 +02:00
parent 775ba3c093
commit 774580c2bd
3 changed files with 36 additions and 1 deletions

View File

@ -19,6 +19,9 @@
#include <common.h>
#include <errno.h>
#include <malloc.h>
#include <magicvar.h>
#include <globalvar.h>
#include <environment.h>
int errno;
EXPORT_SYMBOL(errno);
@ -149,3 +152,34 @@ const char *barebox_get_model(void)
return CONFIG_BOARDINFO;
}
EXPORT_SYMBOL(barebox_get_model);
BAREBOX_MAGICVAR_NAMED(global_model, global.model, "Product name of this hardware");
static char *hostname;
/*
* The hostname is supposed to be the shortname of a board. It should
* contain only lowercase letters, numbers, '-', '_'. No whitespaces
* allowed.
*/
void barebox_set_hostname(const char *__hostname)
{
if (IS_ENABLED(CONFIG_GLOBALVAR)) {
globalvar_add_simple("hostname", __hostname);
} else {
free(hostname);
hostname = xstrdup(__hostname);
}
}
const char *barebox_get_hostname(void)
{
if (IS_ENABLED(CONFIG_GLOBALVAR))
return getenv("global.hostname");
return hostname;
}
EXPORT_SYMBOL(barebox_get_hostname);
BAREBOX_MAGICVAR_NAMED(global_hostname, global.hostname,
"shortname of the board. Also used as hostname for DHCP requests");

View File

@ -236,6 +236,8 @@ static inline void barebox_banner(void) {}
const char *barebox_get_model(void);
void barebox_set_model(const char *);
const char *barebox_get_hostname(void);
void barebox_set_hostname(const char *);
#define IOMEM(addr) ((void __force __iomem *)(addr))

View File

@ -830,7 +830,6 @@ BAREBOX_CMD_START(dhcp)
BAREBOX_CMD_COMPLETE(empty_complete)
BAREBOX_CMD_END
BAREBOX_MAGICVAR_NAMED(global_hostname, global.hostname, "hostname to send or returned from DHCP request");
BAREBOX_MAGICVAR_NAMED(global_dhcp_bootfile, global.dhcp.bootfile, "bootfile returned from DHCP request");
BAREBOX_MAGICVAR_NAMED(global_dhcp_rootpath, global.dhcp.rootpath, "rootpath returned from DHCP request");
BAREBOX_MAGICVAR_NAMED(global_dhcp_vendor_id, global.dhcp.vendor_id, "vendor id to send to the DHCP server");