summaryrefslogtreecommitdiffstats
path: root/include/linux/cdev.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/cdev.h')
-rw-r--r--include/linux/cdev.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/include/linux/cdev.h b/include/linux/cdev.h
new file mode 100644
index 000000000..0e8cd6293
--- /dev/null
+++ b/include/linux/cdev.h
@@ -0,0 +1,39 @@
+/* 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