1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#ifndef BOOT_VIDEO_H
16#define BOOT_VIDEO_H
17
18#include <linux/types.h>
19
20
21#undef CONFIG_VIDEO_SVGA
22
23
24#define CONFIG_VIDEO_VESA
25
26
27#define CONFIG_VIDEO_RETAIN
28
29
30#undef CONFIG_VIDEO_400_HACK
31
32
33
34
35
36
37
38
39
40#define VIDEO_FIRST_MENU 0x0000
41
42
43#define VIDEO_FIRST_BIOS 0x0100
44
45
46#define VIDEO_FIRST_VESA 0x0200
47
48
49#define VIDEO_FIRST_V7 0x0900
50
51
52#define VIDEO_FIRST_SPECIAL 0x0f00
53#define VIDEO_80x25 0x0f00
54#define VIDEO_8POINT 0x0f01
55#define VIDEO_80x43 0x0f02
56#define VIDEO_80x28 0x0f03
57#define VIDEO_CURRENT_MODE 0x0f04
58#define VIDEO_80x30 0x0f05
59#define VIDEO_80x34 0x0f06
60#define VIDEO_80x60 0x0f07
61#define VIDEO_GFX_HACK 0x0f08
62#define VIDEO_LAST_SPECIAL 0x0f09
63
64
65#define VIDEO_FIRST_RESOLUTION 0x1000
66
67
68#define VIDEO_RECALC 0x8000
69
70
71#ifdef CONFIG_VIDEO_RETAIN
72void store_screen(void);
73#define DO_STORE() store_screen()
74#else
75#define DO_STORE() ((void)0)
76#endif
77
78
79
80
81
82struct mode_info {
83 u16 mode;
84 u16 x, y;
85 u16 depth;
86};
87
88struct card_info {
89 const char *card_name;
90 int (*set_mode)(struct mode_info *mode);
91 int (*probe)(void);
92 struct mode_info *modes;
93 int nmodes;
94 int unsafe;
95 u16 xmode_first;
96 u16 xmode_n;
97};
98
99#define __videocard struct card_info __attribute__((section(".videocards")))
100extern struct card_info video_cards[], video_cards_end[];
101
102int mode_defined(u16 mode);
103
104
105#define ADAPTER_CGA 0
106#define ADAPTER_EGA 1
107#define ADAPTER_VGA 2
108
109extern int adapter;
110extern u16 video_segment;
111extern int force_x, force_y;
112extern int do_restore;
113extern int graphic_mode;
114
115
116static inline u8 in_idx(u16 port, u8 index)
117{
118 outb(index, port);
119 return inb(port+1);
120}
121
122static inline void out_idx(u8 v, u16 port, u8 index)
123{
124 outw(index+(v << 8), port);
125}
126
127
128static inline u8 tst_idx(u8 v, u16 port, u8 index)
129{
130 out_idx(port, index, v);
131 return in_idx(port, index);
132}
133
134
135u16 vga_crtc(void);
136
137#endif
138