TTY IOCTL 助手¶
-
unsigned int tty_chars_in_buffer(struct tty_struct *tty)¶
待處理字元
引數
struct tty_struct *tty終端
返回值
裝置私有輸出佇列中的資料位元組數。如果沒有提供私有方法,則假定裝置上沒有佇列。
-
unsigned int tty_write_room(struct tty_struct *tty)¶
寫入佇列空間
引數
struct tty_struct *tty終端
返回值
當前可以排隊到此裝置的位元組數。結果應被視為保證,並且驅動程式提供的數值在後續縮小幅度上不能超過寫入的位元組數。如果沒有提供方法,則始終返回 2K,並且可能會丟失資料,因為沒有流量控制。
-
void tty_driver_flush_buffer(struct tty_struct *tty)¶
丟棄內部緩衝區
引數
struct tty_struct *tty終端
描述
丟棄此裝置的內部輸出緩衝區。如果沒有提供方法,則緩衝區無法進行硬體重新整理,或者沒有驅動程式端的緩衝區。
-
void tty_unthrottle(struct tty_struct *tty)¶
流量控制
引數
struct tty_struct *tty終端
描述
指示 tty 可以繼續向下堆疊傳輸資料。使用 tty_struct->termios_rwsem 來防止並行 throttle/unthrottle,並確保驅動程式在此處實現軟體流量控制時可以一致地引用其自己的 termios 資料。
但是,驅動程式應記住,堆疊可以發出 throttle,然後更改流量控制方法,然後 unthrottle。
-
bool tty_throttle_safe(struct tty_struct *tty)¶
流量控制
引數
struct tty_struct *tty終端
描述
指示 tty 應停止向下堆疊傳輸資料。tty_throttle_safe() 僅在 tty->flow_change 為 TTY_THROTTLE_SAFE 時才會嘗試 throttle。防止由於在 throttle 之前評估的因素而導致 throttle 有條件時,由於競爭條件而意外 throttle。
返回值
如果 tty 被 throttle(或已被 throttle),則為 true
-
bool tty_unthrottle_safe(struct tty_struct *tty)¶
流量控制
引數
struct tty_struct *tty終端
描述
與 tty_unthrottle() 類似,但僅在 tty->flow_change 為 TTY_UNTHROTTLE_SAFE 時才會嘗試 unthrottle。防止由於在 unthrottle 之前評估的因素而導致 unthrottle 有條件時,由於競爭條件而意外 unthrottle。
返回值
如果 tty 被 unthrottle(或已被 unthrottle),則為 true
-
void tty_wait_until_sent(struct tty_struct *tty, long timeout)¶
等待 I/O 完成
引數
struct tty_struct *tty我們正在等待的 tty
long timeout我們將等待多久
描述
等待 tty 驅動程式中待處理的字元到達線路,或等待超時發生(例如,由於流量控制)。
鎖定:無
-
void tty_termios_copy_hw(struct ktermios *new, const struct ktermios *old)¶
複製硬體設定
引數
struct ktermios *new新 termios
const struct ktermios *old舊 termios
描述
將硬體特定的終端設定位從 old termios 結構傳播到 new 結構。這用於硬體不支援重新配置的情況,或者作為僅支援最小重新配置的一些情況下的助手。
-
bool tty_termios_hw_change(const struct ktermios *a, const struct ktermios *b)¶
檢查設定更改
引數
const struct ktermios *atermios
const struct ktermios *b要比較的 termios
描述
檢查影響啞裝置的任何位是否在兩個 termios 結構之間發生了更改,或者是否需要速度更改。
返回值
如果需要更改,則為 true
-
unsigned char tty_get_char_size(unsigned int cflag)¶
獲取字元大小
引數
unsigned int cflagtermios cflag 值
返回值
取決於 cflag 的 CSIZE 設定的字元大小(以位為單位)
-
unsigned char tty_get_frame_size(unsigned int cflag)¶
獲取幀大小
引數
unsigned int cflagtermios cflag 值
描述
根據 cflag 的 CSIZE、CSTOPB 和 PARENB 設定獲取幀的大小(以位為單位)。結果是字元大小、起始位和停止位(每個一位)、第二個停止位(如果設定)以及奇偶校驗位(如果設定)的總和。
返回值
取決於 cflag 設定的幀的大小(以位為單位)。
-
int tty_set_termios(struct tty_struct *tty, struct ktermios *new_termios)¶
更新 termios 值
引數
struct tty_struct *tty要更新的 tty
struct ktermios *new_termios所需的新值
描述
對在此 tty 上設定的 termios 值執行更新。主 pty 的 termios 永遠不應設定。
-
int set_termios(struct tty_struct *tty, void __user *arg, int opt)¶
設定 tty 的 termios 值
引數
struct tty_struct *tty終端裝置
void __user *arg使用者資料
int opt選項資訊
描述
在實際進行更改之前,使用助手函式準備 termios 資料並執行必要的其他函式,然後使用 tty_set_termios()。
鎖定:呼叫的函式採用 tty_struct->ldisc_sem 和 tty_struct->termios_rwsem 鎖
返回值
成功時為 0,否則為錯誤
-
int set_sgttyb(struct tty_struct *tty, struct sgttyb __user *sgttyb)¶
設定舊式終端值
引數
struct tty_struct *ttytty 結構
struct sgttyb __user *sgttyb指向舊式終端結構的指標
描述
從舊式 BSD 終端資訊結構更新終端。
返回值
成功時為 0,否則為錯誤
-
int tty_change_softcar(struct tty_struct *tty, bool enable)¶
載波更改 ioctl 助手
引數
struct tty_struct *tty要更新的 tty
bool enable啟用/停用
CLOCAL
描述
執行 CLOCAL 狀態的更改,並呼叫驅動程式層使其可見。
返回值
成功時為 0,否則為錯誤
-
int tty_mode_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg)¶
模式相關的 ioctl
引數
struct tty_struct *ttyioctl 的 tty
unsigned int cmd命令
unsigned long argioctl 引數
描述
執行非線路規程特定的模式控制 ioctl。這旨在由線路規程呼叫,以確保它們提供一致的模式設定。
-
speed_t tty_get_baud_rate(const struct tty_struct *tty)¶
獲取 tty 位元率
引數
const struct tty_struct *tty要查詢的 tty
返回值
此終端的波特率(整數)
描述
鎖定:呼叫方必須持有 termios 鎖。