2014-01-27 49 views
0

ioctl在結構中做什麼struct tty_driver`struct ioctl`在`struct tty_driver`中做了什麼?

我知道ioctl()函數提供了控制硬件(鍵盤,鼠標,打印)的方法,但是例如驅動程序來控制鍵盤上的LED我認爲ioctl足夠完成這項任務..

那麼,爲什麼我需要一個tty_driver?我知道tty_driver是一個結構

P.D我從來沒有試過編程設備驅動程序。我只在一些書中讀過一些代碼。

+0

ioctl是_device specific_,這就是爲什麼它應該在定義該特定設備的結構中。那是你想知道的嗎? –

回答

0

開發新驅動程序時,struct tty_driver結構用於註冊tty_driver(使用tty_register_driver()1)。此代碼創建一個新的設備文件並將文件操作設置爲某些tty特定功能。

在新創建的文件操作的IOCTL項設置爲tty_ioctl()2它處理一些基本的命令後會調用.ioctl功能在struct tty_operations3struct tty_driver引用設置。

通過定義ioctl(注意,如果它不是NULL3它被選中),開發人員可以實現的ioctl命令特定於它的裝置或簡單地被通知某些其它標準命令。