Hi,
I имеет просто псевдо водителя довольно очень скопированного с «консультации водителей приспособления сочинительства». Я пытался достигнуть было размещающ и ехпортирующ память стерженя от этого водителя к космосу app потребителя. Я не заинтересован в ехпортировать память приспособления следовательно, котор я только использовал devmap_umem_setup в пункте входа devmap (). Я имею космос app потребителя вызывает mmap для того чтобы призвать режим devmap. Я основан на возвращенных значениях всех режимов задействованных оба в водителе как ddi_umem_alloc, devmap_setup, devmap_umem_setup и звонок mmap в потребителе app он кажется составлять карту успешно. Однако когда я устанавливаю что-то в потребителе app на тот адрес памяти возвращенный mmap, я не могу прочитать его назад от водителя используя ddi_umem_cookie_t. Значение прочитало назад в водителе указанном к печенью по-разному чем один комплект космосом app потребителя. Я не использую никакие смещения и в mmap и devmap_umem_setup (проходя 0) и будучи ым длина 4096. Мое вопрос в том, что делает ddi_umem_cookie_t установленное пунктом ddi_umem_alloc к такому же участку памяти (после любых переводов адреса нужно случиться) что звонок mmap возвратит после того как он дал что смещения 0 и длина 1 размер страницы (4096) и addr в 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 (dev, 0, asp, addrp, 4096, prot, maxprot, флаги, credp);
error = devmap_umem_setup (ручка, xsp->dip, NULL, xsp->ucookie, 0, 4096, PROT_ALL, DEVMAP_DEFAULTS, NULL); вникание
My было что я будет достигнуть памяти указанный к xsp->ucookie (космосу стерженя) также, как от mapadd (космос потребителя) но то не кажется, что будет помощью case
Any было бы много appreciated.
Thanks
class=
|