From 89226b86665b135fbf4c9eefecccde0c0d0e9f05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibaut=20VAR=C3=88NE?= Date: Fri, 15 May 2020 18:00:08 +0200 Subject: generic: routerboot sysfs: move tag_show_u32() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This routine will be shared between hard and soft config drivers. Tested-by: Koen Vandeputte Tested-by: Roger Pueyo Centelles Signed-off-by: Thibaut VARĂˆNE --- .../files/drivers/platform/mikrotik/routerboot.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'target/linux/generic/files/drivers/platform/mikrotik/routerboot.c') 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); -- cgit v1.2.3