Implementando um manipulador de região de operação
O driver deve fornecer um manipulador de região de operação, que é um retorno de chamada tipo PACPI_OP_REGION_HANDLER. O driver ACPI chama o manipulador de operação para acessar os campos de dados na região de operação do driver. A operação combinada do driver de função e do BIOS do ACPI é definida pelo fornecedor e específica do dispositivo. Em geral, o driver de função e os índices de acesso do ACPI BIOS em uma região de operação que resultam em operações específicas do dispositivo e retornam quaisquer informações apropriadas.
Um manipulador de região de operação normalmente usa os seguintes parâmetros que o driver ACPI passa para o manipulador:
AccessType especifica se o acesso é uma leitura ou gravação.
Se o acesso for uma leitura, os dados serão transferidos do buffer de memória da região de operação para o buffer de dados . Se o acesso for uma gravação, os dados serão transferidos do buffer de dados para o buffer de memória da região de operação. Consulte Acessando uma região de operação.
O endereço especifica um deslocamento de bytes no buffer de memória da região da operação.
Size especifica o número de bytes a serem transferidos.
Os dados especificam um buffer fornecido pelo driver ACPI para a transferência de dados.
O contexto especifica o contexto da região de operação que o driver registrou para o manipulador de região de operação.
O contexto da região da operação é usado apenas pelo driver de função e é específico do dispositivo.
Além dos parâmetros descritos anteriormente, o driver ACPI também passa para um manipulador de região de operação ponteiros para o seguinte: um objeto de região de operação, um manipulador de conclusão e um contexto de conclusão. No entanto, o driver de função não usa o objeto de região de operação em um manipulador, e o manipulador de conclusão e o contexto são reservados para uso interno.