summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-04-24 13:41:38 -0400
committerFreya Murphy <freya@freyacat.org>2025-04-24 13:41:38 -0400
commitf5c474cf77965376614e8c42a48f1f295228bcd6 (patch)
tree96c4db44b0be70c4456f96995a8853f490a29541
parentlibc should not halt (diff)
downloadcomus-f5c474cf77965376614e8c42a48f1f295228bcd6.tar.gz
comus-f5c474cf77965376614e8c42a48f1f295228bcd6.tar.bz2
comus-f5c474cf77965376614e8c42a48f1f295228bcd6.zip
fmt
-rw-r--r--kernel/cpu/tss.c14
-rw-r--r--kernel/lib/backtrace.c4
-rw-r--r--kernel/memory/paging.c6
-rw-r--r--kernel/syscall.c28
4 files changed, 23 insertions, 29 deletions
diff --git a/kernel/cpu/tss.c b/kernel/cpu/tss.c
index bda713b..100525b 100644
--- a/kernel/cpu/tss.c
+++ b/kernel/cpu/tss.c
@@ -11,7 +11,7 @@ struct sys_seg_descriptor {
uint64_t : 1;
uint64_t DPL : 2;
uint64_t present : 1;
- uint64_t limit16_19: 4;
+ uint64_t limit16_19 : 4;
uint64_t available : 1;
uint64_t : 1;
uint64_t : 1;
@@ -49,16 +49,17 @@ static volatile struct sys_seg_descriptor *GDT_TSS;
// kernel stack pointer
extern char kern_stack_end[];
-void tss_init(void) {
- uint64_t base = (uint64_t) &tss;
+void tss_init(void)
+{
+ uint64_t base = (uint64_t)&tss;
uint64_t limit = sizeof tss - 1;
// setup tss entry
memsetv(&tss, 0, sizeof(struct tss));
- tss.rsp0 = (uint64_t) kern_stack_end;
+ tss.rsp0 = (uint64_t)kern_stack_end;
// map tss into gdt
- GDT_TSS = (volatile struct sys_seg_descriptor *) (GDT + 0x28);
+ GDT_TSS = (volatile struct sys_seg_descriptor *)(GDT + 0x28);
memsetv(GDT_TSS, 0, sizeof(struct sys_seg_descriptor));
GDT_TSS->limit0_15 = limit & 0xFFFF;
GDT_TSS->base0_15 = base & 0xFFFF;
@@ -75,6 +76,7 @@ void tss_init(void) {
tss_flush();
}
-void tss_set_stack(uint64_t stack) {
+void tss_set_stack(uint64_t stack)
+{
tss.rsp0 = stack;
}
diff --git a/kernel/lib/backtrace.c b/kernel/lib/backtrace.c
index 102e775..2507be4 100644
--- a/kernel/lib/backtrace.c
+++ b/kernel/lib/backtrace.c
@@ -9,7 +9,9 @@ struct stackframe {
extern char kern_stack_start[];
extern char kern_stack_end[];
-#define VALID(frame) (frame && (char*)(frame) >= kern_stack_start && ((char*)(frame) <= kern_stack_end))
+#define VALID(frame) \
+ (frame && (char *)(frame) >= kern_stack_start && \
+ ((char *)(frame) <= kern_stack_end))
size_t backtrace(void **dst, size_t len)
{
diff --git a/kernel/memory/paging.c b/kernel/memory/paging.c
index f286027..80ab833 100644
--- a/kernel/memory/paging.c
+++ b/kernel/memory/paging.c
@@ -236,7 +236,8 @@ static volatile struct pdpt *pdpt_locate(volatile struct pml4 *pPML4,
// locate a pd for a vitural address
// @returns PHYSICAL ADDRESS
-static volatile struct pd *pd_locate(volatile struct pdpt *pPDPT, const void *vADDR)
+static volatile struct pd *pd_locate(volatile struct pdpt *pPDPT,
+ const void *vADDR)
{
volatile struct pdpt *vPDPT;
volatile struct pdpte *vPDPTE;
@@ -667,8 +668,7 @@ volatile void *paging_alloc(void)
if (pPML4 == NULL)
return NULL;
- if (map_pages(pPML4, kernel_start, kernel_start,
- F_PRESENT | F_WRITEABLE,
+ if (map_pages(pPML4, kernel_start, kernel_start, F_PRESENT | F_WRITEABLE,
(kernel_end - kernel_start) / PAGE_SIZE)) {
pml4_free(pPML4, false);
return NULL;
diff --git a/kernel/syscall.c b/kernel/syscall.c
index 7887e83..7944f46 100644
--- a/kernel/syscall.c
+++ b/kernel/syscall.c
@@ -12,7 +12,7 @@
static int sys_exit(void)
{
ARG1(int, status);
- (void) status;
+ (void)status;
// FIXME: schedule somthing else
while (1)
@@ -53,23 +53,12 @@ static int sys_write(void)
}
static int (*syscall_tbl[N_SYSCALLS])(void) = {
- [SYS_exit] = sys_exit,
- [SYS_waitpid] = NULL,
- [SYS_fork] = NULL,
- [SYS_exec] = NULL,
- [SYS_open] = NULL,
- [SYS_close] = NULL,
- [SYS_read] = NULL,
- [SYS_write] = sys_write,
- [SYS_getpid] = NULL,
- [SYS_getppid] = NULL,
- [SYS_gettime] = NULL,
- [SYS_getprio] = NULL,
- [SYS_setprio] = NULL,
- [SYS_kill] = NULL,
- [SYS_sleep] = NULL,
- [SYS_brk] = NULL,
- [SYS_sbrk] = NULL,
+ [SYS_exit] = sys_exit, [SYS_waitpid] = NULL, [SYS_fork] = NULL,
+ [SYS_exec] = NULL, [SYS_open] = NULL, [SYS_close] = NULL,
+ [SYS_read] = NULL, [SYS_write] = sys_write, [SYS_getpid] = NULL,
+ [SYS_getppid] = NULL, [SYS_gettime] = NULL, [SYS_getprio] = NULL,
+ [SYS_setprio] = NULL, [SYS_kill] = NULL, [SYS_sleep] = NULL,
+ [SYS_brk] = NULL, [SYS_sbrk] = NULL,
};
void syscall_handler(struct cpu_regs *regs)
@@ -91,7 +80,8 @@ void syscall_handler(struct cpu_regs *regs)
if (num >= N_SYSCALLS) {
// invalid syscall
// FIXME: kill user process
- while(1);
+ while (1)
+ ;
}
// run syscall handler (if exists)