Visible to Intel only — GUID: iga1401397409932
Ixiasoft
Visible to Intel only — GUID: iga1401397409932
Ixiasoft
32.7.7. alt_avalon_sgdma_construct_mem_to_stream_desc()
Prototype: | void alt_avalon_sgdma_construct_mem_to_stream_desc(alt_sgdma_descriptor *desc, alt_sgdma_descriptor *next, alt_u32 *read_addr, alt_u16 length, int read_fixed, int generate_sop, int generate_eop, alt_u8 atlantic_channel) |
Thread-safe: | Yes. |
Available from ISR: | Yes. |
Include: | <altera_avalon_sgdma.h>, <altera_avalon_sgdma_descriptor.h>, <altera_avalon_sgdma_regs.h> |
Parameters: | *desc—a pointer to the descriptor being constructed. *next—a pointer to the “next” descriptor. This does not need to be a complete or functional descriptor, but must be properly allocated. *read_addr—the first read address for the SG-DMA transfer. length—the number of bytes for the transfer. read_fixed—if non-zero, the SG-DMA reads from a fixed address. generate_sop—if non-zero, the SG-DMA generates a SOP on the Avalon® -ST interface when commencing the transfer. generate_eop—if non-zero, the SG-DMA generates an EOP on the Avalon® -ST interface when completing the transfer. atlantic_channel—an 8-bit Avalon® -ST channel number. Channels are currently not supported. Set this parameter to 0. |
Returns: | void |
Description: | This function constructs a single SG-DMA descriptor in the memory specified in alt_avalon_sgdma-descriptor *desc for an Avalon® -MM to Avalon® -ST transfer. The destination (write) data for the transfer goes to the Avalon® -ST interface connected to the SG-DMA controller's streaming write port. The function sets the OWNED_BY_HW bit in the descriptor's control field, marking the completed descriptor as ready to run. The descriptor is processed when the SG-DMA controller receives the descriptor and the RUN bit is 1. The next field of the descriptor being constructed is set to the address in *next. The OWNED_BY_HW bit of the descriptor at *next is explicitly cleared. Once the SG-DMA completes processing of the *desc, it does not process the descriptor at *next until its OWNED_BY_HW bit is set. To create a descriptor chain, you can repeatedly call this function using the previous call's *next pointer in the *desc parameter. You are responsible for properly allocating memory for the creation of both the descriptor under construction as well as the next descriptor in the chain. Descriptors must be in a memory device hosted by the SG-DMA controller’s chain read and chain write Avalon® host ports. Care must be taken to ensure that both *desc and *next point to areas of memory hosted by the controller. |