ИМЯ

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 смотрите на странице документации
При использовании интерфейса системного вызова буфер результата не имеет требований по выравниванию, описанных в инструкции STHYI.
Ядро кэширует результат (в Linux 4.16 каждую секунду). Последующие запуски системного вызова могут вернуть кэшированный ответ.

СМ. ТАКЖЕ

syscall(2)

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Alexander Golubev <[email protected]>, Azamat Hackimov <[email protected]>, Hotellook, Nikita <[email protected]>, Spiros Georgaras <[email protected]>, Vladislav <[email protected]>, Yuri Kozlov <[email protected]> и Иван Павлов <[email protected]>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на [email protected]

Recommended readings

Pages related to s390_sthyi you should read also: