Linux设备驱动的分层设计思想
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-19
用的控制代码,并向底层导出rtc_device_register()、rtc_device_unregister()用于注册
和注销RTC;导出rtc_class_ops结构体用于描述底层的RTC硬件操作.这一RTC通用层实现的结果是,底层的RTC驱动不再需要关心RTC
作为字符设备驱动的具体实现,也无需关心一些通用的RTC控制逻辑,图3表明了这种关系.
图3 Linux RTC设备驱动的分层
drivers/rtc/rtc-s3c.c实现了S3C6410的RTC驱动,其注册RTC以及绑定的rtc_class_ops的代码如代码清
单11.
代码清单11 S3C6410 RTC驱动的rtc_class_ops实例与RTC注册
1 static const struct rtc_class_ops s3c_rtcops = {
2 .open = s3c_rtc_open,
3 .release = s3c_rtc_release,
4 .ioctl = s3c_rtc_ioctl,
5 .read_time = s3c_rtc_gettime,
6 .set_time = s3c_rtc_settime,
7 .read_alarm = s3c_rtc_getalarm,
8 .set_alarm = s3c_rtc_setalarm,
9 .irq_set_freq = s3c_rtc_setfreq,
10 .irq_set_state = s3c_rtc_setpie,
11 .proc = s3c_rtc_proc,
12 };
13
14 static int s3c_rtc_probe(struct platform_device *pdev)
15 {
16 ...
17 rtc = rtc_device_register("s3c", &pdev->dev,
&s3c_rtcops,
18 THIS_MODULE);
19 ...
20 }
|
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Linux模拟超级终端minicom下一篇: linux下打印宽字符
关于Linux设备驱动的分层设计思想的所有评论