diff options
Diffstat (limited to 'include/linux/cdev.h')
-rw-r--r-- | include/linux/cdev.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/linux/cdev.h b/include/linux/cdev.h new file mode 100644 index 000000000..0e8cd6293 --- /dev/null +++ b/include/linux/cdev.h @@ -0,0 +1,39 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _LINUX_CDEV_H +#define _LINUX_CDEV_H + +#include <linux/kobject.h> +#include <linux/kdev_t.h> +#include <linux/list.h> +#include <linux/device.h> + +struct file_operations; +struct inode; +struct module; + +struct cdev { + struct kobject kobj; + struct module *owner; + const struct file_operations *ops; + struct list_head list; + dev_t dev; + unsigned int count; +} __randomize_layout; + +void cdev_init(struct cdev *, const struct file_operations *); + +struct cdev *cdev_alloc(void); + +void cdev_put(struct cdev *p); + +int cdev_add(struct cdev *, dev_t, unsigned); + +void cdev_set_parent(struct cdev *p, struct kobject *kobj); +int cdev_device_add(struct cdev *cdev, struct device *dev); +void cdev_device_del(struct cdev *cdev, struct device *dev); + +void cdev_del(struct cdev *); + +void cd_forget(struct inode *); + +#endif |