summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
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) {