|
Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
|
#include <console/console.h>#include <hal/graphic/graphic.h>#include <libk/serial.h>#include <memory/kalloc.h>#include <spinlock.h>#include <str.h>#include <type.h>#include <hal/cpu/irq_lock.h>Go to the source code of this file.
Data Structures | |
| struct | console_entry_t |
| struct | console_ring_buffer_t |
Macros | |
| #define | SLOT_EMPTY 0x00 |
| #define | SLOT_WRITING 0xFE |
| #define | SLOT_DROPPED 0xFF |
| #define | CONSOLE_BUFFER_SIZE 2048 |
| #define | CONSOLE_BUFFER_MASK (CONSOLE_BUFFER_SIZE - 1) |
| #define | SPIN_LIMIT 500000u |
| #define | FLUSH_TEMP() |
Functions | |
| static void | do_scroll (void) |
| static void | advance_cursor (void) |
| static void | put_char_raw (char c, uint32_t color) |
| static bool | reserve_slot (uint32_t *out_idx) |
| static void | put_into_buffer (const char *str, uint8_t len, uint32_t color) |
| static void | console_flush (void) |
| int | console_get_pos_x (void) |
| int | console_get_pos_y (void) |
| void | console_println (const char *str) |
| void | console_print (const char *str, uint64_t len) |
| static char * | val_to_str (uint64_t val, uint64_t base) |
| static void | vprintf_internal (const char *fmt, __builtin_va_list args) |
| void | console_printf (const char *fmt,...) |
| void | console_vaprintf (const char *fmt, __builtin_va_list args) |
| void | console_newline (void) |
| void | console_chfg (uint32_t color) |
| void | console_add_space (int n) |
| void | console_set_pos (int x, int y) |
Variables | |
| static console_ring_buffer_t | __console_buffer = {0} |
| static volatile unsigned char | __console_flush_lock = 0 |
| static spinlock_t | __console_producer_lock = {0} |
| static int | pos_x = 0 |
| static int | pos_y = 0 |
| static uint32_t | fgcolor = 0xFFFFFFFF |
| #define CONSOLE_BUFFER_MASK (CONSOLE_BUFFER_SIZE - 1) |
Definition at line 14 of file console.c.
Referenced by console_flush(), and reserve_slot().
| #define CONSOLE_BUFFER_SIZE 2048 |
Definition at line 13 of file console.c.
Referenced by reserve_slot().
| #define FLUSH_TEMP | ( | ) |
Referenced by vprintf_internal().
| #define SLOT_DROPPED 0xFF |
Definition at line 11 of file console.c.
Referenced by console_flush(), put_into_buffer(), put_into_buffer(), and serial2_flush().
| #define SLOT_EMPTY 0x00 |
Definition at line 9 of file console.c.
Referenced by console_flush(), put_into_buffer(), put_into_buffer(), serial2_flush(), vxAddWorkqueueTask(), and workqueue_process().
| #define SLOT_WRITING 0xFE |
Definition at line 10 of file console.c.
Referenced by console_flush(), put_into_buffer(), put_into_buffer(), and serial2_flush().
| #define SPIN_LIMIT 500000u |
Definition at line 15 of file console.c.
Referenced by console_flush(), put_into_buffer(), put_into_buffer(), and serial2_flush().
|
static |
Definition at line 44 of file console.c.
References do_scroll(), pos_x, pos_y, screen_cols(), and screen_rows().
Referenced by put_char_raw().
| void console_add_space | ( | int | n | ) |
Definition at line 353 of file console.c.
References __console_producer_lock, console_flush(), fgcolor, flags, irq_restore(), irq_save(), put_into_buffer(), spin_acquire(), and spin_release().
Referenced by kernel_debug_impl().
| void console_chfg | ( | uint32_t | color | ) |
|
static |
Definition at line 125 of file console.c.
References __console_buffer, __console_flush_lock, CONSOLE_BUFFER_MASK, console_entry_t::data, console_entry_t::fg, head, console_entry_t::len, len, put_char_raw(), SLOT_DROPPED, SLOT_EMPTY, SLOT_WRITING, SPIN_LIMIT, and tail.
Referenced by console_add_space(), console_newline(), console_print(), console_printf(), console_println(), and console_vaprintf().
| void console_newline | ( | void | ) |
Definition at line 340 of file console.c.
References __console_producer_lock, console_flush(), fgcolor, flags, irq_restore(), irq_save(), put_into_buffer(), spin_acquire(), and spin_release().
| void console_print | ( | const char * | str, |
| uint64_t | len ) |
Definition at line 179 of file console.c.
References console_flush(), fgcolor, len, put_into_buffer(), and str().
| void console_printf | ( | const char * | fmt, |
| ... ) |
Definition at line 315 of file console.c.
References __console_producer_lock, console_flush(), flags, irq_restore(), irq_save(), spin_acquire(), spin_release(), and vprintf_internal().
Referenced by kernel_debug_impl().
| void console_println | ( | const char * | str | ) |
Definition at line 172 of file console.c.
References console_flush(), fgcolor, len, put_into_buffer(), str(), and strlen().
| void console_set_pos | ( | int | x, |
| int | y ) |
| void console_vaprintf | ( | const char * | fmt, |
| __builtin_va_list | args ) |
Definition at line 329 of file console.c.
References __console_producer_lock, console_flush(), flags, irq_restore(), irq_save(), spin_acquire(), spin_release(), and vprintf_internal().
Referenced by kernel_debug_impl().
|
static |
Definition at line 37 of file console.c.
References FONT_SIZE, pos_x, pos_y, rows, screen_rows(), and vxScroll().
Referenced by advance_cursor(), put_char_raw(), and tty_check_and_flush().
|
static |
Definition at line 54 of file console.c.
References advance_cursor(), BLACK, do_scroll(), next, pos_x, pos_y, putc(), and screen_rows().
Referenced by console_flush().
Definition at line 97 of file console.c.
References __console_buffer, console_entry_t::data, console_entry_t::fg, idx, console_entry_t::len, len, reserve_slot(), SLOT_DROPPED, SLOT_EMPTY, SLOT_WRITING, SPIN_LIMIT, and str().
Referenced by console_add_space(), console_newline(), console_print(), console_println(), and vprintf_internal().
|
static |
Definition at line 76 of file console.c.
References __console_buffer, CONSOLE_BUFFER_MASK, CONSOLE_BUFFER_SIZE, head, and tail.
Referenced by put_into_buffer().
|
static |
Definition at line 214 of file console.c.
References fgcolor, FLUSH_TEMP, kfree2(), put_into_buffer(), strlen(), and val_to_str().
Referenced by console_printf(), and console_vaprintf().
|
static |
Definition at line 29 of file console.c.
Referenced by console_flush(), put_into_buffer(), and reserve_slot().
|
static |
Definition at line 30 of file console.c.
Referenced by console_flush().
|
static |
Definition at line 31 of file console.c.
Referenced by console_add_space(), console_newline(), console_printf(), and console_vaprintf().
|
static |
Definition at line 35 of file console.c.
Referenced by console_add_space(), console_chfg(), console_newline(), console_print(), console_println(), and vprintf_internal().
|
static |
Definition at line 33 of file console.c.
Referenced by advance_cursor(), console_get_pos_x(), console_set_pos(), do_scroll(), and put_char_raw().
|
static |
Definition at line 34 of file console.c.
Referenced by advance_cursor(), console_get_pos_y(), console_set_pos(), do_scroll(), and put_char_raw().