tty: implement read/write support
This commit is contained in:
29
dev/char.c
29
dev/char.c
@@ -17,3 +17,32 @@ struct char_device *char_device_from_generic(struct device *dev)
|
||||
dev->dev_type = DEV_TYPE_CHAR;
|
||||
return CHAR_DEVICE(dev);
|
||||
}
|
||||
|
||||
static kern_status_t char_device_read(struct device *dev, void *buf, size_t size, size_t *bytes_read, socks_flags_t flags)
|
||||
{
|
||||
kern_status_t status = KERN_UNSUPPORTED;
|
||||
struct char_device *cdev = CHAR_DEVICE(dev);
|
||||
|
||||
if (cdev->c_ops && cdev->c_ops->read) {
|
||||
status = cdev->c_ops->read(dev, buf, size, bytes_read, flags);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
static kern_status_t char_device_write(struct device *dev, const void *buf, size_t size, size_t *bytes_read, socks_flags_t flags)
|
||||
{
|
||||
kern_status_t status = KERN_UNSUPPORTED;
|
||||
struct char_device *cdev = CHAR_DEVICE(dev);
|
||||
|
||||
if (cdev->c_ops && cdev->c_ops->write) {
|
||||
status = cdev->c_ops->write(dev, buf, size, bytes_read, flags);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
struct device_type_ops char_type_ops = {
|
||||
.read = char_device_read,
|
||||
.write = char_device_write,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user