Dave, thanks for the comments.

Do I have to allocate lis_dma_addr_t structure myself,
prior calling lis_pci_alloc_consistent()?
Ot it is allocated by the lis_pci_alloc_consistent()?

Also, can you comment on 2nd question?
About how to allocate DMA-able buffers using allocb()...

thanks a lot for your comments,
--
Eugene




David Grothe <[EMAIL PROTECTED]> wrote:

>The routine that you call to turn a dma handle into a bus address is this one:
>
>u32 � � lis_pci_dma_handle_to_32(lis_dma_addr_t *dma_handle);
>
>Note that these LiS DMA routines all have similar names to routines defined 
>in the kernel. �See the file /usr/src/linux/Documentation/DMA-mapping.txt 
>for more information.
>
>LiS does not provide an abstraction for every DMA function offered by the 
>kernel. �In particular it restricts itself to the non-scatter-gather 
>mappings, the ones labeled as "single".
>
>-- Dave
>
>At 10:38 AM 10/7/2003 Tuesday, Eugene LiS User wrote:
>>Hello,
>>
>>I have a couple of PCI DMA related questions.
>>
>>
>>1.
>>
>>I intend to use lis_pci_alloc_consistent() function.
>>I'm naturally interested in the allocated bus address.
>>Looking into sources I see the following comment:
>>
>>
>>/*
>> �* Allocate 'size' bytes and return the CPU pointer to it via return value.
>> �* Return the DMA address via 'dma_handle'. �<----------------
>> �*/
>>void � �*lis_pci_alloc_consistent(lis_pci_dev_t �*dev,
>> � � � � � � � � � � � � � � � � � size_t � � � � �size,
>> � � � � � � � � � � � � � � � � � lis_dma_addr_t *dma_handle);
>>
>>
>>
>>Looking into the lis_dma_addr structure I do not see
>>any name that looks like bus address
>>
>>
>>typedef struct lis_dma_addr
>>{
>> � � unsigned � � � opaque[8] ; � � � � �/* opaque kernel structure */
>> � � int � � � � � �size ; � � � � � � � /* saved size */
>> � � void � � � � �*vaddr ; � � � � � � �/* cpu virtual addr */
>> � � lis_pci_dev_t *dev ; � � � � � � � �/* PCI device */
>> � � int � � � � � �direction ; � � � � �/* for map/unmap single */
>>
>>} lis_dma_addr_t ;
>>
>>Where can I get allocated bus address from?
>>
>>Also, do I have to allocate that structure myself?
>>If that is the case, what info should I fill into �the lis_dma_addr
>>pointed to by the �dma_handle prior calling �lis_pci_alloc_consistent()?
>>Size, dev, direction?
>>
>>
>>2.
>>
>>I use allocb() to allocate message buffers.
>>How can I make those message buffers �DMA-able?
>>
>>On HPUX I could achieve this using wsio_map() function.
>>Is there an elegant way to do the similar thing on Linux/LiS?
>>
>>
>>thanks for your help,
>>--
>>Eugene
>>
>>
>>__________________________________________________________________
>>McAfee VirusScan Online from the Netscape Network.
>>Comprehensive protection for your entire computer. Get your free trial today!
>>http://channels.netscape.com/ns/computing/mcafee/index.jsp?promo=393397
>>
>>Get AOL Instant Messenger 5.1 free of charge. �Download Now!
>>http://aim.aol.com/aimnew/Aim/register.adp?promo=380455
>>
>>_______________________________________________
>>Linux-streams mailing list
>>[EMAIL PROTECTED]
>>http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams
>
>

__________________________________________________________________
McAfee VirusScan Online from the Netscape Network.
Comprehensive protection for your entire computer. Get your free trial today!
http://channels.netscape.com/ns/computing/mcafee/index.jsp?promo=393397

Get AOL Instant Messenger 5.1 free of charge.  Download Now!
http://aim.aol.com/aimnew/Aim/register.adp?promo=380455

_______________________________________________
Linux-streams mailing list
[EMAIL PROTECTED]
http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams

Reply via email to