Added kinfo, reduced global state

This commit is contained in:
ssimnb 2026-02-23 12:57:09 +01:00
parent 2213707c6a
commit e72c8fe6fd
30 changed files with 510 additions and 574 deletions

View file

@ -1,4 +1,4 @@
#include "arch/amd64/hal/smp.h"
#include "smp.h"
#include <stdatomic.h>
#include <uacpi/kernel_api.h>
#include <uacpi/log.h>
@ -15,7 +15,7 @@
#include <limine.h>
#include <kprint.h>
#include <neobbo.h>
#include <io.h>
#include <arch/amd64/io.h>
#include <sys/time.h>
extern uint64_t hhdmoffset;
@ -76,17 +76,17 @@ uacpi_status uacpi_kernel_pci_read32(uacpi_handle device, uacpi_size offset, uac
}
uacpi_status uacpi_kernel_pci_write8(uacpi_handle device, uacpi_size offset, uacpi_u8 value){
*(uint8_t*)((uint64_t)device + offset + hhdmoffset) = value;
*(uint8_t*)((uint64_t)device + offset + get_kinfo()->hhdmoffset) = value;
return UACPI_STATUS_OK;
}
uacpi_status uacpi_kernel_pci_write16(uacpi_handle device, uacpi_size offset, uacpi_u16 value){
*(uint16_t*)((uint64_t)device + offset + hhdmoffset) = value;
*(uint16_t*)((uint64_t)device + offset + get_kinfo()->hhdmoffset) = value;
return UACPI_STATUS_OK;
}
uacpi_status uacpi_kernel_pci_write32(uacpi_handle device, uacpi_size offset, uacpi_u32 value){
*(uint32_t*)((uint64_t)device + offset + hhdmoffset) = value;
*(uint32_t*)((uint64_t)device + offset + get_kinfo()->hhdmoffset) = value;
return UACPI_STATUS_OK;
}
@ -149,7 +149,7 @@ uacpi_status uacpi_kernel_io_write(uacpi_handle handle, uacpi_size offset, uacpi
void *uacpi_kernel_map(uacpi_phys_addr addr, uacpi_size len){
uint64_t offset = addr % PAGE_SIZE;
kmap_pages((void*)addr, len, 0);
return (void*)addr + hhdmoffset + offset;
return (void*)addr + get_kinfo()->hhdmoffset + offset;
}
void uacpi_kernel_unmap(void *addr, uacpi_size len){
@ -177,7 +177,7 @@ void uacpi_kernel_free(void *mem){
}
uacpi_u64 uacpi_kernel_get_nanoseconds_since_boot(void){
return get_timestamp_ns();
return get_timestamp_us() * 1000;
}
void uacpi_kernel_stall(uacpi_u8 usec){
@ -185,7 +185,7 @@ void uacpi_kernel_stall(uacpi_u8 usec){
}
void uacpi_kernel_sleep(uacpi_u64 msec){
sleep(msec );
sleep(msec);
}
uacpi_handle uacpi_kernel_create_mutex(){