Integrate flaterm terminal

This commit is contained in:
2025-08-13 23:28:25 +02:00
parent ce6b17d72b
commit 95832bb3a7
23 changed files with 3230 additions and 21 deletions

View File

@ -2,15 +2,15 @@
#define KERNEL_HAL_HAL_H_
#include <stdint.h>
#include "util.h"
#include <stddef.h>
__attribute__((noreturn)) void hal_hang(void);
void hal_init(void);
void hal_intr_disable(void);
void hal_intr_enable(void);
void hal_memset(void *mem, uint8_t v, uint32_t size);
void *hal_memset(void *p, int c, size_t n);
void *hal_memcpy(void *dst, const void *src, size_t n);
#if defined(__x86_64__)
# define HAL_PAGE_SIZE 0x1000

View File

@ -1,9 +1,16 @@
#include <stdint.h>
#include <stddef.h>
#include "hal.h"
void hal_memset(void *mem, uint8_t v, uint32_t size) {
uint8_t *mem1 = mem;
for (uint32_t i = 0; i < size; i++) {
mem1[i] = v;
}
void *hal_memset(void *p, int c, size_t n) {
char *cp = p;
for (size_t i = 0; i < n; i++) cp[i] = c;
return p;
}
void *hal_memcpy(void *dst, const void *src, size_t n) {
char *a = dst;
const char *b = src;
for (size_t i = 0; i < n; i++) a[i] = b[i];
return dst;
}

View File

@ -1,6 +0,0 @@
#ifndef HAL_UTIL_H_
#define HAL_UTIL_H_
#define HAL_MEMSET(m, v, n) hal_memset((void *)(m), (v), (n))
#endif // HAL_UTIL_H_

View File

@ -68,7 +68,7 @@ void gdt_init(void) {
uint64_t base = gdt_curretbase();
curgdt = (ExtendedGdt *)base;
HAL_MEMSET(&tss, 0, sizeof(tss));
hal_memset(&tss, 0, sizeof(tss));
tss.iopb_off = sizeof(tss);
uint64_t tss_base = (uint64_t)&tss;

View File

@ -1,6 +1,7 @@
#include <stdint.h>
#include <stdbool.h>
#include "io.h"
#include "putchar.h"
#define SERIAL_PORT 0x3f8
@ -42,7 +43,9 @@ bool serial_init(void) {
return true;
}
// For printf library
void putchar_(char c) {
serial_write(c);
}
#if PUTCHAR_ == PUTCHAR_SERIAL
// For printf library
void putchar_(char c) {
serial_write(c);
}
#endif