Linux repositories inspector

s390_sthyi(2) - Russkiy

Руководство программиста Linux
2019-03-06

man-pages-ru

Russian man pages from the Linux Documentation Project

manpages-dev

Manual pages about using GNU/Linux for development

man-pages

Linux kernel and C library user-space interface documentation

ИМЯ

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 (Store Hypervisor Information). Он предоставляет информацию о ресурсах машины и её уровни виртуализации. В частности, возвращается тип ЦП и ёмкость, а также модель машины и другие свойства.
В аргументе function_code указывается какую функцию нужно выполнить. Поддерживаются следующие коды:
0 Вернуть информацию о CP (Central Processor) и ёмкости IFL (Integrated Facility for Linux).
В аргументе resp_buffer указывается адрес буфера результата. При function_code равном 0, размер буфера должен быть равен странице (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.

ЗАМЕЧАНИЯ

В glibc нет обёртки для данного системного вызова; запускайте его с помощью syscall(2).
Описание инструкции STHYI смотрите на странице документации
При использовании интерфейса системного вызова буфер результата не имеет требований по выравниванию, описанных в инструкции STHYI.
Ядро кэширует результат (в Linux 4.16 каждую секунду). Последующие запуски системного вызова могут вернуть кэшированный ответ.

СМОТРИТЕ ТАКЖЕ

⇧ Top