Integrate flaterm terminal
This commit is contained in:
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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_
|
@ -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;
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user