License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[linux-block.git] / include / linux / cdev.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
1da177e4
LT
2#ifndef _LINUX_CDEV_H
3#define _LINUX_CDEV_H
1da177e4 4
5ec68b2e
JE
5#include <linux/kobject.h>
6#include <linux/kdev_t.h>
7#include <linux/list.h>
233ed09d 8#include <linux/device.h>
5ec68b2e 9
3d8b3036
JE
10struct file_operations;
11struct inode;
12struct module;
13
1da177e4
LT
14struct cdev {
15 struct kobject kobj;
16 struct module *owner;
99ac48f5 17 const struct file_operations *ops;
1da177e4
LT
18 struct list_head list;
19 dev_t dev;
20 unsigned int count;
3859a271 21} __randomize_layout;
1da177e4 22
99ac48f5 23void cdev_init(struct cdev *, const struct file_operations *);
1da177e4
LT
24
25struct cdev *cdev_alloc(void);
26
27void cdev_put(struct cdev *p);
28
29int cdev_add(struct cdev *, dev_t, unsigned);
30
233ed09d
LG
31void cdev_set_parent(struct cdev *p, struct kobject *kobj);
32int cdev_device_add(struct cdev *cdev, struct device *dev);
33void cdev_device_del(struct cdev *cdev, struct device *dev);
34
1da177e4
LT
35void cdev_del(struct cdev *);
36
37void cd_forget(struct inode *);
38
39#endif