diff options
Diffstat (limited to 'kernel/fs/fs.c')
| -rw-r--r-- | kernel/fs/fs.c | 16 |
1 files changed, 12 insertions, 4 deletions
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 <errno.h> #include <kernel/con.h> #include <kernel/fs.h> #include <kernel/kernel.h> @@ -5,16 +6,23 @@ #include <kernel/tty.h> #include <string.h> #include <sys/types.h> +#include <unistd.h> /* 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) { |
