日期:2014-05-16 浏览次数:20786 次
*****************************************************************************************************/
声明:本博内容均由http://blog.csdn.net/lmm670原创,转载请注明出处,谢谢!
/****************************************************************************************************/
这一节我们分析RTC驱动框架的最上层rtc-dev.c
/
系统起来的时候,rtc_dev_init会被调用,此函数生成了文件/dev/rtc.
501行:把操作集rtc_dev_fops分配给/dev/rtc,而函数rtc_dev_prepare就是在rtc-s3c.c中注册RTC驱动时被调用的;
现在上层的接口文件/dev/rtc有了,它的操作集也有了rtc_dev_fops
static const struct file_operations rtc_dev_fops = {
.owner = THIS_MODULE,
.llseek = no_llseek,
.read = rtc_dev_read,
.poll = rtc_dev_poll,
.unlocked_ioctl = rtc_dev_ioctl,
.open = rtc_dev_open,
.release = rtc_dev_release,
.fasync = rtc_dev_fasync,
};
接下来我们就看看上层是如何最终设置RTC的。
流程大致如下:
首先上层程序会去open文件/dev/rtc,得到一个文件描述符;接下来就可以对她为所欲为了:
比如:设置RTC时间,上层通过ioctl