Linux-字符設備-數據結構

每個字符設備都對應一個tty_struct數據結構,主要用來保存終端設備當前參數設置、所屬的前臺進程組ID和字符IO緩衝隊列等信息。Linux內核使用了數組tty_table[]來保存系統中每個終端設備的信息。


// tty數據結構。

 struct tty_struct {

         struct termios termios;                  // 終端io屬性和控制字符數據結構。

         int pgrp;                                // 所屬進程組。

         int session;                             // 會話號。

         int stopped;                             // 停止標誌。

         void (*write)(struct tty_struct * tty);   // tty寫函數指針。

         struct tty_queue *read_q;                // tty讀隊列。

         struct tty_queue *write_q;               // tty寫隊列。

         struct tty_queue *secondary;             // tty輔助隊列(存放規範模式字符序列)

         };                                       //可稱爲規範()模式隊列。


   // tty字符緩衝隊列數據結構。用於tty_struc結構中的讀、寫和輔助(規範)緩衝隊列。

 struct tty_queue {

         unsigned long data;             // 隊列緩衝區中含有字符行數值(不是當前字符數)。

                                            // 對於串口終端,則存放串行端口地址。

         unsigned long head;             // 緩衝區中數據頭指針。

         unsigned long tail;             // 緩衝區中數據尾指針。

         struct task_struct * proc_list;  //等待本隊列的進程列表。

         char buf[TTY_BUF_SIZE];         // 隊列的緩衝區。

  };


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