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


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 函数

               对 TIOCMGETTIOCMSETTIOCMBIC 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 设备驱动开发详解-宋宝华

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章