Реализация обработчика региона операции

Драйвер должен предоставить обработчик области операций, который является обратным вызовом PACPI_OP_REGION_HANDLER типа. Драйвер ACPI вызывает обработчик операций для доступа к полям данных в области операции драйвера. Объединенная операция драйвера функции и BIOS ACPI определяется поставщиком и устройством. В общем, драйвер функции и ACPI BIOS обращаются к индексам в области операций, что приводит к операциям, специфичным для устройства, и возвращает соответствующую информацию.

Обработчик области операций обычно использует следующие параметры, которые драйвер ACPI передает обработчику:

  • AccessType указывает, является ли доступ чтением или записью.

    Если доступ является чтением, данные передаются из буфера памяти региона операции в буфер данных . Если доступ является записью, данные передаются из буфера данных в буфер памяти региона операции. См. раздел "Доступ к региону операции".

  • Адрес задает смещение байтов в буфере памяти региона операции.

  • Размер указывает количество байтов для передачи.

  • Данные указывают буфер, предоставленный драйвером ACPI для передачи данных.

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

    Контекст области операций используется только драйвером-функцией и зависит от устройства.

Помимо ранее описанных параметров, драйвер ACPI также передает обработчику региона операций указатели на следующие элементы: объект региона операций, обработчик завершения и контекст завершения. Однако драйвер функции не использует объект области операции в обработчике, а обработчик завершения и контекст зарезервированы для внутреннего использования.