PatchworkOS  966e257
A non-POSIX operating system.
Loading...
Searching...
No Matches
log_file.c File Reference
#include "gnu-efi/inc/x86_64/efibind.h"
#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/sched/wait.h>
#include <kernel/utils/ring.h>
#include <stdlib.h>
#include <sys/io.h>
Include dependency graph for log_file.c:

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)
 
static wait_queue_tlog_file_op_poll (file_t *file, poll_events_t *revents)
 
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 wait_queue_t waitQueue = WAIT_QUEUE_CREATE(waitQueue)
 
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_op_read()

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

Definition at line 24 of file log_file.c.

Here is the call graph for this function:

◆ 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 34 of file log_file.c.

Here is the call graph for this function:

◆ log_file_op_poll()

static wait_queue_t * log_file_op_poll ( file_t file,
poll_events_t revents 
)
static

Definition at line 43 of file log_file.c.

◆ log_file_advance_fake_cursor()

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

Definition at line 71 of file log_file.c.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ lock

lock_t lock = LOCK_CREATE()
static

Definition at line 15 of file log_file.c.

◆ waitQueue

wait_queue_t waitQueue = WAIT_QUEUE_CREATE(waitQueue)
static

Definition at line 17 of file log_file.c.

◆ workingBuffer

char workingBuffer[LOG_FILE_MAX_BUFFER] = {0}
static

Definition at line 19 of file log_file.c.

◆ buffer

char buffer[LOG_FILE_MAX_BUFFER] = {0}
static

Definition at line 20 of file log_file.c.

◆ ring

ring_t ring = RING_CREATE(buffer, sizeof(buffer))
static

Definition at line 21 of file log_file.c.

◆ file

dentry_t* file = NULL
static

Definition at line 22 of file log_file.c.

◆ logFileOps

file_ops_t logFileOps
static
Initial value:
= {
}
static wait_queue_t * log_file_op_poll(file_t *file, poll_events_t *revents)
Definition log_file.c:43
static uint64_t log_file_op_read(file_t *file, void *buffer, uint64_t count, uint64_t *offset)
Definition log_file.c:24
static uint64_t log_file_op_write(file_t *file, const void *buffer, uint64_t count, uint64_t *offset)
Definition log_file.c:34

Definition at line 56 of file log_file.c.