formatting and make events const
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
IndentWidth: 4
|
||||
ColumnLimit: 120
|
||||
ColumnLimit: 100
|
||||
|
||||
# Pointer formatting
|
||||
DerivePointerAlignment: false
|
||||
@@ -16,5 +16,4 @@ AllowShortLoopsOnASingleLine: false
|
||||
SeparateDefinitionBlocks: Always
|
||||
|
||||
BreakBeforeBraces: Allman
|
||||
|
||||
Cpp11BracedListStyle: false
|
||||
Cpp11BracedListStyle: true
|
||||
|
||||
11
src/idt.c
11
src/idt.c
@@ -31,7 +31,8 @@ typedef struct
|
||||
extern void* isr_stub_table[];
|
||||
static irq_handler_t irq_handlers[16] = {0};
|
||||
|
||||
static const char* exception_messages[32] = { "divide by zero",
|
||||
static const char* exception_messages[32] = {
|
||||
"divide by zero",
|
||||
"debug",
|
||||
"non maskable interrupt",
|
||||
"breakpoint",
|
||||
@@ -62,7 +63,8 @@ static const char* exception_messages[32] = { "divide by zero",
|
||||
"hypervisor injection exception",
|
||||
"vmm communication exception",
|
||||
"security exception",
|
||||
"reserved" };
|
||||
"reserved",
|
||||
};
|
||||
|
||||
static interrupt_descriptor idt[IDT_SIZE];
|
||||
|
||||
@@ -126,7 +128,10 @@ void init_idt(void)
|
||||
idt_set_descriptor(i, isr_stub_table[i], 0);
|
||||
}
|
||||
|
||||
idtr_t idtr = { .base = (uintptr_t)&idt[0], .limit = (uint16_t)sizeof(interrupt_descriptor) * IDT_SIZE - 1 };
|
||||
idtr_t idtr = {
|
||||
.base = (uintptr_t)&idt[0],
|
||||
.limit = (uint16_t)sizeof(interrupt_descriptor) * IDT_SIZE - 1,
|
||||
};
|
||||
|
||||
__asm__ volatile("lidt %0" : : "m"(idtr));
|
||||
__asm__ volatile("sti");
|
||||
|
||||
@@ -11,7 +11,7 @@ typedef struct
|
||||
uint64_t rip, cs, rflags, rsp, ss;
|
||||
} __attribute__((packed)) isr_frame_t;
|
||||
|
||||
typedef void (*irq_handler_t)(isr_frame_t*);
|
||||
typedef void (*irq_handler_t)(const isr_frame_t*);
|
||||
|
||||
void init_idt(void);
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "vga.h"
|
||||
#include <stdbool.h>
|
||||
|
||||
void keyboard_handler(keyboard_event_t* event)
|
||||
void keyboard_handler(const keyboard_event_t* event)
|
||||
{
|
||||
if (event->pressed)
|
||||
{
|
||||
|
||||
@@ -18,7 +18,7 @@ bool caps_lock = false;
|
||||
static keyboard_handler_t keyboard_handlers[KEYBOARD_HANDLERS_LENGTH];
|
||||
static int handler_index = 0;
|
||||
|
||||
void handle_keyboard(isr_frame_t* frame)
|
||||
void handle_keyboard(const isr_frame_t* frame)
|
||||
{
|
||||
uint8_t code = inb(0x60);
|
||||
uint8_t scan_code = code & 0x7F;
|
||||
@@ -42,7 +42,12 @@ void handle_keyboard(isr_frame_t* frame)
|
||||
}
|
||||
default:
|
||||
{
|
||||
keyboard_event_t event = { .scan_code = scan_code, .pressed = pressed, .caps_lock = caps_lock, .shift = shift };
|
||||
keyboard_event_t event = {
|
||||
.scan_code = scan_code,
|
||||
.pressed = pressed,
|
||||
.caps_lock = caps_lock,
|
||||
.shift = shift,
|
||||
};
|
||||
|
||||
for (int i = 0; i < handler_index; i++)
|
||||
{
|
||||
@@ -52,9 +57,10 @@ void handle_keyboard(isr_frame_t* frame)
|
||||
}
|
||||
}
|
||||
|
||||
void register_keypress_handler(keyboard_handler_t handler)
|
||||
void register_keypress_handler(const keyboard_handler_t handler)
|
||||
{
|
||||
// todo(nub31): remove when a memory allocator is implemented and keyboard_handlers is a dynamic list
|
||||
// todo(nub31): remove when a memory allocator is implemented and
|
||||
// keyboard_handlers is a dynamic list
|
||||
if (handler_index >= KEYBOARD_HANDLERS_LENGTH)
|
||||
{
|
||||
vga_print_error();
|
||||
|
||||
@@ -9,9 +9,10 @@ typedef struct
|
||||
bool pressed;
|
||||
bool shift;
|
||||
bool caps_lock;
|
||||
char ascii;
|
||||
} keyboard_event_t;
|
||||
|
||||
typedef void (*keyboard_handler_t)(keyboard_event_t*);
|
||||
typedef void (*keyboard_handler_t)(const keyboard_event_t*);
|
||||
|
||||
void init_keyboard();
|
||||
void register_keypress_handler(keyboard_handler_t handler);
|
||||
15
src/vga.c
15
src/vga.c
@@ -33,7 +33,10 @@ void vga_clear(void)
|
||||
{
|
||||
for (uint8_t col = 0; col < COLUMNS; col++)
|
||||
{
|
||||
vga_char character = { .character = ' ', .color = vga_default_color() };
|
||||
vga_char character = {
|
||||
.character = ' ',
|
||||
.color = vga_default_color(),
|
||||
};
|
||||
vga_set_char(row, col, character);
|
||||
}
|
||||
}
|
||||
@@ -68,7 +71,10 @@ void vga_print_char_colored(char character, vga_color_t color)
|
||||
}
|
||||
default:
|
||||
{
|
||||
vga_char c = { .character = character, .color = color };
|
||||
vga_char c = {
|
||||
.character = character,
|
||||
.color = color,
|
||||
};
|
||||
vga_set_char(cursor_row, cursor_col, c);
|
||||
cursor_col += 1;
|
||||
break;
|
||||
@@ -93,7 +99,10 @@ void vga_print_char_colored(char character, vga_color_t color)
|
||||
|
||||
for (uint8_t col = 0; col < COLUMNS; col++)
|
||||
{
|
||||
vga_char c = { .character = ' ', .color = vga_default_color() };
|
||||
vga_char c = {
|
||||
.character = ' ',
|
||||
.color = vga_default_color(),
|
||||
};
|
||||
vga_set_char(ROWS - 1, col, c);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user