dev: block device IO callbacks now use iovec

This commit is contained in:
2023-07-09 09:06:36 +01:00
parent 2ac75cd541
commit 49f50859b5

View File

@@ -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);