vgabios: Use vgamode_s in cirrus and bochsvga mode tables.
[seabios.git] / vgasrc / vgahw.h
index 57e41c3b671c22503b356065e45a5c2fcd06d44f..9d8a06793f42e79512737193f1a259e622ec4a52 100644 (file)
@@ -7,6 +7,15 @@
 #include "clext.h" // clext_set_mode
 #include "bochsvga.h" // bochsvga_set_mode
 #include "stdvga.h" // stdvga_set_mode
+#include "geodevga.h" // geodevga_init
+
+static inline struct vgamode_s *vgahw_find_mode(int mode) {
+    if (CONFIG_VGA_CIRRUS)
+        return clext_find_mode(mode);
+    if (CONFIG_VGA_BOCHS)
+        return bochsvga_find_mode(mode);
+    return stdvga_find_mode(mode);
+}
 
 static inline int vgahw_set_mode(int mode, int flags) {
     if (CONFIG_VGA_CIRRUS)
@@ -16,4 +25,14 @@ static inline int vgahw_set_mode(int mode, int flags) {
     return stdvga_set_mode(mode, flags);
 }
 
+static inline int vgahw_init(void) {
+    if (CONFIG_VGA_CIRRUS)
+        return clext_init();
+    if (CONFIG_VGA_BOCHS)
+        return bochsvga_init();
+    if (CONFIG_VGA_GEODEGX2 || CONFIG_VGA_GEODELX)
+        return geodevga_init();
+    return stdvga_init();
+}
+
 #endif // vgahw.h