附录 E. 编译选项和系统调用,包括 ioctl

目录
E.1. 中间层
E.1.1. 中间层编译选项
E.1.2. 中间层 ioctl
E.2. sd 驱动程序
E.2.1. sd 编译选项
E.2.2. sd ioctl 和用户界面
E.3. sr 驱动程序
E.3.1. sr 编译选项
E.3.2. sr ioctl 和用户界面
E.4. st 驱动程序
E.4.1. st 编译选项
E.4.2. st ioctl 和用户界面
E.5. sg 驱动程序
E.5.1. sg 编译选项
E.5.2. sg ioctl 和用户界面

本附录中的编译选项是系统管理员可能想要更改的选项。当然,默认设置的选择是为了绝大多数用户不需要修改任何内容。在某些情况下,设置内核构建时选项、内核启动时参数或模块加载参数与更改驱动程序编译时选项具有相同的效果。

系统调用充当应用程序和内核及其驱动程序之间的接口。在 SCSI 子系统使用的分层驱动程序架构中,上层驱动程序处理大多数系统调用。

SCSI 子系统具有“冒泡下沉”ioctl 结构。首先,与打开的文件描述符关联的上层驱动程序尝试解码 ioctl。如果它无法识别,则 ioctl 会传递到中间层。如果中间层无法识别,则 ioctl 会传递到与文件描述符关联的下层驱动程序。如果下层驱动程序无法识别,则会生成 EINVAL 错误。

一些 ioctl 被分派到相关的子系统。