mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 15:32:33 +00:00
generic: routerboot sysfs: move tag_show_u32()
This routine will be shared between hard and soft config drivers. Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com> Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net> Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
This commit is contained in:
parent
f36e710e2d
commit
89226b8666
@ -310,25 +310,6 @@ static struct hc_hwopt {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static ssize_t hc_tag_show_u32(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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The MAC is stored network-endian on all devices, in 2 32-bit segments:
|
* The MAC is stored network-endian on all devices, in 2 32-bit segments:
|
||||||
* <XX:XX:XX:XX> <XX:XX:00:00>. Kernel print has us covered.
|
* <XX:XX:XX:XX> <XX:XX:00:00>. Kernel print has us covered.
|
||||||
@ -389,7 +370,7 @@ static struct hc_attr {
|
|||||||
} hc_attrs[] = {
|
} hc_attrs[] = {
|
||||||
{
|
{
|
||||||
.tag_id = RB_ID_FLASH_INFO,
|
.tag_id = RB_ID_FLASH_INFO,
|
||||||
.tshow = hc_tag_show_u32,
|
.tshow = routerboot_tag_show_u32s,
|
||||||
.kattr = __ATTR(flash_info, S_IRUSR, hc_attr_show, NULL),
|
.kattr = __ATTR(flash_info, S_IRUSR, hc_attr_show, NULL),
|
||||||
}, {
|
}, {
|
||||||
.tag_id = RB_ID_MAC_ADDRESS_PACK,
|
.tag_id = RB_ID_MAC_ADDRESS_PACK,
|
||||||
@ -409,11 +390,11 @@ static struct hc_attr {
|
|||||||
.kattr = __ATTR(board_serial, S_IRUSR, hc_attr_show, NULL),
|
.kattr = __ATTR(board_serial, S_IRUSR, hc_attr_show, NULL),
|
||||||
}, {
|
}, {
|
||||||
.tag_id = RB_ID_MEMORY_SIZE,
|
.tag_id = RB_ID_MEMORY_SIZE,
|
||||||
.tshow = hc_tag_show_u32,
|
.tshow = routerboot_tag_show_u32s,
|
||||||
.kattr = __ATTR(mem_size, S_IRUSR, hc_attr_show, NULL),
|
.kattr = __ATTR(mem_size, S_IRUSR, hc_attr_show, NULL),
|
||||||
}, {
|
}, {
|
||||||
.tag_id = RB_ID_MAC_ADDRESS_COUNT,
|
.tag_id = RB_ID_MAC_ADDRESS_COUNT,
|
||||||
.tshow = hc_tag_show_u32,
|
.tshow = routerboot_tag_show_u32s,
|
||||||
.kattr = __ATTR(mac_count, S_IRUSR, hc_attr_show, NULL),
|
.kattr = __ATTR(mac_count, S_IRUSR, hc_attr_show, NULL),
|
||||||
}, {
|
}, {
|
||||||
.tag_id = RB_ID_HW_OPTIONS,
|
.tag_id = RB_ID_HW_OPTIONS,
|
||||||
|
@ -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);
|
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_init(routerboot_init);
|
||||||
module_exit(routerboot_exit);
|
module_exit(routerboot_exit);
|
||||||
|
|
||||||
|
@ -32,5 +32,6 @@ int __init rb_softconfig_init(struct kobject *rb_kobj);
|
|||||||
void __exit rb_softconfig_exit(void);
|
void __exit rb_softconfig_exit(void);
|
||||||
|
|
||||||
ssize_t routerboot_tag_show_string(const u8 *pld, u16 pld_len, char *buf);
|
ssize_t routerboot_tag_show_string(const u8 *pld, u16 pld_len, char *buf);
|
||||||
|
ssize_t routerboot_tag_show_u32s(const u8 *pld, u16 pld_len, char *buf);
|
||||||
|
|
||||||
#endif /* _ROUTERBOOT_H_ */
|
#endif /* _ROUTERBOOT_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user