内核服务的 timeoutcf 子例程
注意: 由于此服务不是多处理器安全服务,因此不得使用此服务。 必须改为使用基本内核计时器和看守程序服务。
用途
分配或取消分配与 超时 内核服务配合使用的调出表条目。
库
libsys.a (内核扩展运行时例程)
语法
#include <sys/types.h>
#include <sys/errno.h> int timeoutcf ( cocnt)
int cocnt;
int cocnt;
参数
| 项 | 描述 |
|---|---|
| 球 | 指定调出的计数。 此值指示用于增加或减少当前分配的调出元素的数目。 如果此数字为正数,那么与 超时 服务配合使用的调出条目数将增加。 如果此数字为负数,那么元素数将按指定的数量减少。 |
描述
timeoutcf 子例程不是该内核的一部分。 这是 libsys.a 库中提供的兼容性服务。 要使用 timeoutcf 子例程,内核扩展必须与 libsys.a 库绑定。 timeoutcf 子例程 (如相关联的内核 利布瑟 服务 取消超时 和 超时) 只能在内核扩展的固定部分或设备驱动程序的下半部分中进行绑定和使用,因为这些服务使用中断禁用进行序列化。
timeoutcf 子例程注册了可供 超时 子例程使用的调出表条目数的增加或减少。 在子例程可以使用 超时 内核服务之前, timeoutcf 子例程必须增加可供 超时 内核服务使用的调出表条目的数量。 它会将此数目增加例程一次可以暂挂的最大未完成超时数。
在下列情况下,必须使用 timeoutcf 子例程将调出表条目数减少到增加了的数量:
- 使用 超时 子例程的例程已完成使用。
- 调用例程没有更多处于暂挂状态的未完成超时请求。
通常在设备驱动程序的 开 和 关闭 例程中调用 timeoutcf 子例程。 将调用它来分配和取消分配足够的元素,以便对开放式设备的该实例最大限度预期使用 超时 内核服务。
注意: 内核恐慌会导致以下两种情况之一:
- 发出了减少调出表分配的请求,该请求大于未使用的调出表条目数。
- 在中断环境中调用 timeoutcf 子例程。
执行环境
timeoutcf 子例程只能从 流程环境 中进行调用。
返回值
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 指示已成功分配或取消分配所请求的调出表条目。 |
| -1 | 指示操作不成功。 |