Nios® II Software Developer Handbook

ID 683525
Date 8/28/2023
Public
Document Table of Contents

15.1.27. alt_dma_rxchan_ioctl()

Prototype

int alt_dma_rxchan_ioctl (alt_dma_rxchan dma,


 int req,


 void* arg)

Commonly Called By

C/C++ programs

Device drivers

Thread-safe

See description.

Available from ISR

See description.

Include

<sys/alt_dma.h>

Description

The alt_dma_rxchan_ioctl() function performs DMA I/O operations on the DMA receive channel, dma. The I/O operations are device specific. For example, some DMA drivers support options to control the width of the transfer operations. The input argument, req, is an enumeration of the requested operation; arg is an additional argument for the request. The interpretation of arg is request dependent.

Whether a call to alt_dma_rxchan_ioctl() is thread-safe, or can be called from an ISR, is device dependent. In general it safest to assume that it is not thread-safe.

Do not call the alt_dma_rxchan_ioctl() function while DMA transfers are pending, or unpredictable behavior could result.

For device-specific information about the Intel FPGA® DMA controller core, refer to the "DMA Controller Core" chapter in the Embedded Peripherals IP User Guide.

Return

A negative return value indicates failure. The interpretation of nonnegative return values is request specific.
Table 56.  Generic Requests DMA Might Support
Request Meaning
ALT_DMA_SET_MODE_8 Transfer data in units of 8 bits. The value of arg is ignored.
ALT_DMA_SET_MODE_16 Transfer data in units of 16 bits. The value of arg is ignored.
ALT_DMA_SET_MODE_32 Transfer data in units of 32 bits. The value of arg is ignored.
ALT_DMA_SET_MODE_64 Transfer data in units of 64 bits. The value of arg is ignored.
ALT_DMA_SET_MODE_128 Transfer data in units of 128 bits. The value of arg is ignored.
ALT_DMA_GET_MODE Return the transfer width. The value of arg is ignored.
ALT_DMA_TX_ONLY_ON The ALT_DMA_TX_ONLY_ON request causes a DMA channel to operate in a mode in which only the transmitter is under software control. The other side writes continuously from a single location. The address to which to write is the argument to this request.
ALT_DMA_TX_ONLY_OFF Return to the default mode, in which both the receive and transmit sides of the DMA can be under software control.
ALT_DMA_RX_ONLY_ON The ALT_DMA_RX_ONLY_ON request causes a DMA channel to operate in a mode in which only the receiver is under software control. The other side reads continuously from a single location. The address to read is the argument to this request.
ALT_DMA_RX_ONLY_OFF Return to the default mode, in which both the receive and transmit sides of the DMA can be under software control.