linux-4.4.1/device
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#x6aca22d]
#backlinks
*説明 [#b979a5ab]
-パス: [[linux-4.4.1/include/linux/device.h]]
-FIXME: これは何?
--説明
**参考 [#m9412538]
*実装 [#e4b6e493]
/**
* struct device - The basic device structure
* @parent: The device's "parent" device, the device...
* In most cases, a parent device is some s...
* controller. If parent is NULL, the devic...
* which is not usually what you want.
* @p: Holds the private data of the driver cor...
* See the comment of the struct device_pri...
* @kobj: A top-level, abstract class from which o...
* @init_name: Initial name of the device.
* @type: The type of device.
* This identifies the device type and carr...
* information.
* @mutex: Mutex to synchronize calls to its driver.
* @bus: Type of bus device is on.
* @driver: Which driver has allocated this
* @platform_data: Platform data specific to the device.
* Example: For devices on custom boards, a...
* and SOC based hardware, Linux often uses...
* to board-specific structures describing ...
* are wired. That can include what ports ...
* variants, which GPIO pins act in what ad...
* on. This shrinks the "Board Support Pac...
* minimizes board-specific #ifdefs in driv...
* @driver_data: Private pointer for driver specific info.
* @power: For device power management.
* See Documentation/power/devices.txt for ...
* @pm_domain: Provide callbacks that are executed duri...
* hibernation, system resume and during ru...
* along with subsystem-level and driver-le...
* @pins: For device pin management.
* See Documentation/pinctrl.txt for details.
* @msi_list: Hosts MSI descriptors
* @msi_domain: The generic MSI domain this device is us...
* @numa_node: NUMA node this device is close to.
* @dma_mask: Dma mask (if dma'ble device).
* @coherent_dma_mask: Like dma_mask, but for alloc_cohe...
* hardware supports 64-bit addresses for c...
* such descriptors.
* @dma_pfn_offset: offset of DMA memory range relativel...
* @dma_parms: A low level driver may set these to teac...
* segment limitations.
* @dma_pools: Dma pools (if dma'ble device).
* @dma_mem: Internal for coherent mem override.
* @cma_area: Contiguous memory area for dma allocations
* @archdata: For arch-specific additions.
* @of_node: Associated device tree node.
* @fwnode: Associated device node supplied by platf...
* @devt: For creating the sysfs "dev".
* @id: device instance
* @devres_lock: Spinlock to protect the resource of the...
* @devres_head: The resources list of the device.
* @knode_class: The node used to add the device to the ...
* @class: The class of the device.
* @groups: Optional attribute groups.
* @release: Callback to free the device after all re...
* gone away. This should be set by the all...
* device (i.e. the bus driver that discove...
* @iommu_group: IOMMU group the device belongs to.
*
* @offline_disabled: If set, the device is permanently ...
* @offline: Set after successful invocation of bus t...
*
* At the lowest level, every device in a Linux system i...
* instance of struct device. The device structure conta...
* that the device model core needs to model the system....
* however, track additional information about the devic...
* result, it is rare for devices to be represented by b...
* instead, that structure, like kobject structures, is ...
* a higher-level representation of the device.
*/
struct device {
struct device *parent;
-
--[[linux-4.4.1/parent]]
struct device_private *p;
-
--[[linux-4.4.1/device_private]]
struct kobject kobj;
-
--[[linux-4.4.1/kobj]]
const char *init_name; /* initial n...
const struct device_type *type;
-
--[[linux-4.4.1/device_type]]
struct mutex mutex; /* mutex to sync...
* its driver.
*/
-
--[[linux-4.4.1/mutex]]
struct bus_type *bus; /* type of bus d...
-
--[[linux-4.4.1/bus_type]]
struct device_driver *driver; /* which driver ...
device */
-
--[[linux-4.4.1/device_driver]]
void *platform_data; /* Platform spec...
core doesn't ...
void *driver_data; /* Driver data, ...
dev_set/get_d...
struct dev_pm_info power;
struct dev_pm_domain *pm_domain;
-
--[[linux-4.4.1/dev_pm_info]]
--[[linux-4.4.1/dev_pm_domain]]
#ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN
-
--[[linux-4.4.1/CONFIG_GENERIC_MSI_IRQ_DOMAIN]]
struct irq_domain *msi_domain;
-
--[[linux-4.4.1/irq_domain]]
#endif
#ifdef CONFIG_PINCTRL
-
--[[linux-4.4.1/CONFIG_PINCTRL]]
struct dev_pin_info *pins;
-
--[[linux-4.4.1/dev_pin_info]]
#endif
#ifdef CONFIG_GENERIC_MSI_IRQ
-
--[[linux-4.4.1/CONFIG_GENERIC_MSI_IRQ]]
struct list_head msi_list;
-
--[[linux-4.4.1/list_head]]
#endif
#ifdef CONFIG_NUMA
-
--[[linux-4.4.1/CONFIG_NUMA]]
int numa_node; /* NUMA node thi...
#endif
u64 *dma_mask; /* dma mask (if ...
u64 coherent_dma_mask;/* Like dma_ma...
alloc_coher...
not all har...
64 bit addr...
allocations...
unsigned long dma_pfn_offset;
struct device_dma_parameters *dma_parms;
-
--[[linux-4.4.1/device_dma_parameters]]
struct list_head dma_pools; /* dma p...
struct dma_coherent_mem *dma_mem; /* internal fo...
override */
-
--[[linux-4.4.1/dma_coherent_mem]]
#ifdef CONFIG_DMA_CMA
-
--[[linux-4.4.1/CONFIG_DMA_CMA]]
struct cma *cma_area; /* contiguous me...
allocations */
-
--[[linux-4.4.1/cma]]
#endif
/* arch specific additions */
struct dev_archdata archdata;
-
--[[linux-4.4.1/dev_archdata]]
struct device_node *of_node; /* associated ...
-
--[[linux-4.4.1/device_node]]
struct fwnode_handle *fwnode; /* firmware dev...
-
--[[linux-4.4.1/fwnode_handle]]
dev_t devt; /* dev_t, create...
u32 id; /* device instan...
-
--[[linux-4.4.1/dev_t]]
spinlock_t devres_lock;
struct list_head devres_head;
-
--[[linux-4.4.1/spinlock_t]]
struct klist_node knode_class;
struct class *class;
const struct attribute_group **groups; /* optio...
-
--[[linux-4.4.1/klist_node]]
--[[linux-4.4.1/class]]
--[[linux-4.4.1/attribute_group]]
void (*release)(struct device *dev);
struct iommu_group *iommu_group;
-
--[[linux-4.4.1/iommu_group]]
bool offline_disabled:1;
bool offline:1;
};
*コメント [#yc4c94c3]
終了行:
*参照元 [#x6aca22d]
#backlinks
*説明 [#b979a5ab]
-パス: [[linux-4.4.1/include/linux/device.h]]
-FIXME: これは何?
--説明
**参考 [#m9412538]
*実装 [#e4b6e493]
/**
* struct device - The basic device structure
* @parent: The device's "parent" device, the device...
* In most cases, a parent device is some s...
* controller. If parent is NULL, the devic...
* which is not usually what you want.
* @p: Holds the private data of the driver cor...
* See the comment of the struct device_pri...
* @kobj: A top-level, abstract class from which o...
* @init_name: Initial name of the device.
* @type: The type of device.
* This identifies the device type and carr...
* information.
* @mutex: Mutex to synchronize calls to its driver.
* @bus: Type of bus device is on.
* @driver: Which driver has allocated this
* @platform_data: Platform data specific to the device.
* Example: For devices on custom boards, a...
* and SOC based hardware, Linux often uses...
* to board-specific structures describing ...
* are wired. That can include what ports ...
* variants, which GPIO pins act in what ad...
* on. This shrinks the "Board Support Pac...
* minimizes board-specific #ifdefs in driv...
* @driver_data: Private pointer for driver specific info.
* @power: For device power management.
* See Documentation/power/devices.txt for ...
* @pm_domain: Provide callbacks that are executed duri...
* hibernation, system resume and during ru...
* along with subsystem-level and driver-le...
* @pins: For device pin management.
* See Documentation/pinctrl.txt for details.
* @msi_list: Hosts MSI descriptors
* @msi_domain: The generic MSI domain this device is us...
* @numa_node: NUMA node this device is close to.
* @dma_mask: Dma mask (if dma'ble device).
* @coherent_dma_mask: Like dma_mask, but for alloc_cohe...
* hardware supports 64-bit addresses for c...
* such descriptors.
* @dma_pfn_offset: offset of DMA memory range relativel...
* @dma_parms: A low level driver may set these to teac...
* segment limitations.
* @dma_pools: Dma pools (if dma'ble device).
* @dma_mem: Internal for coherent mem override.
* @cma_area: Contiguous memory area for dma allocations
* @archdata: For arch-specific additions.
* @of_node: Associated device tree node.
* @fwnode: Associated device node supplied by platf...
* @devt: For creating the sysfs "dev".
* @id: device instance
* @devres_lock: Spinlock to protect the resource of the...
* @devres_head: The resources list of the device.
* @knode_class: The node used to add the device to the ...
* @class: The class of the device.
* @groups: Optional attribute groups.
* @release: Callback to free the device after all re...
* gone away. This should be set by the all...
* device (i.e. the bus driver that discove...
* @iommu_group: IOMMU group the device belongs to.
*
* @offline_disabled: If set, the device is permanently ...
* @offline: Set after successful invocation of bus t...
*
* At the lowest level, every device in a Linux system i...
* instance of struct device. The device structure conta...
* that the device model core needs to model the system....
* however, track additional information about the devic...
* result, it is rare for devices to be represented by b...
* instead, that structure, like kobject structures, is ...
* a higher-level representation of the device.
*/
struct device {
struct device *parent;
-
--[[linux-4.4.1/parent]]
struct device_private *p;
-
--[[linux-4.4.1/device_private]]
struct kobject kobj;
-
--[[linux-4.4.1/kobj]]
const char *init_name; /* initial n...
const struct device_type *type;
-
--[[linux-4.4.1/device_type]]
struct mutex mutex; /* mutex to sync...
* its driver.
*/
-
--[[linux-4.4.1/mutex]]
struct bus_type *bus; /* type of bus d...
-
--[[linux-4.4.1/bus_type]]
struct device_driver *driver; /* which driver ...
device */
-
--[[linux-4.4.1/device_driver]]
void *platform_data; /* Platform spec...
core doesn't ...
void *driver_data; /* Driver data, ...
dev_set/get_d...
struct dev_pm_info power;
struct dev_pm_domain *pm_domain;
-
--[[linux-4.4.1/dev_pm_info]]
--[[linux-4.4.1/dev_pm_domain]]
#ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN
-
--[[linux-4.4.1/CONFIG_GENERIC_MSI_IRQ_DOMAIN]]
struct irq_domain *msi_domain;
-
--[[linux-4.4.1/irq_domain]]
#endif
#ifdef CONFIG_PINCTRL
-
--[[linux-4.4.1/CONFIG_PINCTRL]]
struct dev_pin_info *pins;
-
--[[linux-4.4.1/dev_pin_info]]
#endif
#ifdef CONFIG_GENERIC_MSI_IRQ
-
--[[linux-4.4.1/CONFIG_GENERIC_MSI_IRQ]]
struct list_head msi_list;
-
--[[linux-4.4.1/list_head]]
#endif
#ifdef CONFIG_NUMA
-
--[[linux-4.4.1/CONFIG_NUMA]]
int numa_node; /* NUMA node thi...
#endif
u64 *dma_mask; /* dma mask (if ...
u64 coherent_dma_mask;/* Like dma_ma...
alloc_coher...
not all har...
64 bit addr...
allocations...
unsigned long dma_pfn_offset;
struct device_dma_parameters *dma_parms;
-
--[[linux-4.4.1/device_dma_parameters]]
struct list_head dma_pools; /* dma p...
struct dma_coherent_mem *dma_mem; /* internal fo...
override */
-
--[[linux-4.4.1/dma_coherent_mem]]
#ifdef CONFIG_DMA_CMA
-
--[[linux-4.4.1/CONFIG_DMA_CMA]]
struct cma *cma_area; /* contiguous me...
allocations */
-
--[[linux-4.4.1/cma]]
#endif
/* arch specific additions */
struct dev_archdata archdata;
-
--[[linux-4.4.1/dev_archdata]]
struct device_node *of_node; /* associated ...
-
--[[linux-4.4.1/device_node]]
struct fwnode_handle *fwnode; /* firmware dev...
-
--[[linux-4.4.1/fwnode_handle]]
dev_t devt; /* dev_t, create...
u32 id; /* device instan...
-
--[[linux-4.4.1/dev_t]]
spinlock_t devres_lock;
struct list_head devres_head;
-
--[[linux-4.4.1/spinlock_t]]
struct klist_node knode_class;
struct class *class;
const struct attribute_group **groups; /* optio...
-
--[[linux-4.4.1/klist_node]]
--[[linux-4.4.1/class]]
--[[linux-4.4.1/attribute_group]]
void (*release)(struct device *dev);
struct iommu_group *iommu_group;
-
--[[linux-4.4.1/iommu_group]]
bool offline_disabled:1;
bool offline:1;
};
*コメント [#yc4c94c3]
ページ名: