|
|
1.1 root 1: #ifndef __VGAHW_H
2: #define __VGAHW_H
3:
4: #include "types.h" // u8
5: #include "config.h" // CONFIG_*
6:
7: #include "clext.h" // clext_set_mode
8: #include "bochsvga.h" // bochsvga_set_mode
9: #include "stdvga.h" // stdvga_set_mode
10: #include "geodevga.h" // geodevga_init
11:
12: static inline struct vgamode_s *vgahw_find_mode(int mode) {
13: if (CONFIG_VGA_CIRRUS)
14: return clext_find_mode(mode);
15: if (CONFIG_VGA_BOCHS)
16: return bochsvga_find_mode(mode);
17: return stdvga_find_mode(mode);
18: }
19:
20: static inline int vgahw_set_mode(struct vgamode_s *vmode_g, int flags) {
21: if (CONFIG_VGA_CIRRUS)
22: return clext_set_mode(vmode_g, flags);
23: if (CONFIG_VGA_BOCHS)
24: return bochsvga_set_mode(vmode_g, flags);
25: return stdvga_set_mode(vmode_g, flags);
26: }
27:
28: static inline void vgahw_list_modes(u16 seg, u16 *dest, u16 *last) {
29: if (CONFIG_VGA_CIRRUS)
30: clext_list_modes(seg, dest, last);
31: else if (CONFIG_VGA_BOCHS)
32: bochsvga_list_modes(seg, dest, last);
33: else
34: stdvga_list_modes(seg, dest, last);
35: }
36:
37: static inline int vgahw_init(void) {
38: if (CONFIG_VGA_CIRRUS)
39: return clext_init();
40: if (CONFIG_VGA_BOCHS)
41: return bochsvga_init();
42: if (CONFIG_VGA_GEODEGX2 || CONFIG_VGA_GEODELX)
43: return geodevga_init();
44: return stdvga_init();
45: }
46:
47: static inline int vgahw_get_window(struct vgamode_s *vmode_g, int window) {
48: if (CONFIG_VGA_CIRRUS)
49: return clext_get_window(vmode_g, window);
50: if (CONFIG_VGA_BOCHS)
51: return bochsvga_get_window(vmode_g, window);
52: return stdvga_get_window(vmode_g, window);
53: }
54:
55: static inline int vgahw_set_window(struct vgamode_s *vmode_g, int window
56: , int val) {
57: if (CONFIG_VGA_CIRRUS)
58: return clext_set_window(vmode_g, window, val);
59: if (CONFIG_VGA_BOCHS)
60: return bochsvga_set_window(vmode_g, window, val);
61: return stdvga_set_window(vmode_g, window, val);
62: }
63:
64: static inline int vgahw_get_linelength(struct vgamode_s *vmode_g) {
65: if (CONFIG_VGA_CIRRUS)
66: return clext_get_linelength(vmode_g);
67: if (CONFIG_VGA_BOCHS)
68: return bochsvga_get_linelength(vmode_g);
69: return stdvga_get_linelength(vmode_g);
70: }
71:
72: static inline int vgahw_set_linelength(struct vgamode_s *vmode_g, int val) {
73: if (CONFIG_VGA_CIRRUS)
74: return clext_set_linelength(vmode_g, val);
75: if (CONFIG_VGA_BOCHS)
76: return bochsvga_set_linelength(vmode_g, val);
77: return stdvga_set_linelength(vmode_g, val);
78: }
79:
80: static inline int vgahw_get_displaystart(struct vgamode_s *vmode_g) {
81: if (CONFIG_VGA_CIRRUS)
82: return clext_get_displaystart(vmode_g);
83: if (CONFIG_VGA_BOCHS)
84: return bochsvga_get_displaystart(vmode_g);
85: return stdvga_get_displaystart(vmode_g);
86: }
87:
88: static inline int vgahw_set_displaystart(struct vgamode_s *vmode_g, int val) {
89: if (CONFIG_VGA_CIRRUS)
90: return clext_set_displaystart(vmode_g, val);
91: if (CONFIG_VGA_BOCHS)
92: return bochsvga_set_displaystart(vmode_g, val);
93: return stdvga_set_displaystart(vmode_g, val);
94: }
95:
96: static inline int vgahw_get_dacformat(struct vgamode_s *vmode_g) {
97: if (CONFIG_VGA_BOCHS)
98: return bochsvga_get_dacformat(vmode_g);
99: return stdvga_get_dacformat(vmode_g);
100: }
101:
102: static inline int vgahw_set_dacformat(struct vgamode_s *vmode_g, int val) {
103: if (CONFIG_VGA_BOCHS)
104: return bochsvga_set_dacformat(vmode_g, val);
105: return stdvga_set_dacformat(vmode_g, val);
106: }
107:
108: static inline int vgahw_size_state(int states) {
109: if (CONFIG_VGA_CIRRUS)
110: return clext_size_state(states);
111: if (CONFIG_VGA_BOCHS)
112: return bochsvga_size_state(states);
113: return stdvga_size_state(states);
114: }
115:
116: static inline int vgahw_save_state(u16 seg, void *data, int states) {
117: if (CONFIG_VGA_CIRRUS)
118: return clext_save_state(seg, data, states);
119: if (CONFIG_VGA_BOCHS)
120: return bochsvga_save_state(seg, data, states);
121: return stdvga_save_state(seg, data, states);
122: }
123:
124: static inline int vgahw_restore_state(u16 seg, void *data, int states) {
125: if (CONFIG_VGA_CIRRUS)
126: return clext_restore_state(seg, data, states);
127: if (CONFIG_VGA_BOCHS)
128: return bochsvga_restore_state(seg, data, states);
129: return stdvga_restore_state(seg, data, states);
130: }
131:
132: #endif // vgahw.h
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.