Служба слоя аппаратных абстракций

21 мая 2024

ID kernel_methods_hal

Служба предназначена для получения значений параметров HAL, работы с привилегированными регистрами, очистки кеша процессора, выполнения диагностического вывода, а также получения случайных чисел, сгенерированных аппаратно.

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

Методы службы hal.HAL (интерфейс kl.core.HAL)

Метод

Назначение и параметры метода

Потенциальная опасность метода

GetEnv

Назначение

Позволяет получить значение параметра HAL.

Параметры

  • [in] name – имя параметра.
  • [out] value – значение параметра.
  • [out] rc – код возврата.

Позволяет получить значения параметров HAL, которые могут представлять собой критические сведения о системе.

GetPrivReg

Назначение

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

Параметры

  • [in] reg – имя регистра.
  • [out] val – значение регистра.
  • [out] rc – код возврата.

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

Рекомендуется контролировать имя регистра.

SetPrivReg

Назначение

Задает значение привилегированного регистра.

Параметры

  • [in] reg – имя регистра.
  • [in] val – значение регистра.
  • [out] rc – код возврата.

Позволяет выполнить следующие действия:

  • Задать значение привилегированного регистра.
  • Организовать канал передачи данных с процессом, который имеет доступ к методу GetPrivReg или GetPrivRegRange.

Рекомендуется контролировать имя регистра.

GetPrivRegRange

Назначение

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

Параметры

  • [in] regRange – имя диапазона регистров.
  • [in] offset – смещение регистра в диапазоне регистров.
  • [out] val – значение регистра.
  • [out] rc – код возврата.

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

Рекомендуется контролировать имя диапазона регистров и смещение регистра в этом диапазоне.

SetPrivRegRange

Назначение

Задает значение привилегированного регистра.

Параметры

  • [in] regRange – имя диапазона регистров.
  • [in] offset – смещение регистра в диапазоне регистров.
  • [in] val – значение регистра.
  • [out] rc – код возврата.

Позволяет выполнить следующие действия:

  • Задать значение привилегированного регистра.
  • Организовать канал передачи данных с процессом, который имеет доступ к методу GetPrivReg или GetPrivRegRange.

Рекомендуется контролировать имя диапазона регистров и смещение регистра в этом диапазоне.

FlushCache

Назначение

Очищает кеш процессора.

Параметры

  • [in] type – значение, задающее тип кеша (кеш данных, кеш инструкций, кеш данных и кеш инструкций совместно).
  • [in] va – базовый адрес региона виртуальной памяти. Кеш, соответствующий этому региону, очищается.
  • [in] size – размер региона виртуальной памяти. Кеш, соответствующий этому региону, очищается.
  • [out] rc – код возврата.

Позволяет очистить кеш процессора.

DebugWrite

Назначение

Помещает данные в диагностический вывод, который записывается, например, в порт COM или USB (версии 3.0 или более поздней, с поддержкой DbC).

Параметры

  • [in] data – последовательность, содержащая данные для помещения в диагностический вывод.
  • [out] rc – код возврата.

Позволяет заполнить диагностический вывод фиктивными данными (например, неинформативными).

GetEntropy

Назначение

Позволяет получить случайные числа, сгенерированные аппаратно.

Параметры

  • [out] buffer – последовательность, содержащая случайные байтовые значения.
  • [in] size – число случайных байтовых значений.
  • [out] rc – код возврата.

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

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!