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 設備驅動開發詳解-宋寶華

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