80 lines
1.6 KiB
C
80 lines
1.6 KiB
C
//
|
|
// Created by rick on 26-08-21.
|
|
//
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <lai/host.h>
|
|
#include <myke/acpi/acpi.h>
|
|
#include <myke/drivers/ports.h>
|
|
#include <myke/libk/libk.h>
|
|
|
|
const char *lai_loglevel_str(int level) {
|
|
switch (level) {
|
|
case LAI_DEBUG_LOG:
|
|
return "debug ";
|
|
case LAI_WARN_LOG:
|
|
return "warn ";
|
|
default:
|
|
return "unknown";
|
|
}
|
|
}
|
|
|
|
void laihost_log(int level, const char *msg) {
|
|
printf("lai [%s]: %s\n", lai_loglevel_str(level), msg);
|
|
}
|
|
|
|
void laihost_panic(const char *msg) {
|
|
k_panics(msg);
|
|
}
|
|
|
|
void *laihost_malloc(size_t size) {
|
|
return malloc(size);
|
|
}
|
|
|
|
void *laihost_realloc(void *data, size_t size, size_t old_size) {
|
|
return realloc(data, size);
|
|
}
|
|
|
|
void laihost_free(void *data, size_t size) {
|
|
free(data);
|
|
}
|
|
|
|
void *laihost_map(size_t address, size_t size) {
|
|
return (void *) address;
|
|
}
|
|
|
|
void laihost_unmap(void *pointer, size_t count) {
|
|
}
|
|
|
|
void *laihost_scan(const char *sig, size_t index) {
|
|
return acpi_find_table_by_name(sig, (int)index);
|
|
}
|
|
|
|
void laihost_outb(uint16_t port, uint8_t val) {
|
|
port_byte_out(port, val);
|
|
}
|
|
|
|
void laihost_outw(uint16_t port, uint16_t val) {
|
|
port_word_out(port, val);
|
|
}
|
|
|
|
void laihost_outd(uint16_t port, uint32_t val) {
|
|
port_double_word_out(port, val);
|
|
}
|
|
|
|
uint8_t laihost_inb(uint16_t port) {
|
|
return port_byte_in(port);
|
|
}
|
|
|
|
uint16_t laihost_inw(uint16_t port) {
|
|
return port_word_in(port);
|
|
}
|
|
|
|
uint32_t laihost_ind(uint16_t port) {
|
|
return port_double_word_in(port);
|
|
}
|
|
|
|
void laihost_sleep(uint64_t ms) {
|
|
return; // todo implement for real system
|
|
} |