serviço do kernel io_map

Propósito

Anexar a um mapeamento de E/S

Sintaxe

#include <sys/adspace.h>

void *  io_map (io_handle)
io_handle_t io_handle;

Descrição

O serviço kernel io_map configura a enderesibilidade para o espaço de endereço de E/S definido pela estrutura io_handle_t . Ele retorna um endereço efetivo representando o início da região mapeada.

O serviço do kernel io_map é uma chamada de substituição do serviço do kernel iomem_att, que foi descontinuado no AIX 6.1. No entanto, o serviço kernel io_map pode substituir várias chamadas iomem_att dependendo do dispositivo, do driver e se várias regiões foram mapeadas em um único segmento virtual. Assim como o serviço de kernel iomem_att , este serviço não retorna nenhum tipo de falha. Se algo der errado, o sistema trava.

Há uma grande diferença entre io_map e iomem_att. iomem_att levou uma estrutura io_map contendo um endereço de ônibus e devolveu um endereço efetivo totalmente qualificado com qualquer deslocamento de byte do endereço de ônibus preservado e computado no endereço efetivo devolvido. O serviço kernel io_map sempre retorna um endereço efetivo alinhado a um segmento representando o início do segmento de E/S correspondente a io_handle_t. Manipulação de offsets de página e byte dentro do segmento são responsabilidades do driver de dispositivo.

O serviço kernel io_map está sujeito a nidificação de regras relativas ao número de anexas permitidas. Um número total do sistema de acoplamento temporário ativo é de 4. No entanto, recomenda-se que não mais de um acoplamento ativo seja de propriedade de um motorista ligando os serviços de kernel interrompidos ou DMA. Recomenda-se também que nenhum acoplamento ativo seja de propriedade de um motorista ao ligar para outros serviços do kernel.

Parâmetros

Item Descrição
io_handle Recebido em uma chamada de sucesso anterior para io_map_init. Descreve o espaço de E/S a ser anexado.

Ambiente de Execução

O serviço kernel io_map pode ser chamado a partir do ambiente de processo ou interrupção.

Valores De Retorno

O serviço kernel io_map retorna um endereço eficaz alinhado ao segmento para acessar os espaços de endereço de E/S.