xref: /openbmc/linux/include/linux/cdev.h (revision e868d61272caa648214046a096e5a6bfc068dc8c)
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 file_operations;
10 struct inode;
11 struct module;
12 
13 struct cdev {
14 	struct kobject kobj;
15 	struct module *owner;
16 	const struct file_operations *ops;
17 	struct list_head list;
18 	dev_t dev;
19 	unsigned int count;
20 };
21 
22 void cdev_init(struct cdev *, const struct file_operations *);
23 
24 struct cdev *cdev_alloc(void);
25 
26 void cdev_put(struct cdev *p);
27 
28 int cdev_add(struct cdev *, dev_t, unsigned);
29 
30 void cdev_del(struct cdev *);
31 
32 void cd_forget(struct inode *);
33 
34 extern struct backing_dev_info directly_mappable_cdev_bdi;
35 
36 #endif
37 #endif
38