1 // SPDX-License-Identifier: GPL-2.0
3 * Common definitions for MikroTik RouterBoot data.
5 * Copyright (C) 2020 Thibaut VARĂˆNE <hacks+kernel@slashdirt.org>
10 #define _ROUTERBOOT_H_
12 #include <linux/types.h>
14 // these magic values are stored in cpu-endianness on flash
15 #define RB_MAGIC_HARD (('H') | ('a' << 8) | ('r' << 16) | ('d' << 24))
16 #define RB_MAGIC_SOFT (('S') | ('o' << 8) | ('f' << 16) | ('t' << 24))
17 #define RB_MAGIC_LZOR (('L') | ('Z' << 8) | ('O' << 16) | ('R' << 24))
18 #define RB_MAGIC_ERD (('E' << 16) | ('R' << 8) | ('D'))
20 #define RB_ART_SIZE 0x10000
22 #define RB_MTD_HARD_CONFIG "hard_config"
23 #define RB_MTD_SOFT_CONFIG "soft_config"
25 int routerboot_tag_find(const u8
*bufhead
, const size_t buflen
, const u16 tag_id
, u16
*pld_ofs
, u16
*pld_len
);
26 int routerboot_rle_decode(const u8
*in
, size_t inlen
, u8
*out
, size_t *outlen
);
28 int __init
rb_hardconfig_init(struct kobject
*rb_kobj
);
29 void __exit
rb_hardconfig_exit(void);
31 #endif /* _ROUTERBOOT_H_ */