IOMemoryCursor segment size issue
Hi, I am creating an IOMemoryCursor using: CursP = IOMemoryCursor::withSpecification ( SegFn, UINT_MAX, UINT_MAX, 1 ); which gives me a valid MemoryCursor. I then call CursP->genPhysicalSegments( MemDescP, start, Segments, NumSegments, MaxTransferSize, &BytesToTransfer ); to create the DMA address/len pairs I require in 'Segments'. When I debug SegFn, the Segment.length field is ALWAYS 4096 regardless of the values passed to the withSpecification function above. This gives me a max transfer size of 0.5Mb (128 entries), which is way too small for my requirements. Questions: 1. Why does my segment function ONLY get 4k segments? What am I doing wrong? 2. When 'wiring' the User buffer, do I just need to 'prepare' the MemoryDescriptor, or do I need to 'map' it as well? Thanks in advance, Peter Young _______________________________________________ darwin-kernel mailing list | darwin-kernel@lists.apple.com Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/darwin-kernel Do not post admin requests to the list. They will be ignored.
participants (1)
-
Peter Young