~ubuntu-branches/ubuntu/trusty/seabios/trusty-proposed

« back to all changes in this revision

Viewing changes to src/vbe.h

  • Committer: Package Import Robot
  • Author(s): Michael Tokarev
  • Date: 2014-01-16 15:50:54 UTC
  • mfrom: (1.1.8)
  • Revision ID: package-import@ubuntu.com-20140116155054-cp15pjpnirgyn1y1
Tags: 1.7.4-1
* new upstream release (1.7.4)
* remove all patches (upstreamed)
* acpi tables are now in $out/src/fw/ not in $out/

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#ifndef __VBE_H
2
 
#define __VBE_H
3
 
 
4
 
#include "types.h" // u8
5
 
#include "farptr.h" // struct segoff_s
6
 
 
7
 
#define VESA_SIGNATURE 0x41534556 // VESA
8
 
#define VBE2_SIGNATURE 0x32454256 // VBE2
9
 
 
10
 
struct vbe_info {
11
 
    u32 signature;
12
 
    u16 version;
13
 
    struct segoff_s oem_string;
14
 
    u32 capabilities;
15
 
    struct segoff_s video_mode;
16
 
    u16 total_memory;
17
 
    u16 oem_revision;
18
 
    struct segoff_s oem_vendor_string;
19
 
    struct segoff_s oem_product_string;
20
 
    struct segoff_s oem_revision_string;
21
 
    u8 reserved[222];
22
 
} PACKED;
23
 
 
24
 
struct vbe_mode_info {
25
 
    /* VBE */
26
 
    u16 mode_attributes;
27
 
    u8 winA_attributes;
28
 
    u8 winB_attributes;
29
 
    u16 win_granularity;
30
 
    u16 win_size;
31
 
    u16 winA_seg;
32
 
    u16 winB_seg;
33
 
    struct segoff_s win_func_ptr;
34
 
    u16 bytes_per_scanline;
35
 
    /* VBE 1.2 */
36
 
    u16 xres;
37
 
    u16 yres;
38
 
    u8 xcharsize;
39
 
    u8 ycharsize;
40
 
    u8 planes;
41
 
    u8 bits_per_pixel;
42
 
    u8 banks;
43
 
    u8 mem_model;
44
 
    u8 bank_size;
45
 
    u8 pages;
46
 
    u8 reserved0;
47
 
    /* Direct Color */
48
 
    u8 red_size;
49
 
    u8 red_pos;
50
 
    u8 green_size;
51
 
    u8 green_pos;
52
 
    u8 blue_size;
53
 
    u8 blue_pos;
54
 
    u8 alpha_size;
55
 
    u8 alpha_pos;
56
 
    u8 directcolor_info;
57
 
    /* VBE 2.0 */
58
 
    u32 phys_base;
59
 
    u32 reserved1;
60
 
    u16 reserved2;
61
 
    /* VBE 3.0 */
62
 
    u16 linear_bytes_per_scanline;
63
 
    u8 bank_pages;
64
 
    u8 linear_pages;
65
 
    u8 linear_red_size;
66
 
    u8 linear_red_pos;
67
 
    u8 linear_green_size;
68
 
    u8 linear_green_pos;
69
 
    u8 linear_blue_size;
70
 
    u8 linear_blue_pos;
71
 
    u8 linear_alpha_size;
72
 
    u8 linear_alpha_pos;
73
 
    u32 pixclock_max;
74
 
    u8 reserved[190];
75
 
} PACKED;
76
 
 
77
 
struct vbe_crtc_info {
78
 
    u16 horiz_total;
79
 
    u16 horiz_sync_start;
80
 
    u16 horiz_sync_end;
81
 
    u16 vert_total;
82
 
    u16 vert_sync_start;
83
 
    u16 vert_sync_end;
84
 
    u8 flags;
85
 
    u32 pixclock;
86
 
    u16 refresh_rate;
87
 
    u8 reserved[40];
88
 
} PACKED;
89
 
 
90
 
/* VBE Return Status Info */
91
 
/* AL */
92
 
#define VBE_RETURN_STATUS_SUPPORTED                      0x4F
93
 
#define VBE_RETURN_STATUS_UNSUPPORTED                    0x00
94
 
/* AH */
95
 
#define VBE_RETURN_STATUS_SUCCESSFULL                    0x00
96
 
#define VBE_RETURN_STATUS_FAILED                         0x01
97
 
#define VBE_RETURN_STATUS_NOT_SUPPORTED                  0x02
98
 
#define VBE_RETURN_STATUS_INVALID                        0x03
99
 
 
100
 
/* VBE Mode Numbers */
101
 
 
102
 
#define VBE_MODE_VESA_DEFINED                            0x0100
103
 
#define VBE_MODE_REFRESH_RATE_USE_CRTC                   0x0800
104
 
#define VBE_MODE_LINEAR_FRAME_BUFFER                     0x4000
105
 
#define VBE_MODE_PRESERVE_DISPLAY_MEMORY                 0x8000
106
 
 
107
 
#define VBE_VESA_MODE_END_OF_LIST                        0xFFFF
108
 
 
109
 
/* Capabilities */
110
 
 
111
 
#define VBE_CAPABILITY_8BIT_DAC                          0x0001
112
 
#define VBE_CAPABILITY_NOT_VGA_COMPATIBLE                0x0002
113
 
#define VBE_CAPABILITY_RAMDAC_USE_BLANK_BIT              0x0004
114
 
#define VBE_CAPABILITY_STEREOSCOPIC_SUPPORT              0x0008
115
 
#define VBE_CAPABILITY_STEREO_VIA_VESA_EVC               0x0010
116
 
 
117
 
/* Mode Attributes */
118
 
 
119
 
#define VBE_MODE_ATTRIBUTE_SUPPORTED                     0x0001
120
 
#define VBE_MODE_ATTRIBUTE_EXTENDED_INFORMATION_AVAILABLE  0x0002
121
 
#define VBE_MODE_ATTRIBUTE_TTY_BIOS_SUPPORT              0x0004
122
 
#define VBE_MODE_ATTRIBUTE_COLOR_MODE                    0x0008
123
 
#define VBE_MODE_ATTRIBUTE_GRAPHICS_MODE                 0x0010
124
 
#define VBE_MODE_ATTRIBUTE_NOT_VGA_COMPATIBLE            0x0020
125
 
#define VBE_MODE_ATTRIBUTE_NO_VGA_COMPATIBLE_WINDOW      0x0040
126
 
#define VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE      0x0080
127
 
#define VBE_MODE_ATTRIBUTE_DOUBLE_SCAN_MODE              0x0100
128
 
#define VBE_MODE_ATTRIBUTE_INTERLACE_MODE                0x0200
129
 
#define VBE_MODE_ATTRIBUTE_HARDWARE_TRIPLE_BUFFER        0x0400
130
 
#define VBE_MODE_ATTRIBUTE_HARDWARE_STEREOSCOPIC_DISPLAY 0x0800
131
 
#define VBE_MODE_ATTRIBUTE_DUAL_DISPLAY_START_ADDRESS    0x1000
132
 
 
133
 
#define VBE_MODE_ATTTRIBUTE_LFB_ONLY                     ( VBE_MODE_ATTRIBUTE_NO_VGA_COMPATIBLE_WINDOW | VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE )
134
 
 
135
 
/* Window attributes */
136
 
 
137
 
#define VBE_WINDOW_ATTRIBUTE_RELOCATABLE                 0x01
138
 
#define VBE_WINDOW_ATTRIBUTE_READABLE                    0x02
139
 
#define VBE_WINDOW_ATTRIBUTE_WRITEABLE                   0x04
140
 
 
141
 
/* Memory model */
142
 
 
143
 
#define VBE_MEMORYMODEL_TEXT_MODE                        0x00
144
 
#define VBE_MEMORYMODEL_CGA_GRAPHICS                     0x01
145
 
#define VBE_MEMORYMODEL_HERCULES_GRAPHICS                0x02
146
 
#define VBE_MEMORYMODEL_PLANAR                           0x03
147
 
#define VBE_MEMORYMODEL_PACKED_PIXEL                     0x04
148
 
#define VBE_MEMORYMODEL_NON_CHAIN_4_256                  0x05
149
 
#define VBE_MEMORYMODEL_DIRECT_COLOR                     0x06
150
 
#define VBE_MEMORYMODEL_YUV                              0x07
151
 
 
152
 
/* DirectColorModeInfo */
153
 
 
154
 
#define VBE_DIRECTCOLOR_COLOR_RAMP_PROGRAMMABLE          0x01
155
 
#define VBE_DIRECTCOLOR_RESERVED_BITS_AVAILABLE          0x02
156
 
 
157
 
#endif