|
|
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.