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