当前位置:  技术问答>linux和unix

I2C驱动里的一个结构体

    来源: 互联网  发布时间:2016-11-04

    本文导语:  static struct platform_driver s3c24xx_i2c_driver = { .probe = s3c24xx_i2c_probe, .remove = s3c24xx_i2c_remove, .id_table = s3c24xx_driver_ids, .driver = { .owner = THIS_MODULE, .name = "s3c-i2c", .pm = S3C24XX_DEV_PM_OPS, }, }; 1.我现在的理解是它在...

static struct platform_driver s3c24xx_i2c_driver = {
.probe = s3c24xx_i2c_probe,
.remove = s3c24xx_i2c_remove,
.id_table = s3c24xx_driver_ids,
.driver = {
.owner = THIS_MODULE,
.name = "s3c-i2c",
.pm = S3C24XX_DEV_PM_OPS,
},
};


1.我现在的理解是它在定义结构体的同时给结构体进行了赋值,这么理解对么?1
2..driver里面又嵌套着这样的定义,是不是道理也是一样的?引用的时候是“结构体名.driver.owner”这么引用么???
小弟才疏学浅,请各位高手指教,不胜感激。 

|

是这样的,驱动中到处使用这种方式。

|
你可以查看platform_driver这个结构体的定义你可以发现,他其实就是包含了函数指针和一个名为device_driver 的结构体。 s3c24xx_i2c_driver 就是定义了一个名s3c24xx_i2c_driver为platform_driver结构,同时对其成员赋值。
struct platform_driver {
int (*probe)(struct platform_device *);
int (*remove)(struct platform_device *);
void (*shutdown)(struct platform_device *);
int (*suspend)(struct platform_device *, pm_message_t state);
int (*suspend_late)(struct platform_device *, pm_message_t state);
int (*resume_early)(struct platform_device *);
int (*resume)(struct platform_device *);
struct device_driver driver;
};

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • kernel中关于i2c处的问题,大家指教。
  • 关于I2C传输协议和串口问题
  • I2C设备数据通信问题
  • I2C 错误
  • 如何读取i2c 上 ds1337时钟芯片 ~~~~~~~
  • 求助,LINUX的I2C
  • 视屏采集和I2C设备使用的问题请教
  • i2c通信问题
  • 100分请教高手一个 android串口控制台和i2c超时的问题(本人结贴率达到90%)
  • 关于LINUX I2C,GCC的奇怪问题。。。问题依旧。。
  • I2c能否通过mmap读写
  • 关于LINUX的 I2C,高手速度进!
  • 请教:不创建cdev,能访问spi或i2c设备么?
  • I2C如何Restart
  • i2c/pca9539.c文件的新模式probe疑问
  • gpio模拟i2c 读取24c02寄存器的值为0xff?
  • 求助:中段里使用i2c导致系统崩溃


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3