W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
tty_struct 變量被 tty 核心用來(lái)保持當(dāng)前的特定 tty 端口的狀態(tài). 幾乎它的所有的朋友都只被 tty 核心使用, 有幾個(gè)例外. 一個(gè) tty 驅(qū)動(dòng)可以使用的成員在此描述:
unsigned long flags;
tty 設(shè)備的當(dāng)前狀態(tài). 這是一個(gè)位段變量, 并且通過(guò)下面的宏定義存取:
TTY_THROTTLED
當(dāng)驅(qū)動(dòng)以及有抑制函數(shù)被調(diào)用. 不應(yīng)當(dāng)被一個(gè) tty 驅(qū)動(dòng)設(shè)置, 只有 tty 核心.
TTY_IO_ERROR
由驅(qū)動(dòng)設(shè)置當(dāng)它不想任何數(shù)據(jù)被讀出或?qū)懭腧?qū)動(dòng). 如果一個(gè)用戶程序試圖做這個(gè), 它接收一個(gè) -EIO 錯(cuò)誤從內(nèi)核中. 這常常在設(shè)備被關(guān)閉時(shí)設(shè)置.
TTY_OTHER_CLOSED
只由 pty 驅(qū)動(dòng)使用來(lái)通知, 當(dāng)端口已經(jīng)被關(guān)閉.
TTY_EXCLUSIVE
由 tty 核心設(shè)置來(lái)指示一個(gè)端口在獨(dú)占模式并且只能一次由一個(gè)用戶存取.
TTY_DEBUG
內(nèi)核中任何地方都不用.
TTY_DO_WRITE_WAKEUP
如果被設(shè)置, 線路規(guī)程的 write_wakeup 函數(shù)被允許來(lái)被調(diào)用. 常常在 tty_driver 調(diào)用 wake_up_interruptible 函數(shù)的同一時(shí)間被調(diào)用.
TTY_PUSH
只被缺省的 tty 線路規(guī)程內(nèi)部使用.
TTY_CLOSING
tty 核心用來(lái)跟蹤是否一個(gè)端口在那個(gè)時(shí)刻及時(shí)處于關(guān)閉過(guò)程.
TTY_DONT_FLIP
被缺省的 tty 線路規(guī)程用來(lái)通知 tty 核心, 它不應(yīng)當(dāng)改變 flip 緩沖, 當(dāng)它被置位.
TTY_HW_COOK_OUT
如果被一個(gè) tty 驅(qū)動(dòng)設(shè)置, 它通知線路規(guī)程應(yīng)當(dāng)"烹調(diào)"發(fā)送給它的輸出. 如果它沒(méi)有設(shè)置, 線路規(guī)程成塊拷貝驅(qū)動(dòng)的輸出; 否則, 它不得不為線路改變將單個(gè)發(fā)送的字節(jié)逐個(gè)求值. 這個(gè)標(biāo)志應(yīng)當(dāng)通常不被 tty 驅(qū)動(dòng)設(shè)置.
TTY_HW_COOK_IN
幾乎和設(shè)置在驅(qū)動(dòng)中的 flag 變量中的 TTY_DRIVER_REAL_RAW 標(biāo)志一致. 這個(gè)標(biāo)志通常應(yīng)當(dāng)不被 tty 驅(qū)動(dòng)設(shè)置.
TTY_PTY_LOCK
pty 驅(qū)動(dòng)用來(lái)加鎖和解鎖一個(gè)端口.
TTY_NO_WRITE_SPLIT
如果設(shè)置, tty 核心不將對(duì) tty 驅(qū)動(dòng)的寫(xiě)分成正常大小的塊. 這個(gè)值不應(yīng)當(dāng)用來(lái)阻止對(duì) tty 端口通過(guò)發(fā)送大量數(shù)據(jù)到端口的DoS攻擊,
struct tty_flip_buffer flip;
給 tty 設(shè)備的 flip 緩沖.
struct tty_ldisc ldisc;
給 tty 設(shè)備的線路規(guī)程.
wait_queue_head_t write_wait;
給 tty 寫(xiě)函數(shù)的 wait_queue. 一個(gè) tty 驅(qū)動(dòng)應(yīng)當(dāng)喚醒它,當(dāng)它可以接收更多數(shù)據(jù)時(shí).
struct termios *termios;
指向 tty 設(shè)備的當(dāng)前 termios 設(shè)置的指針.
unsigned char stopped:1;
指示是否 tty 設(shè)備被停止. tty 驅(qū)動(dòng)可以設(shè)置這個(gè)值.
unsigned char hw_stopped:1;
指示是否 tty 設(shè)備的已經(jīng)被停止. tty 驅(qū)動(dòng)可以設(shè)置這個(gè)值.
unsigned char low_latency:1;
指示是否 tty 設(shè)備是一個(gè)低反應(yīng)周期的設(shè)備, 能夠高速接收數(shù)據(jù). tty 驅(qū)動(dòng)可以設(shè)置這個(gè)值.
unsigned char closing:1;
指示是否 tty 設(shè)備在關(guān)閉端口當(dāng)中. tty 驅(qū)動(dòng)可以設(shè)置這個(gè)值.
struct tty_driver driver;
當(dāng)前控制這個(gè) tty 設(shè)備的 tty_driver 結(jié)構(gòu).
void *driver_data;
指針, tty_driver 可以用來(lái)存儲(chǔ)對(duì)于 tty 驅(qū)動(dòng)本地的數(shù)據(jù). 這個(gè)變量不被 tty 核心修改.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: