linux-设备驱动之device设备结构
来源:互联网 发布:java源码安装教程 编辑:程序博客网 时间:2024/05/21 00:14
在linux系统中每一个设备由结构体::struct device来描述
struct device {
struct device *parent;
struct device_private*p;
struct kobject kobj;
const char*init_name; /* initial name of the device--用来描述设备的 */
struct device_type*type;//
struct mutex mutex; /* mutex to synchronize calls to
* its driver.
*/
struct bus_type*bus;/* type of bus device is on 设备坐在总线*/
struct device_driver *driver;/* which driver has allocated thisdevice --管理该设备的驱动*/
void*platform_data;/* Platform specific data, devicecore doesn't touch it */
struct dev_pm_infopower;
#ifdef CONFIG_NUMA
int numa_node;/* NUMA node this device is close to */
#endif
u64 *dma_mask;/* dma mask (if dma'able device) */
u64 coherent_dma_mask;/* Like dma_mask, but for
alloc_coherent mappings as
not all hardware supports
64 bit addresses for consistent
allocations such descriptors. */
struct device_dma_parameters *dma_parms;
struct list_headdma_pools;/* dma pools (if dma'ble) */
struct dma_coherent_mem*dma_mem; /* internal for coherent mem
override */
/* arch specific additions */
struct dev_archdataarchdata;
#ifdef CONFIG_OF
struct device_node*of_node;
#endif
dev_t devt;/* dev_t, creates the sysfs "dev" */
spinlock_t devres_lock;
struct list_headdevres_head;
struct klist_nodeknode_class;
struct class *class;
const struct attribute_group **groups;/* optional groups */
void (*release)(struct device *dev);
};
注册设备使用的函数
device_register(struct device *dev);
注销设备使用的函数
device_unregister(struct device *dev);
设备属性结构体 device_attribute描述
struct device_attribute {
struct attributeattr;
ssize_t (*show)(struct device *dev, struct device_attribute *attr,
char *buf);//读取时 调用的函数
ssize_t (*store)(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count);//写入时 调用的函数
};
创建属性函数
device_create_file(struct device *device,const struct device_attribute *entry);
删除属性文件
device_remove_file(struct device *dev,const struct device_attribute *attr);
- linux-设备驱动之device设备结构
- linux设备驱动模型之device
- linux设备驱动模型之device-driver
- LINUX设备驱动之设备模型三--device&driver&bus
- LINUX设备驱动之设备模型四--device&driver&bus
- LINUX设备驱动之设备模型五--device&driver&bus
- linux设备驱动之UART驱动结构
- Linux设备驱动之UART驱动结构
- Linux设备驱动之UART驱动结构
- Linux设备驱动之UART驱动结构
- Linux设备驱动模型-Device
- 阅读Linux设备驱动模型源码之 device结构体成员详解
- 设备驱动模型之device
- 设备驱动模型之device
- linux内核部件分析之----设备驱动模型之device
- linux内核组件之---设备驱动模型之device-driver
- linux内核部件分析之----设备驱动模型之device
- Linux设备驱动编程之结构化设备驱动程序
- Android4.X 应用层读取SIM卡联系人的过程
- 未能找到文件"bin\Release\******.exe/pdb"
- android游戏开发之屏幕兼容模式
- [MTK平台]Copy联系人到SIM卡时名字过长而失败
- DBGrideh实现自动排序
- linux-设备驱动之device设备结构
- JSON在J2EE前后台多值传送时的简单调用
- linux crontab命令
- 第五届蓝桥杯——基础练习:特殊回文数
- Guava
- Sqlite3,C++开发详解
- 论坛源码推荐(12月23日):CollapseClick-可折叠列表 CocoaSPDY-Twitter SPDY开发包
- 查看iphone手机是第几代
- char 与 unsigned char的本质区别