*参照元 [#kbd8db7c] #backlinks *説明 [#x8a489fc] -パス: [[linux-4.4.1/include/linux/device.h]] -FIXME: これは何? --説明 **参考 [#j76f9531] *実装 [#iaede451] /** * struct class - device classes * @name: Name of the class. * @owner: The module owner. * @class_attrs: Default attributes of this class. * @dev_groups: Default attributes of the devices that belong to the class. * @dev_kobj: The kobject that represents this class and links it into the hierarchy. * @dev_uevent: Called when a device is added, removed from this class, or a * few other things that generate uevents to add the environment * variables. * @devnode: Callback to provide the devtmpfs. * @class_release: Called to release this class. * @dev_release: Called to release the device. * @suspend: Used to put the device to sleep mode, usually to a low power * state. * @resume: Used to bring the device from the sleep mode. * @ns_type: Callbacks so sysfs can detemine namespaces. * @namespace: Namespace of the device belongs to this class. * @pm: The default device power management operations of this class. * @p: The private data of the driver core, no one other than the * driver core can touch this. * * A class is a higher-level view of a device that abstracts out low-level * implementation details. Drivers may see a SCSI disk or an ATA disk, but, * at the class level, they are all simply disks. Classes allow user space * to work with devices based on what they do, rather than how they are * connected or how they work. */ struct class { const char *name; struct module *owner; - --[[linux-4.4.1/module]] struct class_attribute *class_attrs; const struct attribute_group **dev_groups; struct kobject *dev_kobj; - --[[linux-4.4.1/class_attribute()]] --[[linux-4.4.1/attribute_group]] --[[linux-4.4.1/kobject]] int (*dev_uevent)(struct device *dev, struct kobj_uevent_env *env); char *(*devnode)(struct device *dev, umode_t *mode); - --[[linux-4.4.1/device]] --[[linux-4.4.1/kobj_uevent_env]] --[[linux-4.4.1/umode_t]] void (*class_release)(struct class *class); void (*dev_release)(struct device *dev); int (*suspend)(struct device *dev, pm_message_t state); int (*resume)(struct device *dev); - --[[linux-4.4.1/pm_message_t]] const struct kobj_ns_type_operations *ns_type; const void *(*namespace)(struct device *dev); - --[[linux-4.4.1/kobj_ns_type_operations]] const struct dev_pm_ops *pm; - --[[linux-4.4.1/dev_pm_ops]] struct subsys_private *p; - --[[linux-4.4.1/subsys_private]] }; *コメント [#d622f3d0]