add stub for read

This commit is contained in:
2025-12-02 17:21:24 +01:00
parent 21fb133146
commit c626887bed
2 changed files with 10 additions and 3 deletions

View File

@@ -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); Syscall::Skeleton::test(Guard::enter().vault(), p1, p2, p3, p4, p5);
break; break;
case Syscall::ID::WRITE: case Syscall::ID::WRITE:
Guarded g = Guard::enter(); Guard::enter().vault().kout.setPos((int)p4, (int)p5);
g.vault().kout.setPos((int)p4, (int)p5); Syscall::Skeleton::write(Guard::enter().vault(), p1, (char*)p2, p3);
Syscall::Skeleton::write(g.vault(), p1, (char*)p2, p3); break;
case Syscall::ID::READ:
;
break; break;
} }

View File

@@ -8,6 +8,7 @@ namespace Syscall {
enum class ID : size_t { enum class ID : size_t {
TEST = 0, TEST = 0,
WRITE = 1, WRITE = 1,
READ = 2,
}; };
} // namespace Syscall } // 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) { [[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); 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);
}