该文件没有与之关联的程序来执行该操作_Liunx tty子系统分析之三 tty字符设备文件操作接口说明...
本章主要介紹tty字符設(shè)備文件對(duì)應(yīng)的操作接口,從而說(shuō)明tty設(shè)備的數(shù)據(jù)打開(kāi)、關(guān)閉、讀、寫(xiě)等接口的實(shí)現(xiàn)等內(nèi)容。
tyy file_operations定義
tty字符設(shè)備文件操作接口的定義如下,主要包括tty_fops、console_fops、hung_up_tty_fops,其中console_fops為控制臺(tái)設(shè)備的文件操作接口,hung_up_tty_fops為tty設(shè)備掛起后的文件操作接口,而tty_fops則為非控制臺(tái)設(shè)備的文件操作接口。
在之前幾章的介紹中,我們已經(jīng)說(shuō)明過(guò),在tty字符設(shè)備文件的打開(kāi)操作后,完成tty_struct創(chuàng)‘建、tty_struct與tty_port、tty_struct與tty_ldisc等關(guān)聯(lián),下面我們簡(jiǎn)要分析下這幾個(gè)函數(shù)。
tty_open接口
針對(duì)tty_open接口而言,主要實(shí)現(xiàn)如下幾個(gè)功能:
針對(duì)tty_open接口,主要涉及如下幾個(gè)函數(shù)的調(diào)用:tty_open_current_tty、tty_driver_lookup_tty、tty_init_dev、initialize_tty_struct、tty_driver_install_tty等接口,而針對(duì)tty_init_dev接口而言,則主要實(shí)現(xiàn)tty_struct的創(chuàng)建以及各數(shù)據(jù)結(jié)構(gòu)之間的關(guān)聯(lián)等信息。
tty_init_dev
1. 創(chuàng)建一個(gè)tty_struct類型的變量,用于完成一個(gè)tty_struct、tty_driver的綁定等操作
2.調(diào)用initialize_tty_struct,初始化tty_struct類型變量,包括根據(jù)tty端口的id、tty端口對(duì)應(yīng)的device
tty端口對(duì)應(yīng)tty_driver、線路規(guī)程等設(shè)置該tty_struct對(duì)應(yīng)的成員
3.調(diào)用tty_driver_install_tty,完成tty_driver與tty_struct的綁定,并初始化tty_struct的termios參數(shù)
4.調(diào)用tty_ldisc_setup,打開(kāi)線路規(guī)程的open接口(如設(shè)置termios、關(guān)閉流控、使能ldisc)等功能
5.完成tty_struct與tty_port的關(guān)聯(lián)
tty_read接口
當(dāng)執(zhí)行完成tty_open后,則完成了tty_driver、tty_port、tty device、tty_ldisc、tty_struct等數(shù)據(jù)結(jié)構(gòu)的關(guān)聯(lián),則可以與tty端口進(jìn)行讀寫(xiě)操作了。下面說(shuō)明下tty_read的操作流程。
如下圖所示,針對(duì)應(yīng)用程序讀tty端口的操作,主要包括如下幾個(gè)步驟:
tty_write接口
針對(duì)tty_write的操作流程,與tty_read類似,下面說(shuō)明下tty_read的操作流程。
如下圖所示,針對(duì)應(yīng)用程序?qū)憈ty端口的操作,主要包括如下幾個(gè)步驟:
tty_poll接口
該接口主要用于select、epoll機(jī)制,主要也是借助tty_struct->read_wait、tty_struct->write_wait等待隊(duì)列,完成tty_poll接口的實(shí)現(xiàn),此處不再展開(kāi)。
tty_close接口
該接口主要調(diào)用release_tty、tty_ldisc_release、tty_ldisc_kill、tty_del_file等接口,用于解除tty_struct、tty_driver、tty_ldisc、tty_port、tty device之間的關(guān)聯(lián)。此處我們對(duì)release_tty進(jìn)行簡(jiǎn)要說(shuō)明
release_tty接口
其實(shí)現(xiàn)的功能如下:
本章主要介紹tty字符設(shè)備接口的文件操作接口,其open接口主要完成tty_struct創(chuàng)建、tty_driver、tty_port、tty_ldisc、tty device的關(guān)聯(lián)操作;而讀寫(xiě)接口則主要借助等待隊(duì)列、工作隊(duì)列完成對(duì)tty端口的讀寫(xiě)操作。下一章則根據(jù)tty__register_driver、tty_port_register_device創(chuàng)建一個(gè)虛擬的tty串口驅(qū)動(dòng),以便我們不借助開(kāi)發(fā)板也可以進(jìn)行tty子系統(tǒng)驅(qū)動(dòng)的學(xué)習(xí)工作。
總結(jié)
以上是生活随笔為你收集整理的该文件没有与之关联的程序来执行该操作_Liunx tty子系统分析之三 tty字符设备文件操作接口说明...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android10锁屏时钟样式,三星s1
- 下一篇: OMS订单管理系统框架图