Vraag : Het uitvoeren pitgeheugen aan gebruiker het ruimte gebruiken devmap_umem_setup

Hallo, heeft

I een eenvoudige pseudodiebestuurder vrij veel van leerprogramma het van de „Schrijvende Bestuurders van het Apparaat“ wordt gekopi�ërd. Welk ik probeerde om te bereiken wezen en voerden pitgeheugen van deze bestuurder toe uit naar de gebruiker ruimteapp. Ik ben niet geinteresseerd in het uitvoeren apparatengeheugen vandaar gebruikte ik slechts devmap_umem_setup in punt het van de devmap () ingang. Ik heb een gebruiker ruimteapp die mmap roept om de devmaproutine aan te halen. Gebaseerd op terugkeer impliceerden de waarden van alle routines allebei in de bestuurder zoals ddi_umem_alloc, devmap_setup, devmap_umem_setup en de mmapvraag in de gebruiker app het verschijnt de afbeelding succesvol is. Nochtans toen ik iets in de gebruiker app op dat die geheugenadres plaatste door mmap is teruggekeerd, kan ik niet het van de bestuurder nog eens voorlezen die ddi_umem_cookie_t gebruiken. De waarde in de bestuurder nog eens voor wordt gelezen aan door het koekje wordt gericht is verschillend dan door de gebruiker die ruimteapp plaatste. Ik gebruik geen compensatie zowel in mmap en devmap_umem_setup (overgaand 0) en de lengte die ben 4096 worden overgegaan. Mijn die vraag is doet ddi_umem_cookie_t door ddi_umem_allocpunt aan de zelfde geheugenplaats wordt geplaatst (na de adresvertalingen die moeten gebeuren) dat mmap de vraag zal terugkeren gezien de compensatie 0 zijn en de lengte is 1 paginagrootte (4096) en addr in mmap is 0.

user app:

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

mapadd = mmap64 (0, len, (PROT_READ|PROT_WRITE), f-d
MAP_SHARED, 0);


driver:

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

error = devmap_setup (dev, 0, aspis, addrp, 4096,
prot, maxprot, vlaggen, credp);

error = devmap_umem_setup (het ONGELDIGE handvat, xsp->dip, xsp->ucookie,
0, 4096, PROT_ALL, DEVMAP_DEFAULTS, VERKLAART nietig); />My het begrip



ucookie (pitruimte) wordt gericht evenals van mapadd (gebruikersruimte) maar dat niet de case

Any zou zijn veel appreciated.

Thanks

Antwoord : Het uitvoeren pitgeheugen aan gebruiker het ruimte gebruiken devmap_umem_setup

Ik denk van de pitkant, wilt u tot de geheugenplaatsen toegang hebben die aan door xsp->umem worden gericht. Als dat niet werkt, kon u de gehele bestuurder posten?
Andere oplossingen  
 
programming4us programming4us