summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2021-05-17 16:23:50 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2021-05-17 16:23:50 +0200
commitec8f2fe6b1bc9e69a725863a61a6b84ab7a91989 (patch)
treefbb4efb754fc4b97bc91e52ebb9d7003e2e6e5ae /common
parentbca629ead27b14bb1439fffa23a3449576f12c54 (diff)
parent1b2c92b76e8fd9185115c51f47056060ade5ec26 (diff)
downloadbarebox-ec8f2fe6b1bc9e69a725863a61a6b84ab7a91989.tar.gz
barebox-ec8f2fe6b1bc9e69a725863a61a6b84ab7a91989.tar.xz
Merge branch 'for-next/misc'
Diffstat (limited to 'common')
-rw-r--r--common/console_common.c15
-rw-r--r--common/globalvar.c13
2 files changed, 21 insertions, 7 deletions
diff --git a/common/console_common.c b/common/console_common.c
index 4c1230464c..98ff8d0ef9 100644
--- a/common/console_common.c
+++ b/common/console_common.c
@@ -126,7 +126,7 @@ int pr_print(int level, const char *fmt, ...)
return 0;
va_start(args, fmt);
- i = vsprintf(printbuffer, fmt, args);
+ i = vsnprintf(printbuffer, sizeof(printbuffer), fmt, args);
va_end(args);
pr_puts(level, printbuffer);
@@ -139,18 +139,19 @@ int dev_printf(int level, const struct device_d *dev, const char *format, ...)
va_list args;
int ret = 0;
char printbuffer[CFG_PBSIZE];
+ size_t size = sizeof(printbuffer);
if (!IS_ENABLED(CONFIG_LOGBUF) && level > barebox_loglevel)
return 0;
if (dev->driver && dev->driver->name)
- ret += sprintf(printbuffer, "%s ", dev->driver->name);
+ ret += snprintf(printbuffer, size, "%s ", dev->driver->name);
- ret += sprintf(printbuffer + ret, "%s: ", dev_name(dev));
+ ret += snprintf(printbuffer + ret, size - ret, "%s: ", dev_name(dev));
va_start(args, format);
- ret += vsprintf(printbuffer + ret, format, args);
+ ret += vsnprintf(printbuffer + ret, size - ret, format, args);
va_end(args);
@@ -235,7 +236,7 @@ int printf(const char *fmt, ...)
* For this to work, printbuffer must be larger than
* anything we ever want to print.
*/
- i = vsprintf (printbuffer, fmt, args);
+ i = vsnprintf(printbuffer, sizeof(printbuffer), fmt, args);
va_end(args);
/* Print the string */
@@ -254,7 +255,7 @@ int vprintf(const char *fmt, va_list args)
* For this to work, printbuffer must be larger than
* anything we ever want to print.
*/
- i = vsprintf(printbuffer, fmt, args);
+ i = vsnprintf(printbuffer, sizeof(printbuffer), fmt, args);
/* Print the string */
puts(printbuffer);
@@ -342,7 +343,7 @@ int dprintf(int file, const char *fmt, ...)
* For this to work, printbuffer must be larger than
* anything we ever want to print.
*/
- vsprintf(printbuffer, fmt, args);
+ vsnprintf(printbuffer, sizeof(printbuffer), fmt, args);
va_end(args);
/* Print the string */
diff --git a/common/globalvar.c b/common/globalvar.c
index a55b38b00f..8bb5015ce4 100644
--- a/common/globalvar.c
+++ b/common/globalvar.c
@@ -641,6 +641,8 @@ int globalvar_add_simple_ip(const char *name, IPaddr_t *ip)
static int globalvar_init(void)
{
+ const char *endianness;
+
register_device(&global_device);
if (IS_ENABLED(CONFIG_NVVAR))
@@ -651,6 +653,16 @@ static int globalvar_init(void)
if (strlen(buildsystem_version_string) > 0)
globalvar_add_simple("buildsystem.version", buildsystem_version_string);
+#ifdef __BIG_ENDIAN
+ endianness = "big";
+#elif defined(__LITTLE_ENDIAN)
+ endianness = "little";
+#else
+#error "could not determine byte order"
+#endif
+
+ globalvar_add_simple("endianness", endianness);
+
return 0;
}
pure_initcall(globalvar_init);
@@ -658,6 +670,7 @@ pure_initcall(globalvar_init);
BAREBOX_MAGICVAR(global.version, "The barebox version");
BAREBOX_MAGICVAR(global.buildsystem.version,
"version of buildsystem barebox was built with");
+BAREBOX_MAGICVAR(global.endianness, "The barebox endianness");
/**
* nvvar_save - save NV variables to persistent environment