xref: /linux-6.15/include/linux/cdev.h (revision 5ec68b2e)
1 #ifndef _LINUX_CDEV_H
2 #define _LINUX_CDEV_H
3 #ifdef __KERNEL__
4 
5 #include <linux/kobject.h>
6 #include <linux/kdev_t.h>
7 #include <linux/list.h>
8 
9 struct cdev {
10 	struct kobject kobj;
11 	struct module *owner;
12 	const struct file_operations *ops;
13 	struct list_head list;
14 	dev_t dev;
15 	unsigned int count;
16 };
17 
18 void cdev_init(struct cdev *, const struct file_operations *);
19 
20 struct cdev *cdev_alloc(void);
21 
22 void cdev_put(struct cdev *p);
23 
24 int cdev_add(struct cdev *, dev_t, unsigned);
25 
26 void cdev_del(struct cdev *);
27 
28 void cd_forget(struct inode *);
29 
30 extern struct backing_dev_info directly_mappable_cdev_bdi;
31 
32 #endif
33 #endif
34