Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
vesa.h
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------- *
2  *
3  * Copyright 1999-2007 H. Peter Anvin - All Rights Reserved
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, Inc., 53 Temple Place Ste 330,
8  * Boston MA 02111-1307, USA; either version 2 of the License, or
9  * (at your option) any later version; incorporated herein by reference.
10  *
11  * ----------------------------------------------------------------------- */
12 
13 #ifndef BOOT_VESA_H
14 #define BOOT_VESA_H
15 
16 typedef struct {
17  u16 off, seg;
18 } far_ptr;
19 
20 /* VESA General Information table */
22  u32 signature; /* 0 Magic number = "VESA" */
23  u16 version; /* 4 */
25  u32 capabilities; /* 10 */
27  u16 total_memory; /* 18 */
28 
29  u8 reserved[236]; /* 20 */
30 } __attribute__ ((packed));
31 
32 #define VESA_MAGIC ('V' + ('E' << 8) + ('S' << 16) + ('A' << 24))
33 
35  u16 mode_attr; /* 0 */
36  u8 win_attr[2]; /* 2 */
37  u16 win_grain; /* 4 */
38  u16 win_size; /* 6 */
39  u16 win_seg[2]; /* 8 */
40  far_ptr win_scheme; /* 12 */
41  u16 logical_scan; /* 16 */
42 
43  u16 h_res; /* 18 */
44  u16 v_res; /* 20 */
45  u8 char_width; /* 22 */
46  u8 char_height; /* 23 */
47  u8 memory_planes; /* 24 */
48  u8 bpp; /* 25 */
49  u8 banks; /* 26 */
50  u8 memory_layout; /* 27 */
51  u8 bank_size; /* 28 */
52  u8 image_planes; /* 29 */
53  u8 page_function; /* 30 */
54 
55  u8 rmask; /* 31 */
56  u8 rpos; /* 32 */
57  u8 gmask; /* 33 */
58  u8 gpos; /* 34 */
59  u8 bmask; /* 35 */
60  u8 bpos; /* 36 */
61  u8 resv_mask; /* 37 */
62  u8 resv_pos; /* 38 */
63  u8 dcm_info; /* 39 */
64 
65  u32 lfb_ptr; /* 40 Linear frame buffer address */
66  u32 offscreen_ptr; /* 44 Offscreen memory address */
67  u16 offscreen_size; /* 48 */
68 
69  u8 reserved[206]; /* 50 */
70 } __attribute__ ((packed));
71 
72 #endif /* LIB_SYS_VESA_H */