serviço do kernel xm_mapin

Propósito

Configura a endereçabilidade no contexto do processo atual.

Sintaxe

#include <sys/adspace.h>

int xm_mapin (dp, baddr, count, eaddr)
struct xmem *dp;caddr_t baddr;
size_t count;
caddr_t *eaddr;

Descrição

O serviço kernel xm_mapin configura a endereçabilidade no contexto do processo atual para o espaço de endereço indicado pelo descritor de memória cruzada apontado pelo parâmetro dp para os endereços [baddr, baddr + contagem -1].

Este serviço é criado especificamente para o Client File Systems, ou outros que precisam configurar endereçabilidade para um espaço de endereço definido por um descritor xmem.

Se o mapeamento solicitado se estender por um limite do segmento, nenhum mapeamento será realizado, e um código de retorno de EAGAIN é retornado para indicar que chamadas individuais para o serviço kernel xm_mapin são necessárias para mapear as partes do buffer em cada segmento. O serviço kernel xm_mapin deve ser chamado novamente com o baddr original e um contagem indicando o número de bytes para o próximo segmento. (O número de bytes para o próximo limite do segmento pode ser obtido usando o serviço de kernel xm_maxmap .) Isso fornecerá um endereço efetivo para usar para acessar esta porção do buffer. Em seguida, iterativamente, xm_mapin deve ser chamado com o endereço de limite do segmento (anterior baddr + contagem), e um novo contagem indicando o restante do buffer ou o próximo limite do segmento, o que for menor. Isso fornecerá outro endereço efetivo para usar para acessar a próxima porção do buffer.

Cada endereço configurado pelo serviço kernel xm_mapin deve ser desfeito com o serviço kernel xm_det quando ele não é mais necessário porque o serviço kernel xm_mapin usa atualmente o serviço kernel vm_att .

Parâmetros

Item Descrição
DP Aponta para o descritor de memória cruzada.
baddr Aponta para o buffer virtual.
count Especifica o comprimento do buffer virtual para mapear.
eaddr Aponta para onde o endereço efetivo para acessar o buffer de dados é retornado.

Valores De Retorno

Item Descrição
0 com sucesso. (Parâmetro de Referência eaddr contém o endereço a ser usado)
XMEM_FAIL Descritor de memória cruzada inválido.
EAGAIN Cruzamento de limite do segmento encontrado. Caller deve fazer chamadas separadas xm_mapin para mapear cada segmentos que valem.

Ambiente de Execução

O serviço kernel xm_mapin pode ser chamado a partir de ambientes de processo ou interrupção.