blob: ee5f53f2ca15a171c74cf3ec392b2b407dc22b8c [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef _LINUX_CDEV_H
2#define _LINUX_CDEV_H
3#ifdef __KERNEL__
4
5struct cdev {
6 struct kobject kobj;
7 struct module *owner;
Arjan van de Ven99ac48f2006-03-28 01:56:41 -08008 const struct file_operations *ops;
Linus Torvalds1da177e2005-04-16 15:20:36 -07009 struct list_head list;
10 dev_t dev;
11 unsigned int count;
12};
13
Arjan van de Ven99ac48f2006-03-28 01:56:41 -080014void cdev_init(struct cdev *, const struct file_operations *);
Linus Torvalds1da177e2005-04-16 15:20:36 -070015
16struct cdev *cdev_alloc(void);
17
18void cdev_put(struct cdev *p);
19
20int cdev_add(struct cdev *, dev_t, unsigned);
21
22void cdev_del(struct cdev *);
23
24void cd_forget(struct inode *);
25
David Howells5da61852006-09-27 01:50:16 -070026extern struct backing_dev_info directly_mappable_cdev_bdi;
27
Linus Torvalds1da177e2005-04-16 15:20:36 -070028#endif
29#endif