40 lines
		
	
	
		
			845 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			845 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef _LINUX_CDEV_H
 | |
| #define _LINUX_CDEV_H
 | |
| 
 | |
| #include <linux/kobject.h>
 | |
| #include <linux/kdev_t.h>
 | |
| #include <linux/list.h>
 | |
| #include <linux/device.h>
 | |
| 
 | |
| struct file_operations;
 | |
| struct inode;
 | |
| struct module;
 | |
| 
 | |
| struct cdev {
 | |
| 	struct kobject kobj;
 | |
| 	struct module *owner;
 | |
| 	const struct file_operations *ops;
 | |
| 	struct list_head list;
 | |
| 	dev_t dev;
 | |
| 	unsigned int count;
 | |
| } __randomize_layout;
 | |
| 
 | |
| void cdev_init(struct cdev *, const struct file_operations *);
 | |
| 
 | |
| struct cdev *cdev_alloc(void);
 | |
| 
 | |
| void cdev_put(struct cdev *p);
 | |
| 
 | |
| int cdev_add(struct cdev *, dev_t, unsigned);
 | |
| 
 | |
| void cdev_set_parent(struct cdev *p, struct kobject *kobj);
 | |
| int cdev_device_add(struct cdev *cdev, struct device *dev);
 | |
| void cdev_device_del(struct cdev *cdev, struct device *dev);
 | |
| 
 | |
| void cdev_del(struct cdev *);
 | |
| 
 | |
| void cd_forget(struct inode *);
 | |
| 
 | |
| #endif
 |