diff options
author | Freya Murphy <freya@freyacat.org> | 2025-04-24 13:41:38 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2025-04-24 13:41:38 -0400 |
commit | f5c474cf77965376614e8c42a48f1f295228bcd6 (patch) | |
tree | 96c4db44b0be70c4456f96995a8853f490a29541 | |
parent | libc should not halt (diff) | |
download | comus-f5c474cf77965376614e8c42a48f1f295228bcd6.tar.gz comus-f5c474cf77965376614e8c42a48f1f295228bcd6.tar.bz2 comus-f5c474cf77965376614e8c42a48f1f295228bcd6.zip |
fmt
-rw-r--r-- | kernel/cpu/tss.c | 14 | ||||
-rw-r--r-- | kernel/lib/backtrace.c | 4 | ||||
-rw-r--r-- | kernel/memory/paging.c | 6 | ||||
-rw-r--r-- | kernel/syscall.c | 28 |
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) |