*参照元 [#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]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS