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
|