Hola, el
I tiene un pseudo conductor simple copiado bastante mucho “de la clase particular de los drivers de dispositivo de la escritura”. Qué intentaba alcanzar era de asignación y exportador de memoria del núcleo de este conductor al espacio app del usuario. No estoy interesado en la exportación de memoria del dispositivo por lo tanto que utilicé solamente el devmap_umem_setup en el punto de entrada del devmap (). Tengo un espacio app del usuario que llame el mmap para invocar la rutina del devmap. De acuerdo con los valores de vuelta de todas las rutinas implicó ambos en el conductor tal como ddi_umem_alloc, devmap_setup, devmap_umem_setup y la llamada del mmap en el usuario app aparece que el trazado es acertado. Sin embargo cuando fijo algo en el usuario app en esa dirección de memoria vuelta por el mmap, no puedo releerlo en el conductor que usa el ddi_umem_cookie_t. El valor leyó detrás en el conductor señalado por a la galleta es diferente que el un sistema por el espacio app del usuario. No estoy utilizando ninguna compensaciones en mmap y el devmap_umem_setup (que pasa 0) y la longitud que es pasada es 4096. Mi pregunta es hace el ddi_umem_cookie_t fijado por el punto del ddi_umem_alloc a la misma posición de memoria (después de cualesquiera conversiones de dirección que necesitan suceder) que la llamada del mmap volverá dado que las compensaciones son 0 y la longitud es 1 tamaño de página (4096) y el addr en mmap es 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, y (xsp->ucookie));
error = devmap_setup (revelador, 0, ASP, addrp, 4096, prot, maxprot, banderas, credp);
error = devmap_umem_setup (manija, xsp->dip, FALTA DE INFORMACIÓN, xsp->ucookie, 0, 4096, PROT_ALL, DEVMAP_DEFAULTS, FALTA DE INFORMACIÓN); la comprensión del
My era que yo podría tener acceso a la memoria señalado al xsp->ucookie (espacio del núcleo) así como del mapadd (espacio del usuario) pero ésa no parece ser la ayuda del case
Any sería mucho appreciated.
Thanks
class= del
|