Merge branch 'master' of git://git.denx.de/u-boot-sh
[platform/kernel/u-boot.git] / include / bmp_layout.h
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
13 struct __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
23 struct __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
44 struct 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_ */