summaryrefslogtreecommitdiff
path: root/kernel/fd.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/fd.c')
-rw-r--r--kernel/fd.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/kernel/fd.c b/kernel/fd.c
new file mode 100644
index 0000000..5eb2678
--- /dev/null
+++ b/kernel/fd.c
@@ -0,0 +1,32 @@
+#include "fd.h"
+
+bool fd_write(fd* f,uint8_t c)
+{
+ return f->write(f->data,c);
+}
+
+uint8_t fd_read(fd* f)
+{
+ return f->read(f->data);
+}
+
+bool fd_has(fd* f)
+{
+ return f->has(f->data);
+}
+
+bool fd_close(fd* f)
+{
+ return f->close(f->data);
+}
+
+fd fd_from_fifo(fifo* fif)
+{
+ fd f;
+ f.data=fif;
+ f.read=fd_read;
+ f.write=fd_write;
+ f.close=fd_close;
+ f.has=fd_has;
+ return f;
+}