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 void cd_forget(struct inode *); 32 33 #endif 34