S390_STHYI - Linux手册页
Section: System Calls (2)
更新日期: 2020-04-11
名称
s390_sthyi-模拟STHYI指令
语法
#include <asm/unistd.h> int s390_sthyi(unsigned long function_code, void *resp_buffer, uint64_t *return_code, unsigned long flags);
说明
s390_sthyi()系统调用模拟STHYI(存储系统管理程序信息)指令。它提供了有关计算机及其虚拟化级别的硬件资源信息。这包括CPU类型和容量,以及计算机型号和其他指标。
function_code参数指示要执行的功能。支持以下代码:
- 0
- 返回CP(中央处理器)和IFL(Linux集成设施)容量信息。
resp_buffer参数指定响应缓冲区的地址。当function_code为0时,缓冲区的大小必须为一页(4K)。如果系统调用返回0,则响应缓冲区将填充CPU容量信息。否则,响应缓冲区的内容将保持不变。
return_code参数使用以下值之一存储STHYI指令的返回码:
- 0
- 成功。
- 4
- 不支持的功能代码。
有关return_code,function_code和resp_buffer的更多详细信息,请参见NOTES中提供的参考。
提供flags参数以允许将来扩展,当前必须将其设置为0。
返回值
成功后(即:仿真成功),s390_sthyi()的返回值与STHYI指令的条件代码匹配,该代码的范围为[0..3]。返回值为0表示CPU容量信息存储在* resp_buffer中。返回值为3表示"不支持的功能代码",* resp_buffer的内容不变。返回值1和2保留。
如果出错,则返回-1,并正确设置errno。
错误说明
- EFAULT
- 在resp_buffer或return_code中指定的值不是有效地址。
- EINVAL
- 标志中指定的值不为零。
- ENOMEM
- 分配用于处理CPU容量信息的内存失败。
- EOPNOTSUPP
- 在function_code中指定的值无效。
版本
从Linux 4.15开始,此系统调用可用。
遵循规范
此特定于Linux的系统调用仅在s390体系结构上可用。
备注
Glibc不为此系统调用提供包装,请使用syscall(2)对其进行调用。
有关STHYI指令的详细信息,请参见文档页面
使用系统调用接口时,响应缓冲区不必满足STHYI指令定义中描述的对齐要求。
内核缓存响应(从Linux 4.16开始,最长可缓存一秒钟)。后续的系统调用调用可能返回缓存的响应。
另外参见
系统调用(2)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。