aboutsummaryrefslogtreecommitdiff
path: root/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/files/drivers/platform/mikrotik/routerboot.c')
-rw-r--r--target/linux/generic/files/drivers/platform/mikrotik/routerboot.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c b/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c
index f496dd7e0c..47e4471f8e 100644
--- a/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c
+++ b/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c
@@ -191,6 +191,25 @@ ssize_t routerboot_tag_show_string(const u8 *pld, u16 pld_len, char *buf)
return scnprintf(buf, pld_len+1, "%s\n", pld);
}
+ssize_t routerboot_tag_show_u32s(const u8 *pld, u16 pld_len, char *buf)
+{
+ char *out = buf;
+ u32 data; // cpu-endian
+
+ /* Caller ensures pld_len > 0 */
+ if (pld_len % sizeof(data))
+ return -EINVAL;
+
+ data = *(u32 *)pld;
+
+ do {
+ out += sprintf(out, "0x%08x\n", data);
+ data++;
+ } while ((pld_len -= sizeof(data)));
+
+ return out - buf;
+}
+
module_init(routerboot_init);
module_exit(routerboot_exit);