coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
vbe.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Copyright (c) 2004, 2008 IBM Corporation
3  * Copyright (c) 2009 Pattrick Hueper <phueper@hueper.net>
4  * All rights reserved.
5  * This program and the accompanying materials
6  * are made available under the terms of the BSD License
7  * which accompanies this distribution, and is available at
8  * http://www.opensource.org/licenses/bsd-license.php
9  *
10  * Contributors:
11  * IBM Corporation - initial implementation
12  *****************************************************************************/
13 #ifndef VBE_H
14 #define VBE_H
15 
16 #include <stdint.h>
17 
18 // these structs are for input from and output to OF
19 typedef struct {
20  u8 display_type; // 0 = NONE, 1 = analog, 2 = digital
23  u16 screen_linebytes; // bytes per line in framebuffer, may be more
24  // than screen_width
25  u8 color_depth; // color depth in bits per pixel
27  u8 edid_block_zero[128];
28 } __packed screen_info_t;
29 
30 typedef struct {
31  u8 signature[4];
36 } __packed screen_info_input_t;
37 
38 typedef struct {
43  u16 win_size; // 06
50  u8 x_charsize; // 16
51  u8 y_charsize; // 17
56  u8 bank_size; // 22
71  u8 reserved[206];
72 } __packed vesa_mode_info_t;
73 
74 typedef struct {
76  union {
77  vesa_mode_info_t vesa;
78  u8 mode_info_block[256];
79  };
80  // our crap
81  //u16 attributes;
82  //u16 linebytes;
83  //u16 x_resolution;
84  //u16 y_resolution;
85  //u8 x_charsize;
86  //u8 y_charsize;
87  //u8 bits_per_pixel;
88  //u8 memory_model;
89  //u32 framebuffer_address;
91 
92 typedef struct {
93  u8 port_number; // i.e. monitor number
96  u8 edid_block_zero[128];
98 
99 #define VESA_GET_INFO 0x4f00
100 #define VESA_GET_MODE_INFO 0x4f01
101 #define VESA_SET_MODE 0x4f02
102 
103 void vbe_set_graphics(void);
105 
106 /**
107  * Returns the mode_info struct from the vbe context,
108  * if initialized. NULL on invalid mode_infos.
109  */
111 
112 #endif // VBE_H
color_depth
Definition: edp.h:577
uint32_t u32
Definition: stdint.h:51
uint16_t u16
Definition: stdint.h:48
uint8_t u8
Definition: stdint.h:45
Definition: x86.c:23
u8 green_mask_size
Definition: vbe.h:61
u32 win_func_ptr
Definition: vbe.h:46
u16 max_screen_width
Definition: vbe.h:34
u16 mode_attributes
Definition: vbe.h:39
u8 bank_size
Definition: vbe.h:56
u32 offscreen_mem_offset
Definition: vbe.h:69
u8 bits_per_pixel
Definition: vbe.h:53
u8 memory_model
Definition: vbe.h:55
u8 red_mask_size
Definition: vbe.h:59
u8 display_type
Definition: vbe.h:20
u16 x_resolution
Definition: vbe.h:48
u8 monitor_number
Definition: vbe.h:33
u16 bytes_per_scanline
Definition: vbe.h:47
u16 screen_height
Definition: vbe.h:22
u8 green_mask_pos
Definition: vbe.h:62
u16 win_size
Definition: vbe.h:43
u16 win_granularity
Definition: vbe.h:42
u16 y_resolution
Definition: vbe.h:49
u8 blue_mask_size
Definition: vbe.h:63
u8 color_depth
Definition: vbe.h:25
u16 win_a_segment
Definition: vbe.h:44
u32 framebuffer_address
Definition: vbe.h:26
u8 y_charsize
Definition: vbe.h:51
u8 x_charsize
Definition: vbe.h:50
u8 reserved_page
Definition: vbe.h:58
u16 size_reserved
Definition: vbe.h:32
u8 number_of_banks
Definition: vbe.h:54
u8 number_of_image_pages
Definition: vbe.h:57
u8 win_b_attributes
Definition: vbe.h:41
u32 phys_base_ptr
Definition: vbe.h:68
u16 offscreen_mem_size
Definition: vbe.h:70
u8 blue_mask_pos
Definition: vbe.h:64
u8 win_a_attributes
Definition: vbe.h:40
u16 screen_linebytes
Definition: vbe.h:23
u8 reserved_mask_pos
Definition: vbe.h:66
u16 win_b_segment
Definition: vbe.h:45
u8 number_of_planes
Definition: vbe.h:52
u8 direct_color_mode_info
Definition: vbe.h:67
u8 red_mask_pos
Definition: vbe.h:60
u8 reserved_mask_size
Definition: vbe.h:65
u16 screen_width
Definition: vbe.h:21
u8 port_number
Definition: vbe.h:93
u8 edid_transfer_time
Definition: vbe.h:94
u8 ddc_level
Definition: vbe.h:95
u16 video_mode
Definition: vbe.h:75
vesa_mode_info_t vesa
Definition: vbe.h:77
void vbe_textmode_console(void)
const vbe_mode_info_t * vbe_mode_info(void)
Returns the mode_info struct from the vbe context, if initialized.
void vbe_set_graphics(void)