mtd: add logic for TP-Link ramips recovery magic
[openwrt/openwrt.git] / package / system / mtd / src / mtd.h
1 #ifndef __mtd_h
2 #define __mtd_h
3
4 #include <stdbool.h>
5
6 #if defined(target_brcm47xx) || defined(target_bcm53xx)
7 #define target_brcm 1
8 #endif
9
10 #define JFFS2_EOF "\xde\xad\xc0\xde"
11
12 extern int quiet;
13 extern int mtdsize;
14 extern int erasesize;
15
16 extern int mtd_open(const char *mtd, bool block);
17 extern int mtd_check_open(const char *mtd);
18 extern int mtd_block_is_bad(int fd, int offset);
19 extern int mtd_erase_block(int fd, int offset);
20 extern int mtd_write_buffer(int fd, const char *buf, int offset, int length);
21 extern int mtd_write_jffs2(const char *mtd, const char *filename, const char *dir);
22 extern int mtd_replace_jffs2(const char *mtd, int fd, int ofs, const char *filename);
23 extern void mtd_parse_jffs2data(const char *buf, const char *dir);
24
25 /* target specific functions */
26 extern int trx_fixup(int fd, const char *name) __attribute__ ((weak));
27 extern int trx_check(int imagefd, const char *mtd, char *buf, int *len) __attribute__ ((weak));
28 extern int mtd_fixtrx(const char *mtd, size_t offset, size_t data_size) __attribute__ ((weak));
29 extern int mtd_fixseama(const char *mtd, size_t offset, size_t data_size) __attribute__ ((weak));
30 extern int mtd_fixwrg(const char *mtd, size_t offset, size_t data_size) __attribute__ ((weak));
31 extern int mtd_fixwrgg(const char *mtd, size_t offset, size_t data_size) __attribute__ ((weak));
32 extern int mtd_resetbc(const char *mtd) __attribute__ ((weak));
33 extern int mtd_tpl_recoverflag_write(const char *mtd, const bool recovery_active) __attribute__ ((weak));
34 #endif /* __mtd_h */