From 07c004bf3cf7fcb6e875bddb1a7fb0793377ebfb Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Mon, 24 Feb 2020 17:39:40 +1100 Subject: Changed read() and write() calls to now accept an integer file descriptor as their first parameter. read()/write() calls to descriptors other than stdin/stdout respectively, are currently discared as the file table has yet to be fully implemented. --- kernel/fs/fs.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'kernel/fs') diff --git a/kernel/fs/fs.c b/kernel/fs/fs.c index e0d9205..381f20a 100644 --- a/kernel/fs/fs.c +++ b/kernel/fs/fs.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -5,16 +6,23 @@ #include #include #include +#include /* master file table */ static struct file ftable[NRFILE]; -ssize_t sys_read(void *buf, size_t len) { - return tty_read(ctask->ctty, buf, len); +ssize_t sys_read(int fd, void *buf, size_t len) { + if(fd == STDIN_FILENO) + return tty_read(ctask->ctty, buf, len); + + return -EINVAL; } -ssize_t sys_write(void *buf, size_t len) { - return tty_write(ctask->ctty, buf, len); +ssize_t sys_write(int fd, void *buf, size_t len) { + if(fd == STDOUT_FILENO || fd == STDERR_FILENO) + return tty_write(ctask->ctty, buf, len); + + return -EINVAL; } void fs_init(void) { -- cgit v1.3