ty驱动程序运行路线及open函数调用路径
发布时间
阅读量:
阅读量
在看tty_io.c文件中的tty_open()函数时,发现有这么一行代码:
if (tty->ops->open)
retval = tty->ops->open(tty, filp);
else
return -ENODEV;
此说明指出,在打开tty设备时,底层内核的open()函数触发了中间件层面的open()函数。那么该底层设备管理模块是如何被调用来执行操作呢?
其中,在内核层面的应用程序需要先通过应用层面的接口获取文件描述符,并将该文件描述符传递给内核态文件管理机制以便进行操作。
tty内核层open()函数中调用了函数tty_init_dev,代码如下:
tty = tty_init_dev(driver, index, 0);
tty_init_dev()是个很重要的函数,做了很多事情。
整理一下,调用路径如下:
用户层启动 → tty启动 → tty初始化c设备 → tty配置 discs → tty开启 disc → 线路规程层面打开函数
在此基础上分析可知,在tyyty平台上设计一个有效的tyyty应用程序需要遵循标准流程调用tyyty开放API函数(OPEN API函数)。其中,在底层核心组件(内核层)中执行OPEN API函数时会遵循中间件组件(线路规程层)的标准流程调用规范,并由驱动组件(驱动层)按照相应的标准流程执行相应的操作。
全部评论 (0)
还没有任何评论哟~
