diff options
| author | Jake Mannens <jakem_5@hotmail.com> | 2020-02-24 17:39:40 +1100 |
|---|---|---|
| committer | Jake Mannens <jakem_5@hotmail.com> | 2020-02-24 17:39:40 +1100 |
| commit | 07c004bf3cf7fcb6e875bddb1a7fb0793377ebfb (patch) | |
| tree | 6135939912e3ba14cebd47c7fd0d64522c3ed92e /kernel/fs | |
| parent | a77b79c1959a134764b88cfe70411d109c6c0354 (diff) | |
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.
Diffstat (limited to 'kernel/fs')
| -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) { |
