diff --git a/os/hal/ports/SAMA/LLD/DMAv1/sama_xdmac.h b/os/hal/ports/SAMA/LLD/DMAv1/sama_xdmac.h index 84f75f855..1f0921903 100644 --- a/os/hal/ports/SAMA/LLD/DMAv1/sama_xdmac.h +++ b/os/hal/ports/SAMA/LLD/DMAv1/sama_xdmac.h @@ -143,6 +143,20 @@ typedef struct { #define dmaGetChannelInt(dmachp) \ (dmachp)->xdmac->XDMAC_CHID[(dmachp)->chid].XDMAC_CIS +/** + * @brief Returns the number of transfers to be performed. + * @note This function can be invoked in both ISR or thread context. + * @pre The stream must have been allocated using @p dmaChannelAllocate(). + * @post After use the stream can be released using @p dmaChannelRelease(). + * + * @param[in] dmachp pointer to a @p sama_dma_channel_t structure + * @return The number of transfers to be performed. + * + * @special + */ +#define dmaChannelGetTransactionSize(dmachp) \ + ((size_t)((dmachp)->xdmac->XDMAC_CHID[(dmachp)->chid].XDMAC_CUBC)) + /** * @brief Associates a source to a DMA channel. * @note This function can be invoked in both ISR or thread context.