summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorJake Mannens <jakem_5@hotmail.com>2020-02-24 17:39:40 +1100
committerJake Mannens <jakem_5@hotmail.com>2020-02-24 17:39:40 +1100
commit07c004bf3cf7fcb6e875bddb1a7fb0793377ebfb (patch)
tree6135939912e3ba14cebd47c7fd0d64522c3ed92e /kernel
parenta77b79c1959a134764b88cfe70411d109c6c0354 (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')
-rw-r--r--kernel/fs/fs.c16
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) {