summaryrefslogtreecommitdiff
path: root/src/init
diff options
context:
space:
mode:
Diffstat (limited to 'src/init')
-rw-r--r--src/init/main.c5
-rw-r--r--src/init/syscalls.c4
2 files changed, 6 insertions, 3 deletions
diff --git a/src/init/main.c b/src/init/main.c
index 8d677af..01e2285 100644
--- a/src/init/main.c
+++ b/src/init/main.c
@@ -28,14 +28,17 @@ int main(void) {
}
void fs_test(void) {
+ static char buf[64] __attribute__((section("text")));
+ int len = 64;
handle_t front, back, file;
front = _syscall_fs_create((void*)&back); // TODO change user_ptr to void*
if (_syscall_fork()) {
// child: is the fs server
log("fs_wait started. ");
- _syscall_fs_wait(back, NULL);
+ _syscall_fs_wait(back, buf, &len);
log("fs_wait returned. ");
+ _syscall_write(tty_fd, buf, len);
} else {
// parent: accesses the fs
_syscall_mount(front, argify("/mnt"));
diff --git a/src/init/syscalls.c b/src/init/syscalls.c
index 4584837..e63f911 100644
--- a/src/init/syscalls.c
+++ b/src/init/syscalls.c
@@ -41,6 +41,6 @@ handle_t _syscall_fs_create(handle_t __user *back) {
return _syscall(_SYSCALL_FS_CREATE, (int)back, 0, 0);
}
-int _syscall_fs_wait(handle_t back, void __user *info) {
- return _syscall(_SYSCALL_FS_WAIT, back, (int)info, 0);
+int _syscall_fs_wait(handle_t back, char __user *buf, int __user *len) {
+ return _syscall(_SYSCALL_FS_WAIT, back, (int)buf, (int)len);
}