vgabios: Extract out common parts of struct vgamode_s.
[seabios.git] / vgasrc / vgahw.h
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     return stdvga_find_mode(mode);
14 }
15
16 static inline int vgahw_set_mode(int mode, int flags) {
17     if (CONFIG_VGA_CIRRUS)
18         return clext_set_mode(mode, flags);
19     if (CONFIG_VGA_BOCHS)
20         return bochsvga_set_mode(mode, flags);
21     return stdvga_set_mode(mode, flags);
22 }
23
24 static inline int vgahw_init(void) {
25     if (CONFIG_VGA_CIRRUS)
26         return clext_init();
27     if (CONFIG_VGA_BOCHS)
28         return bochsvga_init();
29     if (CONFIG_VGA_GEODEGX2 || CONFIG_VGA_GEODELX)
30         return geodevga_init();
31     return stdvga_init();
32 }
33
34 #endif // vgahw.h