misc混杂设备和sysfs设备(Linux驱动8)

    xiaoxiao2021-03-25  66

    misc混杂设备:

    说明:

    混杂设备包括nvram,看门狗,ds1286时钟,lcd等.混杂设备本质还是字符设备,其功能实现于file_operations. 混杂设备主设备号为10.

    变量:

    struct miscdevice{ int minor; char *name file_operatios *fops list_head list; struct device *parent; struct device *this_device; }

    函数:

    misc_register(struct miscdevice *dev); misc_unregister(struct miscdevice *dev);

    sysfs设备:

    说明:

    sysfs设备没有在dev目录下有节点,但是可以在用户侧直接访问.通过sysfs_create_file创建的文件,每个device的attribute对应一个文件 文件通过show和store方法来存取.

    变量:

    sysdev_driver{ list_head entry; (add)(struct sys_device); (remove)(struct sys_device ); (shutdown)(struct sys_device ); (suspend)(struct sys_device ); (resume)(struct sys_device); }

    struct attribute{ const char name; umode_t mode; }

    struct device_attribute{ struct attribute attr ssize_t (show)(struct device *dev,struct device_attribute); ssize_t (store)(struct device *dev,struct device_attribute); }

    struct bin_attribute{ struct attribute attr; size read }

    函数:

    sysdev_driver_register(struct sysdev_class*,struct sysdev_driver*);

    sysdev_driver_unregister(struct sysdev_class ,struct sysdev_driver);

    sysdev_create_file(struct sys_device dev,struct sysdev_attribute);

    sysdev_remove_file(struct sys_device dev,struct sysdev_attribute);

    相关函数:

    sysfs_create_file(struct kobject*obj,struct attribute *); sysfs_remove_file(struct kobject*obj,struct attribute *); device_create_file(struct device*dev,struct device_arrtibute*); device_remove_file(struct device*dev,struct device_arrtibute*); sysfs_create_bin_file(struct kobject,struct bin_attribure *);
    转载请注明原文地址: https://ju.6miu.com/read-34770.html

    最新回复(0)