This commit is contained in:
2026-09-14 02:50:35 +02:00
parent cf3f1f9e99
commit 9e5ed517bc
45 changed files with 210 additions and 212 deletions
+1
View File
@@ -3,6 +3,7 @@
#include <common/elf.h>
#include <common/utils.h>
#include <kernel/alloc.h>
#include <kernel/arch.h>
#include <kernel/elf.h>
#include <kernel/percpu.h>
#include <kernel/pmap.h>
+1
View File
@@ -1,3 +1,4 @@
#include <kernel/arch.h>
#include <kernel/irq.h>
#include <kernel/percpu.h>
#include <stdatomic.h>
+1
View File
@@ -1,3 +1,4 @@
#include <kernel/arch.h>
#include <kernel/irq.h>
#include <kernel/panic.h>
#include <kernel/percpu.h>
+13
View File
@@ -1,4 +1,5 @@
#include <common/compiler.h>
#include <kernel/arch.h>
#include <kernel/percpu.h>
[[__used, __section(".percpu")]]
@@ -12,3 +13,15 @@ struct percpu* percpu_new() {
// TODO
return nullptr;
}
struct percpu* percpu_get() {
return arch_percpu_get();
}
void percpu_bsp_init() {
arch_percpu_bsp_init();
}
void percpu_init() {
arch_percpu_init();
}
+2 -2
View File
@@ -1,5 +1,6 @@
#include <zinnia/status.h>
#include <kernel/alloc.h>
#include <kernel/arch.h>
#include <kernel/irq.h>
#include <kernel/list.h>
#include <kernel/percpu.h>
@@ -8,7 +9,6 @@
#include <kernel/spin.h>
#include <kernel/tailq.h>
#include <assert.h>
#include <bits/irq.h>
#include <stdatomic.h>
#include <stdint.h>
#include <string.h>
@@ -125,7 +125,7 @@ zn_status_t task_create(
new_task->user_stack = 0;
// Initialize the arch-dependent parts.
zn_status_t s = arch_task_init(&new_task->context, entry, arg0, new_task->kernel_stack + KERNEL_STACK_SIZE, true);
zn_status_t s = arch_task_init(&new_task->task_ctx, entry, arg0, new_task->kernel_stack + KERNEL_STACK_SIZE, true);
if (s != ZN_OK)
return s;
+10 -2
View File
@@ -1,7 +1,11 @@
#include <common/utils.h>
#include <kernel/arch.h>
#include <kernel/init.h>
#include <kernel/mmio.h>
#include <kernel/pmap.h>
#include <kernel/print.h>
#include <kernel/vas.h>
#include <kernel/virt.h>
#include <stdarg.h>
#include <uacpi/kernel_api.h>
#include <uacpi/status.h>
@@ -13,11 +17,15 @@ uacpi_status uacpi_kernel_get_rsdp(uacpi_phys_addr* out_rsdp_address) {
}
void* uacpi_kernel_map(uacpi_phys_addr addr, uacpi_size len) {
return mmio_new(addr, len);
uintptr_t vaddr = vm_alloc(len);
for (size_t i = 0; i < len; i += arch_mem_page_size()) {
pmap_map(&kernel_vas.pmap, vaddr, addr, PTE_READ | PTE_WRITE, CACHE_MMIO);
}
return (void*)vaddr;
}
void uacpi_kernel_unmap(void* addr, uacpi_size len) {
mmio_free(addr, len);
// TODO
}
void uacpi_kernel_log(uacpi_log_level lvl, const uacpi_char* msg, ...) {