2005-04-17 05:20:36 +07:00
|
|
|
#ifndef _LINUX_CDEV_H
|
|
|
|
#define _LINUX_CDEV_H
|
|
|
|
#ifdef __KERNEL__
|
|
|
|
|
2006-12-07 11:36:14 +07:00
|
|
|
#include <linux/kobject.h>
|
|
|
|
#include <linux/kdev_t.h>
|
|
|
|
#include <linux/list.h>
|
|
|
|
|
2007-01-30 04:19:56 +07:00
|
|
|
struct file_operations;
|
|
|
|
struct inode;
|
|
|
|
struct module;
|
|
|
|
|
2005-04-17 05:20:36 +07:00
|
|
|
struct cdev {
|
|
|
|
struct kobject kobj;
|
|
|
|
struct module *owner;
|
2006-03-28 16:56:41 +07:00
|
|
|
const struct file_operations *ops;
|
2005-04-17 05:20:36 +07:00
|
|
|
struct list_head list;
|
|
|
|
dev_t dev;
|
|
|
|
unsigned int count;
|
|
|
|
};
|
|
|
|
|
2006-03-28 16:56:41 +07:00
|
|
|
void cdev_init(struct cdev *, const struct file_operations *);
|
2005-04-17 05:20:36 +07:00
|
|
|
|
|
|
|
struct cdev *cdev_alloc(void);
|
|
|
|
|
|
|
|
void cdev_put(struct cdev *p);
|
|
|
|
|
|
|
|
int cdev_add(struct cdev *, dev_t, unsigned);
|
|
|
|
|
|
|
|
void cdev_del(struct cdev *);
|
|
|
|
|
|
|
|
void cd_forget(struct inode *);
|
|
|
|
|
2006-09-27 15:50:16 +07:00
|
|
|
extern struct backing_dev_info directly_mappable_cdev_bdi;
|
|
|
|
|
2005-04-17 05:20:36 +07:00
|
|
|
#endif
|
|
|
|
#endif
|