#ifndef FILEOBJ_H #define FILEOBJ_H #include "types.h" struct fops; struct file_object { ushort opener; void *data; struct fops *fops; }; struct fops { int (*open)(struct file_object *fo); int (*read)(struct file_object *fo, void *buffer, size_t n); int (*write)(struct file_object *fo, void *buffer, size_t n); int (*seek)(struct file_object *fo, size_t pos); int (*close)(struct file_object *fo); int (*ioctl)(struct file_object *fo, uint func, uint param); }; int fops_dummy_open(struct file_object *fo); int fops_dummy_read(struct file_object *fo, void *buffer, size_t n); int fops_dummy_write(struct file_object *fo, void *buffer, size_t n); int fops_dummy_close(struct file_object *fo); void fileobj_init(struct file_object *fo); #endif /* FILEOBJ_H */