0001
0002
0003
0004
0005
0006
0007
0008 #ifndef BOOT_VESA_H
0009 #define BOOT_VESA_H
0010
0011 typedef struct {
0012 u16 off, seg;
0013 } far_ptr;
0014
0015
0016 struct vesa_general_info {
0017 u32 signature;
0018 u16 version;
0019 far_ptr vendor_string;
0020 u32 capabilities;
0021 far_ptr video_mode_ptr;
0022 u16 total_memory;
0023
0024 u8 reserved[236];
0025 } __attribute__ ((packed));
0026
0027 #define VESA_MAGIC ('V' + ('E' << 8) + ('S' << 16) + ('A' << 24))
0028
0029 struct vesa_mode_info {
0030 u16 mode_attr;
0031 u8 win_attr[2];
0032 u16 win_grain;
0033 u16 win_size;
0034 u16 win_seg[2];
0035 far_ptr win_scheme;
0036 u16 logical_scan;
0037
0038 u16 h_res;
0039 u16 v_res;
0040 u8 char_width;
0041 u8 char_height;
0042 u8 memory_planes;
0043 u8 bpp;
0044 u8 banks;
0045 u8 memory_layout;
0046 u8 bank_size;
0047 u8 image_planes;
0048 u8 page_function;
0049
0050 u8 rmask;
0051 u8 rpos;
0052 u8 gmask;
0053 u8 gpos;
0054 u8 bmask;
0055 u8 bpos;
0056 u8 resv_mask;
0057 u8 resv_pos;
0058 u8 dcm_info;
0059
0060 u32 lfb_ptr;
0061 u32 offscreen_ptr;
0062 u16 offscreen_size;
0063
0064 u8 reserved[206];
0065 } __attribute__ ((packed));
0066
0067 #endif