【问题标题】:what does `ioctl` do in `struct tty_driver`?`ioctl` 在 `struct tty_driver` 中做了什么?
【发布时间】:2014-01-27 19:50:11
【问题描述】:

ioctl 在结构 struct tty_driver 中做了什么?

我知道ioctl() 函数提供了控制硬件(键盘、鼠标、打印)的方法,但例如控制键盘上的 LED 的驱动程序我认为 ioctl 足以完成这项任务。 ..

那么为什么我需要一个 tty_driver?我知道 tty_driver 是一个结构体

P.D 我从未尝试过编写设备驱动程序。我只看过一些书中的一点代码。

【问题讨论】:

  • ioctl 是特定于设备的,这就是为什么它应该位于定义该特定设备的结构中。这是你想知道的吗?

标签: linux-kernel driver


【解决方案1】:

在开发新的驱动程序时,struct tty_driver 结构用于注册一个 tty_driver(使用tty_register_driver()1)。此代码创建一个新的设备文件并将文件操作设置为一些 tty 特定的函数。

新创建的文件操作中的ioctl条目设置为tty_ioctl()2,在处理完一些基本命令后会调用struct tty_operations中设置的.ioctl函数@@987654330中引用的3 @。

通过定义ioctl(注意,如果它不是3 中的NULL,则检查它),开发人员可以实现特定于其设备的ioctl 命令,或者简单地收到一些其他标准命令的通知。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-31
    • 2021-11-22
    • 1970-01-01
    • 2014-08-03
    • 2012-02-12
    • 2010-10-26
    • 2019-07-12
    • 2010-11-20
    相关资源
    最近更新 更多