Pergunta : Exportando a memória da semente para o espaço do usuário using o devmap_umem_setup

Olá!, o

I tem um excitador pseudo simples copiado consideravelmente muito fora da “do curso dos excitadores de dispositivo escrita”. O que eu estava tentando conseguir era de alocamento e de exportação a memória da semente deste excitador para o espaço app do usuário. Eu não estou interessado em exportar a memória do dispositivo daqui que eu usei somente o devmap_umem_setup no ponto de entrada do devmap (). Eu tenho um espaço app do usuário que chame o mmap para invocar a rotina do devmap. Baseado nos valores do retorno de todas as rotinas envolveu ambos no excitador tal como o ddi_umem_alloc, devmap_setup, devmap_umem_setup e a chamada do mmap no usuário app parece que o traço é bem sucedido. Entretanto quando eu ajusto algo no usuário app nesse endereço de memória retornado pelo mmap, eu não posso lê-lo para trás do excitador que usa o ddi_umem_cookie_t. O valor lido para trás no excitador aguçado pelo bolinho é diferente do que o um jogo pelo espaço app do usuário. Eu não estou usando nenhuma offsets no mmap e o devmap_umem_setup (que passam 0) e o comprimento que está sendo passado são 4096. Minha pergunta é faz o ddi_umem_cookie_t ajustado pelo ponto do ddi_umem_alloc à mesma posição de memória (após o que traduções de endereço que precisam de acontecer) que a chamada do mmap retornará dado que os offsets são 0 e o comprimento é 1 tamanho de página (4096) e o addr no mmap é 0.

user app:

fd=open (” /devices/pseudo/dummy@0: 0 ", O_RDWR);

mapadd = mmap64 (0, len, (PROT_READ|PROT_WRITE),
MAP_SHARED, fd, 0);


driver:

xsp->umem = ddi_umem_alloc (8192,
DDI_UMEM_SLEEP | DDI_UMEM_PAGEABLE, & (xsp->ucookie));

error = devmap_setup (colaborador, 0, asp, addrp, 4096,
prot, maxprot, bandeiras, credp);

error = devmap_umem_setup (punho, xsp->dip, ZERO, xsp->ucookie,
0, 4096, PROT_ALL, DEVMAP_DEFAULTS, ZERO); a compreensão do



My era que mim poderia alcançar a memória aguçado ao xsp->ucookie (espaço da semente) assim como do mapadd (espaço do usuário) mas aquela não parece ser a ajuda do case

Any seria muito appreciated.

Thanks
class= do

Resposta : Exportando a memória da semente para o espaço do usuário using o devmap_umem_setup

Eu penso do lado da semente, você quero alcançar as posições de memória aguçado pelo xsp->umem. Se isso não trabalha, poderia você afixar o excitador inteiro?
Outras soluções  
 
programming4us programming4us