aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--os/hal/ports/SAMA/LLD/DMAv1/sama_xdmac.h14
1 files changed, 14 insertions, 0 deletions
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
@@ -144,6 +144,20 @@ typedef struct {
(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.
* @pre The channel must have been allocated using @p dmaChannelAllocate().