1 /* ----------------------------------------------------------------------- *
3 * Copyright 1999-2007 H. Peter Anvin - All Rights Reserved
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.
11 * ----------------------------------------------------------------------- */
20 /* VESA General Information table */
21 struct vesa_general_info
{
22 u32 signature
; /* 0 Magic number = "VESA" */
24 far_ptr vendor_string
; /* 6 */
25 u32 capabilities
; /* 10 */
26 far_ptr video_mode_ptr
; /* 14 */
27 u16 total_memory
; /* 18 */
29 u16 oem_software_rev
; /* 20 */
30 far_ptr oem_vendor_name_ptr
; /* 22 */
31 far_ptr oem_product_name_ptr
; /* 26 */
32 far_ptr oem_product_rev_ptr
; /* 30 */
34 u8 reserved
[222]; /* 34 */
35 u8 oem_data
[256]; /* 256 */
36 } __attribute__ ((packed
));
38 #define VESA_MAGIC ('V' + ('E' << 8) + ('S' << 16) + ('A' << 24))
39 #define VBE2_MAGIC ('V' + ('B' << 8) + ('E' << 16) + ('2' << 24))
41 struct vesa_mode_info
{
42 u16 mode_attr
; /* 0 */
43 u8 win_attr
[2]; /* 2 */
44 u16 win_grain
; /* 4 */
46 u16 win_seg
[2]; /* 8 */
47 far_ptr win_scheme
; /* 12 */
48 u16 logical_scan
; /* 16 */
52 u8 char_width
; /* 22 */
53 u8 char_height
; /* 23 */
54 u8 memory_planes
; /* 24 */
57 u8 memory_layout
; /* 27 */
58 u8 bank_size
; /* 28 */
59 u8 image_planes
; /* 29 */
60 u8 page_function
; /* 30 */
68 u8 resv_mask
; /* 37 */
72 u32 lfb_ptr
; /* 40 Linear frame buffer address */
73 u32 offscreen_ptr
; /* 44 Offscreen memory address */
74 u16 offscreen_size
; /* 48 */
76 u8 reserved
[206]; /* 50 */
77 } __attribute__ ((packed
));
79 #endif /* LIB_SYS_VESA_H */