1/* (C) Copyright 2002 2 * Detlev Zundel, DENX Software Engineering, dzu@denx.de. 3 * 4 * SPDX-License-Identifier: GPL-2.0+ 5 */ 6 7/************************************************************************/ 8/* ** Layout of a bmp file */ 9/************************************************************************/ 10 11#ifndef _BMP_H_ 12#define _BMP_H_ 13 14struct __packed bmp_color_table_entry { 15 __u8 blue; 16 __u8 green; 17 __u8 red; 18 __u8 reserved; 19}; 20 21/* When accessing these fields, remember that they are stored in little 22 endian format, so use linux macros, e.g. le32_to_cpu(width) */ 23 24struct __packed bmp_header { 25 /* Header */ 26 char signature[2]; 27 __u32 file_size; 28 __u32 reserved; 29 __u32 data_offset; 30 /* InfoHeader */ 31 __u32 size; 32 __u32 width; 33 __u32 height; 34 __u16 planes; 35 __u16 bit_count; 36 __u32 compression; 37 __u32 image_size; 38 __u32 x_pixels_per_m; 39 __u32 y_pixels_per_m; 40 __u32 colors_used; 41 __u32 colors_important; 42 /* ColorTable */ 43}; 44 45struct bmp_image { 46 struct bmp_header header; 47 /* We use a zero sized array just as a placeholder for variable 48 sized array */ 49 struct bmp_color_table_entry color_table[0]; 50}; 51 52/* Data in the bmp_image is aligned to this length */ 53#define BMP_DATA_ALIGN 4 54 55/* Constants for the compression field */ 56#define BMP_BI_RGB 0 57#define BMP_BI_RLE8 1 58#define BMP_BI_RLE4 2 59 60#endif /* _BMP_H_ */ 61