diff options
-rw-r--r-- | common/filetype.c | 4 | ||||
-rw-r--r-- | include/filetype.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/common/filetype.c b/common/filetype.c index 61fca5aaba..d06eec0099 100644 --- a/common/filetype.c +++ b/common/filetype.c @@ -43,6 +43,7 @@ static const char *filetype_str[] = { [filetype_mips_barebox] = "MIPS barebox image", [filetype_fat] = "FAT filesytem", [filetype_bmp] = "BMP image", + [filetype_png] = "PNG image", }; const char *file_type_to_string(enum filetype f) @@ -72,6 +73,7 @@ static int is_fat(u8 *buf) enum filetype file_detect_type(void *_buf) { u32 *buf = _buf; + u64 *buf64 = _buf; u8 *buf8 = _buf; if (strncmp(buf8, "#!/bin/sh", 9) == 0) @@ -104,6 +106,8 @@ enum filetype file_detect_type(void *_buf) return filetype_fat; if (strncmp(buf8, "BM", 2) == 0) return filetype_bmp; + if (buf64[0] == le64_to_cpu(0x0a1a0a0d474e5089ull)) + return filetype_png; return filetype_unknown; } diff --git a/include/filetype.h b/include/filetype.h index 6c97159aa4..2924032561 100644 --- a/include/filetype.h +++ b/include/filetype.h @@ -20,6 +20,7 @@ enum filetype { filetype_mips_barebox, filetype_fat, filetype_bmp, + filetype_png, }; const char *file_type_to_string(enum filetype f); |