aboutsummaryrefslogtreecommitdiff
path: root/src/vga.h
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2021-02-09 20:44:43 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2021-02-09 20:44:43 +0200
commita487d6ccee43bd6cd5ec648e8b97712595f681a7 (patch)
tree4b48fa9a6d409726e8619265efe2d2acd33bcf3f /src/vga.h
parentAdd more comments to GDT code (diff)
downloadkernel.cpp-a487d6ccee43bd6cd5ec648e8b97712595f681a7.tar.xz
Add some compiler warnings
Diffstat (limited to 'src/vga.h')
-rw-r--r--src/vga.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/vga.h b/src/vga.h
index 3052dbc..32c152f 100644
--- a/src/vga.h
+++ b/src/vga.h
@@ -4,7 +4,7 @@
class VGA : public Console {
public:
/* Hardware text mode color constants. */
- enum vga_color {
+ enum vga_color : uint8_t {
VGA_COLOR_BLACK = 0,
VGA_COLOR_BLUE = 1,
VGA_COLOR_GREEN = 2,
@@ -26,14 +26,25 @@ public:
VGA(vga_color fg = VGA_COLOR_BLACK, vga_color bg = VGA_COLOR_LIGHT_GREY, uint32_t address = 0xB8000);
~VGA() = default;
+ void set_color(vga_color fg, vga_color bg);
+
void write(char c) override;
void write(ViewIterator& iter) override;
- void set_color(vga_color fg, vga_color bg) { color = (fg | bg << 4); }
+
+ struct Entry {
+ char c;
+ vga_color fg : 4;
+ vga_color bg : 4;
+ } __attribute((packed));
private:
const size_t max_columns = 80, max_rows = 25;
size_t column = 0, row = 0;
- uint8_t color;
- uint16_t* buffer;
+
+ vga_color color_fg;
+ vga_color color_bg;
+
+ Entry* buffer;
};
+