]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - include/bmp_layout.h
karo: tx6ul: add support for TX6UL Mainboard (v1)
[karo-tx-uboot.git] / include / bmp_layout.h
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
14 struct __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
24 struct __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
45 struct 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_ */