40 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef _LINUX_CDEV_H3#define _LINUX_CDEV_H4 5#include <linux/kobject.h>6#include <linux/kdev_t.h>7#include <linux/list.h>8#include <linux/device.h>9 10struct file_operations;11struct inode;12struct module;13 14struct cdev {15 struct kobject kobj;16 struct module *owner;17 const struct file_operations *ops;18 struct list_head list;19 dev_t dev;20 unsigned int count;21} __randomize_layout;22 23void cdev_init(struct cdev *, const struct file_operations *);24 25struct cdev *cdev_alloc(void);26 27void cdev_put(struct cdev *p);28 29int cdev_add(struct cdev *, dev_t, unsigned);30 31void cdev_set_parent(struct cdev *p, struct kobject *kobj);32int cdev_device_add(struct cdev *cdev, struct device *dev) HWJS_SUSPENDS;33void cdev_device_del(struct cdev *cdev, struct device *dev) HWJS_SUSPENDS;34 35void cdev_del(struct cdev *);36 37void cd_forget(struct inode *);38 39#endif40