PatchworkOS
Loading...
Searching...
No Matches
log_file.c File Reference
#include <kernel/log/log_file.h>
#include <kernel/fs/file.h>
#include <kernel/fs/sysfs.h>
#include <kernel/log/log.h>
#include <kernel/log/log_screen.h>
#include <kernel/log/panic.h>
#include <kernel/utils/ring.h>
#include <stdlib.h>

Go to the source code of this file.

Functions

static uint64_t log_file_op_read (file_t *file, void *buffer, uint64_t count, uint64_t *offset)
 
static uint64_t log_file_op_write (file_t *file, const void *buffer, uint64_t count, uint64_t *offset)
 
void log_file_expose (void)
 Expose the kernel log file to userspace in sysfs.
 
static void log_file_advance_fake_cursor (char chr, uint64_t *lineLength, uint64_t *lineCount)
 
void log_file_flush_to_screen (void)
 Flush the content of the log file to the screen.
 
void log_file_write (const char *string, uint64_t length)
 Write a string to the kernel log file.
 

Variables

static lock_t lock = LOCK_CREATE
 
static char workingBuffer [LOG_FILE_MAX_BUFFER] = {0}
 
static char buffer [LOG_FILE_MAX_BUFFER] = {0}
 
static ring_t ring = RING_CREATE(buffer, sizeof(buffer))
 
static dentry_tfile = NULL
 
static file_ops_t logFileOps
 

Function Documentation

◆ log_file_advance_fake_cursor()

static void log_file_advance_fake_cursor ( char  chr,
uint64_t lineLength,
uint64_t lineCount 
)
static

Definition at line 67 of file log_file.c.

References log_screen_get_width(), and SCREEN_WRAP_INDENT.

Referenced by log_file_flush_to_screen().

◆ log_file_op_read()

static uint64_t log_file_op_read ( file_t file,
void *  buffer,
uint64_t  count,
uint64_t offset 
)
static

Definition at line 19 of file log_file.c.

References buffer, count, file, lock, LOCK_SCOPE, ring, and ring_read_at().

◆ log_file_op_write()

static uint64_t log_file_op_write ( file_t file,
const void *  buffer,
uint64_t  count,
uint64_t offset 
)
static

Definition at line 29 of file log_file.c.

References buffer, count, EINVAL, ERR, errno, file, LOG_USER, MAX_PATH, memcpy(), and NULL.

Variable Documentation

◆ buffer

char buffer[LOG_FILE_MAX_BUFFER] = {0}
static

Definition at line 15 of file log_file.c.

Referenced by log_file_op_read(), and log_file_op_write().

◆ file

dentry_t* file = NULL
static

Definition at line 17 of file log_file.c.

Referenced by _files_push(), _files_remove(), acpi_table_read(), acpi_tables_expose(), boot_dir_free(), boot_file_free(), config_open(), const_null_read(), const_null_write(), const_one_mmap(), const_one_read(), const_zero_mmap(), const_zero_read(), cpu_stat_count_cpus(), cpu_stat_read(), ctl_dispatch(), disk_load_dir(), fb_buffer_mmap(), fb_info_read(), file_free(), file_generic_seek(), file_new(), font_new(), image_new(), kbd_events_poll(), kbd_events_read(), kbd_name_read(), kernel_load(), key_claim(), key_share(), load_kernel_segments(), load_section_headers(), load_symbol_table(), loader_load_program(), log_file_expose(), log_file_op_read(), log_file_op_write(), mem_stat_read(), mouse_events_poll(), mouse_events_read(), mouse_name_read(), open_root_volume(), pipe_close(), pipe_open(), pipe_poll(), pipe_read(), pipe_write(), process_cmdline_read(), process_cwd_read(), process_file_get_process(), process_note_write(), process_prio_read(), process_prio_write(), process_wait_poll(), process_wait_read(), ram_disk_load_file(), ramfs_load_dir(), ramfs_read(), ramfs_write(), shmem_close(), shmem_mmap(), shmem_open(), socket_accept_close(), socket_accept_open(), socket_ctl_bind(), socket_ctl_connect(), socket_ctl_listen(), socket_data_close(), socket_data_open(), socket_data_poll(), socket_data_read(), socket_data_write(), socket_factory_close(), socket_factory_open(), socket_factory_read(), statistics_cpu_read(), statistics_mem_read(), SYSCALL_DEFINE(), SYSCALL_DEFINE(), SYSCALL_DEFINE(), SYSCALL_DEFINE(), SYSCALL_DEFINE(), SYSCALL_DEFINE(), SYSCALL_DEFINE(), SYSCALL_DEFINE(), SYSCALL_DEFINE(), SYSCALL_DEFINE(), SYSCALL_DEFINE(), sysfs_file_new(), vfs_ctx_alloc_fd(), vfs_ctx_set_fd(), vfs_getdents(), vfs_ioctl(), vfs_mmap(), vfs_open(), vfs_poll(), vfs_poll_ctx_check_events(), vfs_poll_ctx_init(), vfs_read(), vfs_seek(), and vfs_write().

◆ lock

lock_t lock = LOCK_CREATE
static

Definition at line 12 of file log_file.c.

Referenced by log_file_flush_to_screen(), log_file_op_read(), and log_file_write().

◆ logFileOps

file_ops_t logFileOps
static
Initial value:
= {
}
static uint64_t log_file_op_read(file_t *file, void *buffer, uint64_t count, uint64_t *offset)
Definition log_file.c:19
static uint64_t log_file_op_write(file_t *file, const void *buffer, uint64_t count, uint64_t *offset)
Definition log_file.c:29

Definition at line 53 of file log_file.c.

Referenced by log_file_expose().

◆ ring

◆ workingBuffer

char workingBuffer[LOG_FILE_MAX_BUFFER] = {0}
static

Definition at line 14 of file log_file.c.

Referenced by log_file_flush_to_screen().