Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.arcetri.astro.it/irlab/doc/library/linux/khg/HyperNews/get/khg/297.html
Дата изменения: Thu Mar 23 12:38:00 2000 Дата индексирования: Wed Sep 15 00:52:38 2010 Кодировка: Поисковые слова: barnard 68 |
I am porting an application from Solaris and NT to Linux I need to DMA fairly large ( >1 MByte ) data areas to a user assigned buffer (assigned using malloc). I thus need to either 1) Lock down the pages manually in the driver and generate a physical scatter/gather table for the DMA (I assume that the malloc'ed pages will not be contiguous in physical memory) 2) Remap the user buffer into physically contiguous memory, without changing the user virtual mapping (i.e. same user virtual address) 3) Implement a Unix (Solaris) like physio routine to perform the DMA in chunks, akin to the read entry point uoi->buf mappings. Any pointers or ideas ? |