obj: add read() and write() object callbacks

This commit is contained in:
2023-05-14 21:11:32 +01:00
parent 0238008986
commit d02d05d922
10 changed files with 91 additions and 28 deletions

View File

@@ -29,8 +29,8 @@ enum device_type {
};
struct block_device_ops {
kern_status_t(*read_blocks)(struct device *, size_t, size_t *, void *);
kern_status_t(*write_blocks)(struct device *, size_t, size_t *, const void *);
kern_status_t(*read_blocks)(struct device *, size_t, size_t *, void *, socks_flags_t);
kern_status_t(*write_blocks)(struct device *, size_t, size_t *, const void *, socks_flags_t);
kern_status_t(*ioctl)(struct device *, unsigned int, void *);
};
@@ -42,8 +42,8 @@ struct net_device_ops {
};
struct char_device_ops {
kern_status_t(*read)(struct device *, size_t, size_t *, void *);
kern_status_t(*write)(struct device *, size_t, size_t *, const void *);
kern_status_t(*read)(struct device *, size_t, size_t *, void *, socks_flags_t);
kern_status_t(*write)(struct device *, size_t, size_t *, const void *, socks_flags_t);
};
struct input_device_ops {
@@ -110,8 +110,8 @@ static inline void device_unlock_irqrestore(struct device *dev, unsigned long fl
object_unlock(&dev->dev_base, flags);
}
extern kern_status_t device_read(struct device *dev, void *buf, size_t size, size_t *bytes_read);
extern kern_status_t device_write(struct device *dev, const void *buf, size_t size, size_t *bytes_written);
extern kern_status_t device_read(struct device *dev, void *buf, size_t size, size_t *bytes_read, socks_flags_t flags);
extern kern_status_t device_write(struct device *dev, const void *buf, size_t size, size_t *bytes_written, socks_flags_t flags);
extern struct device *cast_to_device(struct object *obj);
@@ -149,7 +149,7 @@ static inline struct device *bus_device_base(struct bus_device *dev)
extern kern_status_t device_register(struct device *dev, struct device *parent);
extern kern_status_t input_device_report_event(struct input_device *dev, const struct input_event *ev, bool noblock);
extern kern_status_t input_device_read(struct device *dev, void *buf, size_t size, size_t *bytes_read);
extern kern_status_t input_device_read(struct device *dev, void *buf, size_t size, size_t *bytes_read, socks_flags_t flags);
extern kern_status_t input_device_generate_name(struct input_device *dev);
#endif