From c626887bed05f692dd6c1ca8a8a381e3046cc9f9 Mon Sep 17 00:00:00 2001 From: Eggert Jung Date: Tue, 2 Dec 2025 17:21:24 +0100 Subject: [PATCH] add stub for read --- kernel/syscall/handler.cc | 8 +++++--- kernel/syscall/stub.h | 5 +++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/kernel/syscall/handler.cc b/kernel/syscall/handler.cc index e71e46b..fdf609f 100644 --- a/kernel/syscall/handler.cc +++ b/kernel/syscall/handler.cc @@ -44,9 +44,11 @@ extern "C" size_t syscall_handler(size_t sysnum, size_t p1, size_t p2, Syscall::Skeleton::test(Guard::enter().vault(), p1, p2, p3, p4, p5); break; case Syscall::ID::WRITE: - Guarded g = Guard::enter(); - g.vault().kout.setPos((int)p4, (int)p5); - Syscall::Skeleton::write(g.vault(), p1, (char*)p2, p3); + Guard::enter().vault().kout.setPos((int)p4, (int)p5); + Syscall::Skeleton::write(Guard::enter().vault(), p1, (char*)p2, p3); + break; + case Syscall::ID::READ: + ; break; } diff --git a/kernel/syscall/stub.h b/kernel/syscall/stub.h index 18e433e..379ec7d 100644 --- a/kernel/syscall/stub.h +++ b/kernel/syscall/stub.h @@ -8,6 +8,7 @@ namespace Syscall { enum class ID : size_t { TEST = 0, WRITE = 1, + READ = 2, }; } // namespace Syscall @@ -27,3 +28,7 @@ extern "C" ssize_t sys_safe_call(Syscall::ID id, size_t p1, size_t p2, [[gnu::always_inline]] static inline int write(int fd, const void *buf, size_t len, int x = -1, int y = -1) { return sys_call(Syscall::ID::WRITE, fd, (size_t)buf, len, x, y); } + +[[gnu::always_inline]] static inline int read(int fd, void *buf, size_t len){ + return sys_call(Syscall::ID::READ, fd, (size_t)buf, len, 0, 0); +}