blob: f309b00e986e2f6132cab0ec2d4f9ea5e3d9e7c3 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef _LINUX_CDEV_H
2#define _LINUX_CDEV_H
3#ifdef __KERNEL__
4
Jan Engelhardt5ec68b22006-12-06 20:36:14 -08005#include <linux/kobject.h>
6#include <linux/kdev_t.h>
7#include <linux/list.h>
8
Linus Torvalds1da177e2005-04-16 15:20:36 -07009struct cdev {
10 struct kobject kobj;
11 struct module *owner;
Arjan van de Ven99ac48f2006-03-28 01:56:41 -080012 const struct file_operations *ops;
Linus Torvalds1da177e2005-04-16 15:20:36 -070013 struct list_head list;
14 dev_t dev;
15 unsigned int count;
16};
17
Arjan van de Ven99ac48f2006-03-28 01:56:41 -080018void cdev_init(struct cdev *, const struct file_operations *);
Linus Torvalds1da177e2005-04-16 15:20:36 -070019
20struct cdev *cdev_alloc(void);
21
22void cdev_put(struct cdev *p);
23
24int cdev_add(struct cdev *, dev_t, unsigned);
25
26void cdev_del(struct cdev *);
27
28void cd_forget(struct inode *);
29
David Howells5da61852006-09-27 01:50:16 -070030extern struct backing_dev_info directly_mappable_cdev_bdi;
31
Linus Torvalds1da177e2005-04-16 15:20:36 -070032#endif
33#endif