« Отговор #2 -: Aug 08, 2006, 17:47 »
Ъъъъъм, това е интересен въпрос, всъщност не е невъзможно.
Да предадеш pointer към данни от кърнълспейс към юзърспейс-а и оттам да си ги четеш естествено няма да стане, поради ред причини, едната от които е, че от гледна точка на юзърския процес, адресът от указателя сочи към съвсем различно място във физическата памет (не виждам как при многозадачна операционна система нещата да не стоят така).
Да приемем, че юзърския процес има съответните привилегии (уид0), единият сигурен начин да направиш това е чрез /dev/mem (/dev/kmem сигурно щеше да върши перфектна работа, ама тц, не става така от доста време насам)). Вероятно може да се спретне друг трик, но наистина нямам идея.
Друг е въпроса, че не е нужно (а и вероятно е малко грубо) трансфера на данни да става по такъв начин - иначе начини колкото искаш - примерно сокети, copy_to_user() - последното вероятно е точно това, което ти трябва.
Между другото, какъв драйвер разработваш, че ти трябват такива обеми данни? Просто ми стана интересно...