s390_sthyi(2)

ИМЯ
s390_sthyi - эмулирует инструкцию STHYI

LIBRARY
Standard C library (libc, -lc)

СИНТАКСИС
#include <asm/sthyi.h>        /* определения констант STHYI_* */
#include <sys/syscall.h>      /* определения констант SYS_* */
#include <unistd.h>

int syscall(SYS_s390_sthyi, unsigned long function_code,
            void *resp_buffer, uint64_t *return_code,
            unsigned long flags);

Note: glibc provides no wrapper for s390_sthyi(), necessitating the use of syscall(2).

ОПИСАНИЕ
Системный вызов s390_sthyi() эмулирует инструкцию STHYI (Store Hypervisor Information). Он предоставляет информацию о ресурсах машины и её уровни виртуализации. В частности, возвращается тип ЦП и ёмкость, а также модель машины и другие свойства.

В аргументе function_code указывается какую функцию нужно выполнить. Поддерживаются следующие коды:

STHYI_FC_CP_IFL_CAP
    Вернуть информацию о CP (Central Processor) и ёмкости IFL (Integrated Facility for Linux).

В аргументе resp_buffer указывается адрес буфера результата. При function_code равном STHYI_FC_CP_IFL_CAP, размер буфера должен быть равен странице (4K). Если системный вызов вернул 0, то буфер результата будет заполнен информацией о ёмкости ЦП. В противном случае содержимое буфера результата не меняется.

В аргументе return_code хранится код возврата инструкции STHYI; возможно одно из следующих значений:

0   Успешно.

4   Неподдерживаемый код функции.

Дополнительную информацию о return_code, function_code и resp_buffer смотрите по ссылкам, приведённым в ЗАМЕЧАНИЯХ.

Аргумент flags предназначен для будущих расширений, а пока его значение должно быть равно 0.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении (т. е. эмуляция прошла успешно), возвращаемое s390_sthyi() значение совпадает с кодом условия инструкций STHYI — значением в диапазоне [0..3]. Возвращаемое значение 0 означает, что информация о ёмкости ЦП сохранена в *resp_buffer. Возвращаемое значение 3 указывает на «неподдерживаемый код функции» и содержимое *resp_buffer не изменяется. Значения 1 и 2 зарезервированы.

В случае ошибки возвращается -1, а errno устанавливается в значение ошибки.

ОШИБКИ

EFAULT
    Значение, указанное в resp_buffer или return_code, содержит некорректный адрес.

EINVAL
    Значение, указанное в flags, не равно нулю.

ENOMEM
    Не удалось выделить память для обработки информации о ёмкости ЦП.

EOPNOTSUPP
    Некорректное значение в function_code.

ВЕРСИИ
Данный системный вызов появился в Linux 4.15.

СТАНДАРТЫ
Данный системный вызов есть только в Linux и доступен только на архитектуре s390.

ЗАМЕЧАНИЯ
Описание инструкции STHYI смотрите на странице документации (https://www.ibm.com/support/knowledgecenter/SSB27U_6.3.0/com.ibm.zvm.v630.hcpb4/hcpb4sth.htm).

При использовании интерфейса системного вызова буфер результата не имеет требований по выравниванию, описанных в инструкции STHYI.

Ядро кэширует результат (в Linux 4.16 каждую секунду). Последующие запуски системного вызова могут вернуть кэшированный ответ.

СМ. ТАКЖЕ
syscall(2)

ПЕРЕВОД
Русский перевод этой страницы руководства был сделан Alexander Golubev <fatzer2@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 (https://www.gnu.org/licenses/gpl-3.0.html) или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.