iowait 内核服务
用途
等待块 I/O 完成。
语法
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/buf.h> int iowait ( bp)
struct buf *bp;
struct buf *bp;
参数
| 项 | 描述 |
|---|---|
| bp | 为具有进程内 I/O 的缓冲区指定 布夫 结构的地址。 在支持存储密钥的平台上,所传递的 英国石油 参数必须位于 KKEY_PUBLIC 或 KKEY_BLOCK_DEV 保护域中。 |
描述
对于 英国石油 参数指定的缓冲区, 约瓦伊特 内核服务会导致进程等待直至 I/O 完成。 只有策略例程的调用者才可以调用 约瓦伊特 服务。 缓冲区中的 B_ASYNC 位。 b_flags不应该设置 字段。
当块 I/O 传输完成时,必须调用 约奥 one 内核服务。 英国石油 参数所指向的 布夫 结构必须指定一个 iodone 例程。 此例程由 iodone 中断处理程序调用,以响应对 约奥 one 内核服务的调用。 此 iodone 例程必须使用以下命令调用 警醒 服务:bp->b_events字段作为事件。 此操作将唤醒所有正在等待使用 约瓦伊特 服务完成 布夫 结构的 I/O 的进程。
执行环境
仅可从 流程环境 调用 约瓦伊特 内核服务。
返回值
约瓦伊特 服务使用 恐怖 服务来确定要返回以下值中的哪些值:
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 指示此缓冲区上的 I/O 已成功。 |
| EIO | 指示已发生 I/O 错误。 |
| b_error 值 | 指示缓冲区中发生了 I/O 错误。 |