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