博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MODULE_DEVICE_TABLE的理解
阅读量:4075 次
发布时间:2019-05-25

本文共 552 字,大约阅读时间需要 1 分钟。

在Linux IIC驱动中看到一段代码:

static struct platform_device_id xx_driver_ids[] = {

{
.name = "s3c2410-i2c",
.driver_data  = TYPE_S3C2410,
}, {
.name = "s3c2440-i2c",
.driver_data  = TYPE_S3C2440,
}, { },
};
MODULE_DEVICE_TABLE(platform, xx_driver_ids);

MODULE_DEVICE_TABLE什么意思呢?查找了一番发现,很多文章表述的不够明确,我结合文章及自己的分析理解说一下,不知道有没有不对的地方。

MODULE_DEVICE_TABLE一般用在热插拔的设备驱动中。

上述xx_driver_ids结构,是此驱动所支持的设备列表

作用是:将xx_driver_ids结构输出到用户空间,这样模块加载系统在加载模块时,就知道了什么模块对应什么硬件设备。

用法是:MODULE_DEVICE_TABLE(设备类型,设备表),其中,设备类型,包括USB,PCI等,也可以自己起名字,上述代码中是针对不同的平台分的类;设备表也是自己定义的,它的最后一项必须是空,用来标识结束。

转载地址:http://ewjni.baihongyu.com/

你可能感兴趣的文章
用指针做函数输入形参的原因!是因为这样能在函数中改变实参的值,现在才明白。
查看>>
C语言的一些注意细节
查看>>
关于main函数的返回值,这个讲得很好!
查看>>
SDK 就是 Software Development Kit 的缩写,中文意思就是“软件开发工具包“
查看>>
linux shell中一些有用的
查看>>
shell编程第一行#!/bin/bash的作用
查看>>
shell脚本对空格有严格的规定,赋值语句等号两边不能有空格,而字符串比较,等号两边必须有空格
查看>>
shell编程有感(也有关于学习方法,做题!!!)
查看>>
GCC编译过程
查看>>
对网络编程以及Linux应用层编程有了更多的理解
查看>>
C语言的内存分配
查看>>
关于题库
查看>>
推荐一本书《高质量嵌入式linux C编程》
查看>>
C语言的return用法
查看>>
关于程序=数据结构+算法
查看>>
自学的误区,自学学习要重视基础,一步一步来,循序渐进
查看>>
简历里不要轻易说精通
查看>>
用和不用malloc创建顺序表,链表的区别
查看>>
多个if fi else else的语句还是要熟悉一下到底怎么写,括号什么时候加。
查看>>
使用 free() 释放内存的同时要将指针置为NULL
查看>>