Fix SYS_puts.

This commit is contained in:
Alexander Myltsev 2025-01-18 15:52:48 +04:00
parent 2989d96266
commit 3c6578cd1b
2 changed files with 6 additions and 4 deletions

View File

@ -37,8 +37,8 @@ ASMFLAGS = -target elf-i386 -ffreestanding -c -g
LDKERNELFLAGS = --script=script.ld
endif
OBJECTS = ./kernel.o ./console.o ./drivers/vga.o ./drivers/uart.o ./drivers/keyboard.o \
./cpu/idt.o ./cpu/gdt.o ./cpu/swtch.o ./cpu/vectors.o ./lib/mem.o ./proc.o ./lib/string.o \
OBJECTS = ./kernel/kstart.o ./kernel.o ./console.o ./drivers/vga.o ./drivers/uart.o ./drivers/keyboard.o \
./cpu/idt.o ./cpu/gdt.o ./cpu/swtch.o ./cpu/vectors.o ./kernel/mem.o ./proc.o ./lib/string.o \
./fs/fs.o ./drivers/ata.o ./lib/string.o ./proc.o ./drivers/pit.o ./kernel/vm.o
run: image.bin

View File

@ -1,5 +1,6 @@
#include "isr.h"
#include "gdt.h"
#include "memlayout.h"
#include "../syscall.h"
#include "../proc.h"
#include "../drivers/port.h"
@ -117,10 +118,11 @@ void trap(registers_t *r) {
}
static void* get_userspace_ptr(uint32_t ptr) {
if (ptr >= 0xffffffff - USER_BASE) {
if (ptr > KERNBASE) {
return 0;
}
return (void*)(ptr + USER_BASE);
// FIXME: check if ptr is mapped and a valid 0-terminated string
return (void*)(ptr);
}
static int handle_puts(const char* s) {