summaryrefslogtreecommitdiffstats
path: root/include/filetype.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/filetype.h')
-rw-r--r--include/filetype.h36
1 files changed, 32 insertions, 4 deletions
diff --git a/include/filetype.h b/include/filetype.h
index 3019dda6ed..6425c9c8c5 100644
--- a/include/filetype.h
+++ b/include/filetype.h
@@ -28,6 +28,7 @@ enum filetype {
filetype_mbr,
filetype_bmp,
filetype_png,
+ filetype_qoi,
filetype_ext,
filetype_gpt,
filetype_ubifs,
@@ -43,31 +44,58 @@ enum filetype {
filetype_kwbimage_v1,
filetype_android_sparse,
filetype_arm64_linux_image,
+ filetype_arm64_efi_linux_image,
+ filetype_riscv_linux_image,
+ filetype_riscv_efi_linux_image,
+ filetype_riscv_barebox_image,
filetype_elf,
filetype_imx_image_v1,
filetype_imx_image_v2,
filetype_layerscape_image,
filetype_layerscape_qspi_image,
filetype_ubootvar,
- filetype_stm32_image_v1,
+ filetype_stm32_image_fsbl_v1,
+ filetype_stm32_image_ssbl_v1,
filetype_zynq_image,
filetype_mxs_sd_image,
+ filetype_rockchip_rkns_image,
+ filetype_fip,
+ filetype_qemu_fw_cfg,
+ filetype_nxp_fspi_image,
+ filetype_zstd_compressed,
filetype_max,
};
#define FILE_TYPE_SAFE_BUFSIZE 2048
+struct cdev;
+
const char *file_type_to_string(enum filetype f);
const char *file_type_to_short_string(enum filetype f);
enum filetype file_detect_partition_table(const void *_buf, size_t bufsize);
enum filetype file_detect_type(const void *_buf, size_t bufsize);
-enum filetype file_name_detect_type(const char *filename);
-enum filetype file_name_detect_type_offset(const char *filename, loff_t pos);
-enum filetype cdev_detect_type(const char *name);
+int file_name_detect_type(const char *filename, enum filetype *type);
+int file_name_detect_type_offset(const char *filename, loff_t pos, enum filetype *type);
+int cdev_detect_type(struct cdev *cdev, enum filetype *type);
enum filetype is_fat_or_mbr(const unsigned char *sector, unsigned long *bootsec);
int is_fat_boot_sector(const void *_buf);
bool filetype_is_barebox_image(enum filetype ft);
+static inline bool file_is_compressed_file(enum filetype ft)
+{
+ switch (ft) {
+ case filetype_lzo_compressed:
+ case filetype_lz4_compressed:
+ case filetype_gzip:
+ case filetype_bzip2:
+ case filetype_xz_compressed:
+ case filetype_zstd_compressed:
+ return true;
+ default:
+ return false;
+ }
+}
+
#define ARM_HEAD_SIZE 0x30
#define ARM_HEAD_MAGICWORD_OFFSET 0x20
#define ARM_HEAD_SIZE_OFFSET 0x2C