1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */ 2059ae173Swdenk /* (C) Copyright 2002 3059ae173Swdenk * Detlev Zundel, DENX Software Engineering, dzu@denx.de. 4059ae173Swdenk */ 5059ae173Swdenk 6059ae173Swdenk /************************************************************************/ 7059ae173Swdenk /* ** Layout of a bmp file */ 8059ae173Swdenk /************************************************************************/ 9059ae173Swdenk 10059ae173Swdenk #ifndef _BMP_H_ 11059ae173Swdenk #define _BMP_H_ 12059ae173Swdenk 131c3dbe56SSimon Glass struct __packed bmp_color_table_entry { 14059ae173Swdenk __u8 blue; 15059ae173Swdenk __u8 green; 16059ae173Swdenk __u8 red; 17059ae173Swdenk __u8 reserved; 181c3dbe56SSimon Glass }; 19059ae173Swdenk 20059ae173Swdenk /* When accessing these fields, remember that they are stored in little 21059ae173Swdenk endian format, so use linux macros, e.g. le32_to_cpu(width) */ 22059ae173Swdenk 231c3dbe56SSimon Glass struct __packed bmp_header { 24059ae173Swdenk /* Header */ 25059ae173Swdenk char signature[2]; 26059ae173Swdenk __u32 file_size; 27059ae173Swdenk __u32 reserved; 28059ae173Swdenk __u32 data_offset; 29059ae173Swdenk /* InfoHeader */ 30059ae173Swdenk __u32 size; 31059ae173Swdenk __u32 width; 32059ae173Swdenk __u32 height; 33059ae173Swdenk __u16 planes; 34059ae173Swdenk __u16 bit_count; 35059ae173Swdenk __u32 compression; 36059ae173Swdenk __u32 image_size; 37059ae173Swdenk __u32 x_pixels_per_m; 38059ae173Swdenk __u32 y_pixels_per_m; 39059ae173Swdenk __u32 colors_used; 40059ae173Swdenk __u32 colors_important; 41059ae173Swdenk /* ColorTable */ 421c3dbe56SSimon Glass }; 43059ae173Swdenk 441c3dbe56SSimon Glass struct bmp_image { 451c3dbe56SSimon Glass struct bmp_header header; 46059ae173Swdenk /* We use a zero sized array just as a placeholder for variable 47059ae173Swdenk sized array */ 481c3dbe56SSimon Glass struct bmp_color_table_entry color_table[0]; 491c3dbe56SSimon Glass }; 50059ae173Swdenk 51059ae173Swdenk /* Data in the bmp_image is aligned to this length */ 52059ae173Swdenk #define BMP_DATA_ALIGN 4 53059ae173Swdenk 54059ae173Swdenk /* Constants for the compression field */ 55059ae173Swdenk #define BMP_BI_RGB 0 56059ae173Swdenk #define BMP_BI_RLE8 1 57059ae173Swdenk #define BMP_BI_RLE4 2 58059ae173Swdenk 59059ae173Swdenk #endif /* _BMP_H_ */ 60