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