diff --git a/include/socks/device.h b/include/socks/device.h index 2cb76c8..c4cdb8c 100644 --- a/include/socks/device.h +++ b/include/socks/device.h @@ -43,6 +43,11 @@ enum device_type { DEV_TYPE_FRAMEBUFFER, }; +struct iovec { + void *io_buf; + size_t io_len; +}; + struct device_type_ops { kern_status_t(*read)(struct device *, void *, size_t, size_t *, socks_flags_t); kern_status_t(*write)(struct device *, const void *, size_t, size_t *, socks_flags_t); @@ -50,8 +55,8 @@ struct device_type_ops { }; struct block_device_ops { - kern_status_t(*read_blocks)(struct device *, void *, size_t, size_t *, socks_flags_t); - kern_status_t(*write_blocks)(struct device *, const void *, size_t, size_t *, socks_flags_t); + kern_status_t(*read_blocks)(struct device *, sectors_t, size_t, struct iovec *, size_t, socks_flags_t); + kern_status_t(*write_blocks)(struct device *, sectors_t, size_t, struct iovec *, size_t, socks_flags_t); kern_status_t(*ioctl)(struct device *, unsigned int, void *); }; @@ -165,11 +170,6 @@ struct driver { struct driver_ops *drv_ops; }; -struct iovec { - void *io_buf; - size_t io_len; -}; - extern kern_status_t device_init(void); extern struct device *root_device(void); extern struct device *misc_device(void);