diff options
Diffstat (limited to 'kernel/io/io.c')
-rw-r--r-- | kernel/io/io.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/kernel/io/io.c b/kernel/io/io.c new file mode 100644 index 0000000..f39168b --- /dev/null +++ b/kernel/io/io.c @@ -0,0 +1,25 @@ +#include "io/io.h" + +int open(struct file* file) { + file->fops->open(file); +} + +int ioctl(struct file* file, int cmd, long args) { + file->fops->ioctl(file, cmd, args); +} + +ssize_t read(struct file* file, char* const buffer, size_t size) { + struct file_operations* fops = file->fops; + if (fops->read == NULL) return -1; + else fops->read(file, buffer, size); +} + +ssize_t write(struct file* file, const char* const buffer, size_t size) { + struct file_operations* fops = file->fops; + if (fops->write == NULL) return -1; + else fops->write(file, buffer, size); +} + +int close(struct file* file) { + file->fops->close(file); +}
\ No newline at end of file |