xref: /aosp_15_r20/external/coreboot/src/include/pc80/vga.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #ifndef VGA_H
4 #define VGA_H
5 
6 #define VGA_FB 0xB8000
7 #define VGA_FB_SIZE 0x4000 /* char + attr = word sized so 0x8000 / 2 */
8 #define VGA_COLUMNS 80
9 #define VGA_LINES 25
10 
11 #define VGA_TEXT_HORIZONTAL_TOP 0
12 #define VGA_TEXT_HORIZONTAL_MIDDLE (VGA_LINES / 2)
13 
14 enum VGA_TEXT_ALIGNMENT {
15 	VGA_TEXT_LEFT,
16 	VGA_TEXT_CENTER,
17 	VGA_TEXT_RIGHT,
18 };
19 
20 void vga_io_init(void);
21 
22 void vga_textmode_init(void);
23 
24 void vga_cursor_enable(int enable);
25 void vga_cursor_reset(void);
26 void vga_cursor_set(unsigned int line, unsigned int character);
27 
28 void vga_frame_set(unsigned int line, unsigned int character);
29 
30 void vga_line_write(unsigned int line, const char *string);
31 
32 /*
33  * vga_write_text() writes a line of text aligned left/center/right
34  * horizontally on the screen (i.e. enum VGA_TEXT_ALIGNMENT)
35  */
36 void vga_write_text(enum VGA_TEXT_ALIGNMENT alignment, unsigned int line,
37 		    const unsigned char *ustring);
38 
39 #endif /* VGA_H */
40