docs/zh_CN: Added ioctl Chinese translation documentation The content submitted this time: Added ioctl to the translation/zh_CN/driver-api directory, and modified the build and TODOLIST in index.rst Signed-off-by: jinyilong <longjinyii@xxxxxxxxxxx> --- .../translations/zh_CN/driver-api/index.rst | 2 +- .../translations/zh_CN/driver-api/ioctl.rst | 57 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 Documentation/translations/zh_CN/driver-api/ioctl.rst diff --git a/Documentation/translations/zh_CN/driver-api/index.rst b/Documentation/translations/zh_CN/driver-api/index.rst index 92ff1b7fc3d3..b9d49e93a93b 100644 --- a/Documentation/translations/zh_CN/driver-api/index.rst +++ b/Documentation/translations/zh_CN/driver-api/index.rst @@ -22,6 +22,7 @@ Linux驱动实现者的API指南 :maxdepth: 2 gpio/index + ioctl io_ordering Todolist: @@ -29,7 +30,6 @@ Todolist: * driver-model/index * basics * infrastructure -* ioctl * early-userspace/index * pm/index * clk diff --git a/Documentation/translations/zh_CN/driver-api/ioctl.rst b/Documentation/translations/zh_CN/driver-api/ioctl.rst new file mode 100644 index 000000000000..a361efc87290 --- /dev/null +++ b/Documentation/translations/zh_CN/driver-api/ioctl.rst @@ -0,0 +1,57 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_CN.rst + +:Original: Documentation/driver-api/ioctl.rst + +:翻译: + 龙锦毅 Long JinYi <longjinyii@xxxxxxxxxxx> + +:校译: + +========== +ioctl接口 +========== + +ioctl()是应用程序与设备驱动程序交互的常用方式,可以通过添加新命令来进行拓展,并且 +可以通过文件描述符向字符设备、块设备以及套接字进行控制。 + +------------ +命令编号定义 +------------ + +命令编号是传递给ioctl()的第二个参数,是一个用于标识特定驱动程序的操作的 +32位整数,但是这个参数也有相关的编写约定。在include/uapi/asm-generic/ioctl.h中定义了四个宏。 + +_IO/_IOR/_IOW/_IOWR + +宏指定了参数的使用方式。它可以是指向要传递到内核(_IOW)、传递出内核(_IOR)或两者兼而有之(_IOWR)。 +_IO可以用于无参数的命令,也可以用于传递整数值而不是指针的命令。 + +参数列表: + +type: 一个8位的整数,通常是特定于子系统或者驱动程序的字符序列,并列在ioctl编号中 + +nr: 标识特定命令的8位整数,用于标识唯一type + +size:用于标识所传递的数据字节大小 + +--------- +接口版本 +--------- + +通过向ioctl添加带有新编号的命令。为了兼容旧命令,使得仍需要在内核中实现 + + +------- +返回码 +------- + +ioctl()可以返回错误码,例如errno(3)。这些值在用户空间中转换为errno值。 +若正常执行应该返回0,也可以返回非0的正数(不建议) + +------------- +32位系统兼容 +------------- + +为了支持64位计算机上运行的32位用户程序,每个子系统或者驱动程序还应该实现compat_ioctl函数 -- 2.34.1