Fråga : Exportera kernelminne till användareutrymme using devmap_umem_setup

Hi

I har ett enkelt pseudonätt för chaufför som kopieras mycket av tutorialen ”för handstilapparatchaufförer”. Vad jag var pröva att uppnå, var tilldela och exportera kernelminne från denna chaufför till användareutrymmet app. Förmiddag som I inte intresserades i exportera apparatminne hence jag använde endast, devmap_umem_setup i tillträdeet för devmap () pekar. Jag har ett användareutrymme app den appellmmap som åkallar den rutinmässiga devmapen. Baserat på returen värderar allra de involverade rutinerna båda i chauffören liksom ddi_umem_alloc, devmap_setup, devmap_umem_setup, och mmapappellen i användaren app den verkar som om kartlägga är lyckat. , när emellertid I-uppsättningen något i användaren app på det minne tilltalar gånget tillbaka av mmap, I-förmiddag som inte är kompetent att läsa den som är tillbaka från chauffören using ddi_umem_cookie_ten. Värdera läste i chauffören som pekades till av kakan, är tillbaka olik än den en uppsättningen vid användareutrymmet app. Förmiddag I inte using några offsetar både i mmap och devmap_umem_setup (som passerar 0) och längden som passeras, är 4096. Mitt ifrågasätta är gör ddi_umem_cookie_tuppsättningen vid ddi_umem_alloc pekar till det samma minnesläget (efter, allt vad tilltalar översättningar som behöver att hända) att mmapappellen ska given retur att offsetarna är 0 och längden är 1 sida storleksanpassar (4096), och addren i mmap är 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 (bärare, 0, asp, addrp, 4096,
prot, maxprot, sjunker, credp);

error = devmap_umem_setup (handtag, xsp->dip, OGILTIGT, xsp->ucookie,
0, 4096, PROT_ALL, DEVMAP_DEFAULTS som, ÄR OGILTIGA); överenskommelse för



My var att mig skulle är kompetent att ta fram minnet som pekades till xsp->ucookie (kernelutrymme) as well as från mapadden (användareutrymme) men det verkar inte för att vara den skulle hjälpen för case

Any är mycket appreciated.

Thanks
" klar "

Svar : Exportera kernelminne till användareutrymme using devmap_umem_setup

I funderare från kernelsidan, du önskar att ta fram minneslägena som pekas till av xsp->umem. Om det inte fungerar, kunde du posta den hela chauffören?
Andra lösningar  
 
programming4us programming4us