blob: eabbd25a3309c3da67277bce70770b64358b4460 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
wdenkf5f146e2003-04-20 16:52:09 +00002/* (C) Copyright 2002
3 * Detlev Zundel, DENX Software Engineering, dzu@denx.de.
wdenkf5f146e2003-04-20 16:52:09 +00004 */
5
6/************************************************************************/
7/* ** Layout of a bmp file */
8/************************************************************************/
9
10#ifndef _BMP_H_
11#define _BMP_H_
12
Tom Rini728cb882024-04-27 08:11:00 -060013#include <linux/compiler.h>
14
Simon Glass92e1f852015-05-13 07:02:27 -060015struct __packed bmp_color_table_entry {
wdenk874ac262003-07-24 23:38:38 +000016 __u8 blue;
17 __u8 green;
18 __u8 red;
19 __u8 reserved;
Simon Glass92e1f852015-05-13 07:02:27 -060020};
wdenkf5f146e2003-04-20 16:52:09 +000021
22/* When accessing these fields, remember that they are stored in little
23 endian format, so use linux macros, e.g. le32_to_cpu(width) */
24
Simon Glass92e1f852015-05-13 07:02:27 -060025struct __packed bmp_header {
wdenk874ac262003-07-24 23:38:38 +000026 /* Header */
27 char signature[2];
28 __u32 file_size;
29 __u32 reserved;
30 __u32 data_offset;
31 /* InfoHeader */
32 __u32 size;
33 __u32 width;
34 __u32 height;
35 __u16 planes;
36 __u16 bit_count;
37 __u32 compression;
38 __u32 image_size;
39 __u32 x_pixels_per_m;
40 __u32 y_pixels_per_m;
41 __u32 colors_used;
42 __u32 colors_important;
43 /* ColorTable */
Simon Glass92e1f852015-05-13 07:02:27 -060044};
wdenk57b2d802003-06-27 21:31:46 +000045
Simon Glass92e1f852015-05-13 07:02:27 -060046struct bmp_image {
47 struct bmp_header header;
wdenk874ac262003-07-24 23:38:38 +000048 /* We use a zero sized array just as a placeholder for variable
49 sized array */
Simon Glass92e1f852015-05-13 07:02:27 -060050 struct bmp_color_table_entry color_table[0];
51};
wdenkf5f146e2003-04-20 16:52:09 +000052
53/* Data in the bmp_image is aligned to this length */
wdenk874ac262003-07-24 23:38:38 +000054#define BMP_DATA_ALIGN 4
wdenkf5f146e2003-04-20 16:52:09 +000055
56/* Constants for the compression field */
wdenk874ac262003-07-24 23:38:38 +000057#define BMP_BI_RGB 0
58#define BMP_BI_RLE8 1
59#define BMP_BI_RLE4 2
wdenkf5f146e2003-04-20 16:52:09 +000060
wdenk874ac262003-07-24 23:38:38 +000061#endif /* _BMP_H_ */