18.8. tty_struct 結(jié)構(gòu)的細節(jié)

2018-02-24 15:50 更新

18.8.?tty_struct 結(jié)構(gòu)的細節(jié)

tty_struct 變量被 tty 核心用來保持當前的特定 tty 端口的狀態(tài). 幾乎它的所有的朋友都只被 tty 核心使用, 有幾個例外. 一個 tty 驅(qū)動可以使用的成員在此描述:

unsigned long flags;
tty 設備的當前狀態(tài). 這是一個位段變量, 并且通過下面的宏定義存取:

TTY_THROTTLED
當驅(qū)動以及有抑制函數(shù)被調(diào)用. 不應當被一個 tty 驅(qū)動設置, 只有 tty 核心.

TTY_IO_ERROR
由驅(qū)動設置當它不想任何數(shù)據(jù)被讀出或?qū)懭腧?qū)動. 如果一個用戶程序試圖做這個, 它接收一個 -EIO 錯誤從內(nèi)核中. 這常常在設備被關閉時設置.

TTY_OTHER_CLOSED
只由 pty 驅(qū)動使用來通知, 當端口已經(jīng)被關閉.

TTY_EXCLUSIVE
由 tty 核心設置來指示一個端口在獨占模式并且只能一次由一個用戶存取.

TTY_DEBUG
內(nèi)核中任何地方都不用.

TTY_DO_WRITE_WAKEUP
如果被設置, 線路規(guī)程的 write_wakeup 函數(shù)被允許來被調(diào)用. 常常在 tty_driver 調(diào)用 wake_up_interruptible 函數(shù)的同一時間被調(diào)用.

TTY_PUSH
只被缺省的 tty 線路規(guī)程內(nèi)部使用.

TTY_CLOSING
tty 核心用來跟蹤是否一個端口在那個時刻及時處于關閉過程.

TTY_DONT_FLIP
被缺省的 tty 線路規(guī)程用來通知 tty 核心, 它不應當改變 flip 緩沖, 當它被置位.

TTY_HW_COOK_OUT
如果被一個 tty 驅(qū)動設置, 它通知線路規(guī)程應當"烹調(diào)"發(fā)送給它的輸出. 如果它沒有設置, 線路規(guī)程成塊拷貝驅(qū)動的輸出; 否則, 它不得不為線路改變將單個發(fā)送的字節(jié)逐個求值. 這個標志應當通常不被 tty 驅(qū)動設置.

TTY_HW_COOK_IN
幾乎和設置在驅(qū)動中的 flag 變量中的 TTY_DRIVER_REAL_RAW 標志一致. 這個標志通常應當不被 tty 驅(qū)動設置.

TTY_PTY_LOCK
pty 驅(qū)動用來加鎖和解鎖一個端口.

TTY_NO_WRITE_SPLIT
如果設置, tty 核心不將對 tty 驅(qū)動的寫分成正常大小的塊. 這個值不應當用來阻止對 tty 端口通過發(fā)送大量數(shù)據(jù)到端口的DoS攻擊,

struct tty_flip_buffer flip;
給 tty 設備的 flip 緩沖.

struct tty_ldisc ldisc;
給 tty 設備的線路規(guī)程.

wait_queue_head_t write_wait;
給 tty 寫函數(shù)的 wait_queue. 一個 tty 驅(qū)動應當喚醒它,當它可以接收更多數(shù)據(jù)時.

struct termios *termios;
指向 tty 設備的當前 termios 設置的指針.

unsigned char stopped:1;
指示是否 tty 設備被停止. tty 驅(qū)動可以設置這個值.

unsigned char hw_stopped:1;
指示是否 tty 設備的已經(jīng)被停止. tty 驅(qū)動可以設置這個值.

unsigned char low_latency:1;
指示是否 tty 設備是一個低反應周期的設備, 能夠高速接收數(shù)據(jù). tty 驅(qū)動可以設置這個值.

unsigned char closing:1;
指示是否 tty 設備在關閉端口當中. tty 驅(qū)動可以設置這個值.

struct tty_driver driver;
當前控制這個 tty 設備的 tty_driver 結(jié)構(gòu).

void *driver_data;
指針, tty_driver 可以用來存儲對于 tty 驅(qū)動本地的數(shù)據(jù). 這個變量不被 tty 核心修改.

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號