linux/include/linux/cdev.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _LINUX_CDEV_H
   3#define _LINUX_CDEV_H
   4
   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);
  33void cdev_device_del(struct cdev *cdev, struct device *dev);
  34
  35void cdev_del(struct cdev *);
  36
  37void cd_forget(struct inode *);
  38
  39#endif
  40