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 */ 21 struct vesa_general_info { 22 u32 signature; /* 0 Magic number = "VESA" */ 23 u16 version; /* 4 */ 24 far_ptr vendor_string; /* 6 */ 25 u32 capabilities; /* 10 */ 26 far_ptr video_mode_ptr; /* 14 */ 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 34 struct vesa_mode_info { 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 */ 73