diff options
author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2013-01-22 15:40:36 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-01-22 22:03:44 +0100 |
commit | 03939c0dfbf27d99e81d85e1bc0340fbee083d74 (patch) | |
tree | 688a6dd44bfb866610cbd27e68d1b3ba4118cd68 | |
parent | d40e6e14769aed5e0d024752037d5b42a71f6063 (diff) | |
download | barebox-03939c0dfbf27d99e81d85e1bc0340fbee083d74.tar.gz barebox-03939c0dfbf27d99e81d85e1bc0340fbee083d74.tar.xz |
filetype: add is_barebox_mips_head support
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | common/filetype.c | 2 | ||||
-rw-r--r-- | include/filetype.h | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/common/filetype.c b/common/filetype.c index 5941ad23a9..22fc621a14 100644 --- a/common/filetype.c +++ b/common/filetype.c @@ -145,7 +145,7 @@ enum filetype file_detect_type(const void *_buf, size_t bufsize) return filetype_aimage; if (buf64[0] == le64_to_cpu(0x0a1a0a0d474e5089ull)) return filetype_png; - if (strncmp(buf8 + 0x10, "barebox", 7) == 0) + if (is_barebox_mips_head(_buf)) return filetype_mips_barebox; if (bufsize < 64) diff --git a/include/filetype.h b/include/filetype.h index 502b920927..3b0715f149 100644 --- a/include/filetype.h +++ b/include/filetype.h @@ -50,4 +50,20 @@ static inline int is_barebox_arm_head(const char *head) } #endif +#define MIPS_HEAD_SIZE 0x20 +#define MIPS_HEAD_MAGICWORD_OFFSET 0x10 +#define MIPS_HEAD_SIZE_OFFSET 0x1C + +#ifdef CONFIG_MIPS +static inline int is_barebox_mips_head(const char *head) +{ + return !strcmp(head + MIPS_HEAD_MAGICWORD_OFFSET, "barebox"); +} +#else +static inline int is_barebox_mips_head(const char *head) +{ + return 0; +} +#endif + #endif /* __FILE_TYPE_H */ |