11da177e4SLinus Torvalds #ifndef _LINUX_CDEV_H 21da177e4SLinus Torvalds #define _LINUX_CDEV_H 31da177e4SLinus Torvalds #ifdef __KERNEL__ 41da177e4SLinus Torvalds 5*5ec68b2eSJan Engelhardt #include <linux/kobject.h> 6*5ec68b2eSJan Engelhardt #include <linux/kdev_t.h> 7*5ec68b2eSJan Engelhardt #include <linux/list.h> 8*5ec68b2eSJan Engelhardt 91da177e4SLinus Torvalds struct cdev { 101da177e4SLinus Torvalds struct kobject kobj; 111da177e4SLinus Torvalds struct module *owner; 1299ac48f5SArjan van de Ven const struct file_operations *ops; 131da177e4SLinus Torvalds struct list_head list; 141da177e4SLinus Torvalds dev_t dev; 151da177e4SLinus Torvalds unsigned int count; 161da177e4SLinus Torvalds }; 171da177e4SLinus Torvalds 1899ac48f5SArjan van de Ven void cdev_init(struct cdev *, const struct file_operations *); 191da177e4SLinus Torvalds 201da177e4SLinus Torvalds struct cdev *cdev_alloc(void); 211da177e4SLinus Torvalds 221da177e4SLinus Torvalds void cdev_put(struct cdev *p); 231da177e4SLinus Torvalds 241da177e4SLinus Torvalds int cdev_add(struct cdev *, dev_t, unsigned); 251da177e4SLinus Torvalds 261da177e4SLinus Torvalds void cdev_del(struct cdev *); 271da177e4SLinus Torvalds 281da177e4SLinus Torvalds void cd_forget(struct inode *); 291da177e4SLinus Torvalds 305da6185bSDavid Howells extern struct backing_dev_info directly_mappable_cdev_bdi; 315da6185bSDavid Howells 321da177e4SLinus Torvalds #endif 331da177e4SLinus Torvalds #endif 34