facility_enable 内核服务
用途
启用要在内核环境中使用的指定设施。 否则,指定的设施将限制在内核环境中使用。
语法
#include <sys/machine.h>
int facility_enable (facility)
uint64_t facility;
参数
- 程序
- 指定必须启用的功能部件。
描述
facility_enable 内核服务允许使用通常导致系统故障的设施 (如果在内核环境中使用该设施)。 此类设施的示例包括 Vector Multimedia Extension (VMX) 设施或 Vector Scalar Extension (VSX) 设施。 facility_enable 内核服务支持的工具在 /usr/include/sys/machine.h 包含文件中定义。
facility_enable 内核服务保存所请求设施的状态,然后禁用中断,直到调用 facility_disable 内核服务为止。
当 facility_enable 内核服务处于活动状态时,正在运行的程序必须遵循中断环境限制和以下其他限制:
- 无法以递归方式或嵌套方式使用
facility_enable内核服务。 即,在再次调用facility_enable内核服务之前,对facility_enable内核服务的每个调用都必须后跟对facility_disable内核服务的调用。 - 当
facility_enable内核服务处于活动状态时,无法修改中断级别。 - 每次调用
facility_enable内核服务时,只能启用单个设施。 - 当
facility_enable内核服务处于活动状态并将导致系统故障时,不允许执行休眠操作。 - 当
facility_enable内核服务处于活动状态时,不允许执行块操作。 - 必须将
facility_disable内核服务与facility_enable内核服务配合使用,以复原自调用facility_enable内核服务以来的任何状态更改。
注: 对于长时间运行的指令序列,不得调用
facility_enable 内核服务。 在较长一段时间内禁用中断可能会导致系统中出现性能问题。执行环境
可以从进程或中断环境调用 facility_enable 内核服务。
返回值
- 0
- 已成功启用设施,并且指定的设施现在处于活动状态。
- ENOSYS
- 请求的设施在此系统上不可用或不受支持。
- EINVAL
- facility 参数无效。
- EBUSY
- 已调用
facility_enable内核服务并且该服务处于活动状态。