您的位置:首页 > 运维架构 > Linux

Linux 终端设备驱动函数的流向

2014-03-08 13:30 393 查看
1)终端设备数据发送和接收过程中的数据流和函数调用关系
    


 
 


  

2) tty 线路设置及流向
  a、线路设置用户空间接口 (用户可用如下两种方式改变 tty 设备的线路设置或者获取当前线路设置)
              1、调用用户空间的 termios 库函数
              2、对 tty 设备节点进行 ioctl()调用
  b、tty 驱动的操作
      1、 、tty 驱动的set_termios 函数
        说明:大部分  termios  用户空间函数被库转换为对驱动节点的  ioctl()调用,而 tty  ioctl

                  中的大部分命令会被 tty 核心转换为对 tty
驱动的 set_termios()函数
的调用
                 tty_operations中的 set_termios()函数原型为:

                 void(*set_termios)(struct tty_struct *tty,struct termios *old); 
       2、 tty 驱动的 tiocmget 和 tiocmset 函数
               对 TIOCMGET、TIOCMSET、TIOCMBIC
和 TIOCMBIS IO
 控制命令的调用将被

              tty 核心转换为对 tty
驱动 tiocmget()函数和 tiocmset()函数的调用
,TIOCMGET 对应

              tiocmget()函数,TIOCMSET、TIOCMBIC 和 TIOCMBIS  对应 tiocmset()函数
       3、tty 驱动的 ioctl 函数
              当用户在 tty 设备节点上进行 ioctl()调用时,tty_operations 中的  ioctl()函数会被

              tty 核 心调 用。 如 果 tty 驱动不知道如何处理传递给它的
ioctl 值
, 它 返回

              –ENOIOCTLCMD,之后 tty 核心会执行一个通用的操作
 

参考资料:Linux 设备驱动开发详解-宋宝华
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息