]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man2/s390_sthyi.2
Start of man-pages-5.03: renaming .Announce and .lsm files
[thirdparty/man-pages.git] / man2 / s390_sthyi.2
CommitLineData
c336d6e0
QH
1.\" Copyright IBM Corp. 2017
2.\" Author: QingFeng Hao <haoqf@linux.vnet.ibm.com>
3.\"
4.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
5.\" This is free documentation; you can redistribute it and/or
6.\" modify it under the terms of the GNU General Public License as
7.\" published by the Free Software Foundation; either version 2 of
8.\" the License, or (at your option) any later version.
9.\"
10.\" The GNU General Public License's references to "object code"
11.\" and "executables" are to be interpreted as the output of any
12.\" document formatting or typesetting system, including
13.\" intermediate and printed output.
14.\"
15.\" This manual is distributed in the hope that it will be useful,
16.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
17.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18.\" GNU General Public License for more details.
19.\"
20.\" You should have received a copy of the GNU General Public
21.\" License along with this manual; if not, see
22.\" <http://www.gnu.org/licenses/>.
23.\" %%%LICENSE_END
24.\"
9ba01802 25.TH S390_STHYI 2 2019-03-06 "Linux Programmer's Manual"
c336d6e0
QH
26.SH NAME
27s390_sthyi \- emulate STHYI instruction
28.SH SYNOPSIS
29.nf
30.B #include <asm/unistd.h>
31.PP
0d757f49 32.BI "int s390_sthyi(unsigned long " function_code ", void *" resp_buffer ",
c336d6e0
QH
33.BI " uint64_t *" return_code ", unsigned long " flags ");
34.fi
35.SH DESCRIPTION
36The
37.BR s390_sthyi ()
38system call emulates the STHYI (Store Hypervisor Information) instruction.
a6ae6344
MK
39It provides hardware resource information for the machine and its
40virtualization levels.
41This includes CPU type and capacity, as well as the machine model and
c336d6e0
QH
42other metrics.
43.PP
44The
45.I function_code
46argument indicates which function to perform.
47The following code(s) are supported:
5057157b
MK
48.TP
490
c336d6e0
QH
50Return CP (Central Processor) and IFL (Integrated Facility for Linux)
51capacity information.
52.PP
53The
2cd9bbfa 54.I resp_buffer
a6ae6344 55argument specifies the address of a response buffer.
b2c7f822
ES
56When the
57.I function_code
3475e312 58is 0, the buffer must be one page (4K) in size.
a6ae6344
MK
59If the system call returns 0,
60the response buffer will be filled with CPU capacity information.
61Otherwise, the response buffer's content is unchanged.
c336d6e0
QH
62.PP
63The
64.I return_code
a6ae6344
MK
65argument stores the return code of the STHYI instruction,
66using one of the following values:
5057157b 67.TP 8
ba6f9c34 680
5057157b
MK
69Success.
70.TP
ba6f9c34 714
5057157b
MK
72Unsupported function code.
73.PP
74For further details about
75.IR return_code ,
76.IR function_code ,
77and
0d757f49 78.IR resp_buffer ,
4f684d1d 79see the reference given in NOTES.
c336d6e0
QH
80.PP
81The
82.I flags
83argument is provided to allow for future extensions and currently
ba6f9c34 84must be set to 0.
c336d6e0 85.SH RETURN VALUE
9224781f 86On success (that is: emulation succeeded), the return value of
c336d6e0
QH
87.BR s390_sthyi ()
88matches the condition code of the STHYI instructions, which is a value
9224781f
MK
89in the range [0..3].
90A return value of 0 indicates that CPU capacity information is stored in
0d757f49 91.IR *resp_buffer .
9224781f 92A return value of 3 indicates "unsupported function code" and the content of
0d757f49 93.IR *resp_buffer
9224781f
MK
94is unchanged.
95The return values 1 and 2 are reserved.
c336d6e0 96.PP
ba6f9c34 97On error, \-1 is returned, and
c336d6e0
QH
98.IR errno
99is set appropriately.
100.SH ERRORS
101.TP
c336d6e0
QH
102.B EFAULT
103The value specified in
2cd9bbfa 104.I resp_buffer
c336d6e0
QH
105or
106.I return_code
107is not a valid address.
108.TP
763235c5
MK
109.B EINVAL
110The value specified in
111.I flags
112is nonzero.
113.TP
c336d6e0
QH
114.B ENOMEM
115Allocating memory for handling the CPU capacity information failed.
763235c5
MK
116.TP
117.B EOPNOTSUPP
118The value specified in
2cd9bbfa 119.I function_code
763235c5 120is not valid.
c336d6e0
QH
121.SH VERSIONS
122This system call is available since Linux 4.15.
123.SH CONFORMING TO
124This Linux-specific system call is available only on the s390 architecture.
c336d6e0
QH
125.SH NOTES
126Glibc does not provide a wrapper for this system call, use
127.BR syscall (2)
128to call it.
4f684d1d
MK
129.PP
130For details of the STHYI instruction, see
131.UR https://www.ibm.com\:/support\:/knowledgecenter\:/SSB27U_6.3.0\:/com.ibm.zvm.v630.hcpb4\:/hcpb4sth.htm
b2c7f822 132the documentation page
4f684d1d 133.UE .
b2c7f822
ES
134.PP
135When the system call interface is used, the response buffer doesn't
136have to fulfill alignment requirements described in the STHYI
137instruction definition.
138.PP
139The kernel caches the response (for up to one second, as of Linux 4.16).
140Subsequent system call invocations may return the cached response.
c336d6e0
QH
141.SH SEE ALSO
142.BR syscall (2)