KasperskyOS Community Edition 1.3

Управление электропитанием (pm_api.h)

API определен в заголовочном файле sysroot-*-kos/include/coresrv/pm/pm_api.h из состава KasperskyOS SDK.

API позволяет изменять режим электропитания аппаратной платформы (например, выключать, перезагружать), а также включать и выключать процессоры (вычислительные ядра).

Сведения о функциях API приведены в таблице ниже.

Использование API

Чтобы выполнить запрос на изменение режима электропитания аппаратной платформы, нужно вызвать функцию KnPmRequest().

Функции KnPmSetCpusOnline() и KnPmGetCpusOnline() имеют параметр mask, через который передается маска процессов. Маска процессоров – битовая маска, отражающая набор процессоров (вычислительных ядер). Флаг, установленный в i-ом бите, отражает, что процессор с индексом i входит в набор (нумерация начинается с нуля). Для работы с маской процессоров нужно использовать функции, определенные в заголовочном файле sysroot-*-kos/include/rtl/cpuset.h.

Чтобы включить и/или выключить процессоры, нужно вызвать функцию KnPmSetCpusOnline(), указав маску процессоров, отражающую требуемый набор активных процессоров. В этой маске должен быть установлен флаг, соответствующий процессору загрузки (англ. bootstrap processor), иначе функция завершится с ошибкой. Чтобы получить индекс процессора загрузки, нужно вызвать функцию KnPmGetBootstrapCpuNum().

Чтобы получить сведения о том, какие процессоры находятся в активном состоянии, нужно вызвать функцию KnPmGetCpusOnline(). Выходным параметром этой функции является маска процессоров, отражающая фактический набор активных процессоров.

Если функция KnPmSetCpusOnline() завершилась с ошибкой, это может привести к неопределенному изменению набора активных процессоров. Чтобы предпринять повторную попытку настроить набор активных процессоров, нужно получить сведения о том, какие процессоры находятся в активном состоянии, вызовом функции KnPmGetCpusOnline() и скорректировать на основе этих сведений требуемый набор активных процессоров при последующем вызове функции KnPmSetCpusOnline().

Сведения о функциях API

Функции pm_api.h

Функция

Сведения о функции

KnPmRequest()

Назначение

Выполняет запрос на изменение режима электропитания аппаратной платформы.

Параметры

  • [in] request – значение, задающее требуемый режим электропитания аппаратной платформы. Тип параметра определен в заголовочном файле sysroot-*-kos/include/pm/pmstate.h из состава KasperskyOS SDK.

Возвращаемые значения

В случае успеха возвращает rcOk, иначе возвращает код ошибки.

KnPmSetCpusOnline()

Назначение

Выполняет запрос на включение и/или выключение процессоров.

Параметры

  • [in] mask – указатель на маску процессоров, отражающую требуемый набор активных процессоров. Тип маски процессоров определен в заголовочном файле sysroot-*-kos/include/rtl/cpuset.h из состава KasperskyOS SDK.
  • [in] timeoutMs – фиктивный параметр (устарел).

Возвращаемые значения

В случае успеха возвращает rcOk, иначе возвращает код ошибки.

KnPmGetCpusOnline()

Назначение

Позволяет получить сведения о том, какие процессоры находятся в активном состоянии.

Параметры

  • [out] mask – указатель на маску процессоров, отражающую фактический набор активных процессоров. Тип маски процессоров определен в заголовочном файле sysroot-*-kos/include/rtl/cpuset.h из состава KasperskyOS SDK.

Возвращаемые значения

В случае успеха возвращает rcOk, иначе возвращает код ошибки.

KnPmGetBootstrapCpuNum()

Назначение

Позволяет получить индекс процессора загрузки.

Параметры

  • [out] num – указатель на индекс процессора загрузки. Тип индекса процессора определен в заголовочном файле sysroot-*-kos/include/rtl/cpuset.h из состава KasperskyOS SDK.

Возвращаемые значения

В случае успеха возвращает rcOk, иначе возвращает код ошибки.