53 #ifndef ti_sdo_fc_edmamgr_EdmaMgr_
54 #define ti_sdo_fc_edmamgr_EdmaMgr_
66 #include <ti/sdo/fc/edma3/edma3_config.h>
76 typedef struct _EdmaMgr_Channel {
87 struct _EdmaMgr_Channel *chainedChannel;
91 #define EdmaMgr_SUCCESS 0
92 #define EdmaMgr_ERROR_INVARG -1
93 #define EdmaMgr_ERROR_INVCFG -2
94 #define EdmaMgr_ERROR_RMANINIT -3
95 #define EdmaMgr_ERROR_INVHANDLE -4
96 #define EdmaMgr_ERROR_FREE -5
140 int32_t max_linked_transfers
144 #define EdmaMgr_MAX_NUM_MEMRECS_LARGE 1
151 typedef struct _EdmaMgr_ConfigLarge {
154 int32_t max_num_lines;
226 #if defined(EDMAMGR_INLINE_ALL)
227 #include <ti/sdo/fc/edmamgr/edmamgr_xfer.h>
401 void *restrict src[],
402 void *restrict dst[],
404 int32_t num_transfers
425 void *restrict src[],
426 void *restrict dst[],
430 int32_t num_transfers
451 void *restrict src[],
452 void *restrict dst[],
456 int32_t num_transfers
477 void *restrict src[],
478 void *restrict dst[],
482 int32_t num_transfers
505 void *restrict src[],
506 void *restrict dst[],
511 int32_t num_transfers
624 void *restrict src[],
625 void *restrict dst[],
626 int32_t num_transfers
Void(* IRES_YieldFxn)(IRES_YieldResourceType resourceType, IRES_YieldContextHandle algYieldContext, IRES_YieldArgs yieldArgs)
The 'yield function' pointer and 'yield arguments' are supplied to an algorithm during its IRES inter...
Definition: ires.h:159
int32_t EdmaMgr_getSizesLarge(EdmaMgr_ConfigLarge *cfg, IALG_MemRec memTab[])
Get buffer requirements for a large channel.
Memory records.
Definition: ialg.h:142
int32_t EdmaMgr_copy2D1D(EdmaMgr_Handle h, void *restrict src, void *restrict dst, int32_t num_bytes, int32_t num_lines, int32_t pitch)
Perform a 2D->1D transfer.
Object returned to the algorithm requesting EDMA3 resources.
Definition: ires_edma3Chan.h:385
int32_t EdmaMgr_copy1D2DLarge(EdmaMgr_Handle h, void *restrict src, void *restrict dst, int32_t num_bytes, int32_t num_lines, int32_t pitch)
Perform a 1D->2D large transfer.
EdmaMgr_Handle EdmaMgr_allocLarge(EdmaMgr_ConfigLarge *cfg, IALG_MemRec memTab[])
Allocate an EdmaMgr channel for "Large" 1D2D or 2D1D transfers which have a pitch outside the range [...
struct ECPY_Obj * ECPY_Handle
Handle to "logical" ECPY Channel.
Definition: ecpy.h:195
int32_t EdmaMgr_copyFast(EdmaMgr_Handle h, void *restrict src, void *restrict dst)
Perform a fast copy. This API inherits the transfer configuration of a previous transfer and only mod...
int32_t EdmaMgr_copyLinkedFast(EdmaMgr_Handle h, void *restrict src[], void *restrict dst[], int32_t num_transfers)
Perform a linked fast copy. This API inherits the transfer configuration of a previous transfer and o...
IRES Interface Definitions - Allows algorithms to request and receive handles representing private lo...
int32_t EdmaMgr_copy1D2DLinked(EdmaMgr_Handle h, void *restrict src[], void *restrict dst[], int32_t num_bytes[], int32_t num_lines[], int32_t pitch[], int32_t num_transfers)
Perform a group of linked 1D->2D transfers.
int32_t EdmaMgr_copy2D2DLinked(EdmaMgr_Handle h, void *restrict src[], void *restrict dst[], int32_t num_bytes[], int32_t num_lines[], int32_t pitch[], int32_t num_transfers)
Perform a group of linked 2D->2D transfers.
This header defines all types, constants, and functions defined by XDAIS for algorithms.
int32_t EdmaMgr_copy2D2DSep(EdmaMgr_Handle h, void *restrict src, void *restrict dst, int32_t num_bytes, int32_t num_lines, int32_t src_pitch, int32_t dst_pitch)
Perform a 2D->2D transfer of buffers with different pitches.
IRES EDMA3CHAN PROTOCOL Interface Definitions - Allows algorithms to request and receive handles repr...
int32_t EdmaMgr_copy2D2DSepLinked(EdmaMgr_Handle h, void *restrict src[], void *restrict dst[], int32_t num_bytes[], int32_t num_lines[], int32_t src_pitch[], int32_t dst_pitch[], int32_t num_transfers)
Perform a group of linked 2D->2D transfers with different pitches.
int32_t EdmaMgr_free(EdmaMgr_Handle h)
Frees an EdmaMgr channel.
ECPY Definitions - High performance functional library for use with the EDMA3 DMA peripheral...
void * EdmaMgr_Handle
Handle to an EdmaMgr instance.
Definition: edmamgr.h:72
int32_t EdmaMgr_copy2D1DLarge(EdmaMgr_Handle h, void *restrict src, void *restrict dst, int32_t num_bytes, int32_t num_lines, int32_t pitch)
Perform a 2D->1D large transfer.
struct _EdmaMgr_ConfigLarge EdmaMgr_ConfigLarge
Configuration for a large channel.
int32_t EdmaMgr_copy2D2D(EdmaMgr_Handle h, void *restrict src, void *restrict dst, int32_t num_bytes, int32_t num_lines, int32_t pitch)
Perform a 2D->2D transfer of buffers with the same pitch.
EdmaMgr_Handle EdmaMgr_alloc(int32_t max_linked_transfers)
Allocate an EdmaMgr channel.
int32_t EdmaMgr_copy2D1DLinked(EdmaMgr_Handle h, void *restrict src[], void *restrict dst[], int32_t num_bytes[], int32_t num_lines[], int32_t pitch[], int32_t num_transfers)
Perform a group of linked 2D->1D transfers.
int32_t EdmaMgr_copy1D1DLinked(EdmaMgr_Handle h, void *restrict src[], void *restrict dst[], int32_t num_bytes[], int32_t num_transfers)
Perform a group of linked 1D->1D transfers.
EDMA3 Linked Transfer Protocol Arguments definition.
Definition: ires_edma3Chan.h:309
Specifies the algorithm specific handles and context save & restore function pointers and arguments t...
Definition: ires.h:84
int32_t EdmaMgr_copy1D1D(EdmaMgr_Handle h, void *restrict src, void *restrict dst, int32_t num_bytes)
Perform a single 1D->1D transfer.
Void * IRES_YieldArgs
Definition: ires.h:140
int32_t EdmaMgr_copy1D2D(EdmaMgr_Handle h, void *restrict src, void *restrict dst, int32_t num_bytes, int32_t num_lines, int32_t pitch)
Perform a 1D->2D transfer.
Configuration for a large channel.
Definition: edmamgr.h:154
void EdmaMgr_wait(EdmaMgr_Handle h)
Wait for transfers to complete.