S390_STHYI - Linux手册页

时间:2019-08-20 17:59:17  来源:igfitidea点击:

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/