dman3.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00054 #ifndef ti_sdo_fc_dman3_DMAN3_
00055 #define ti_sdo_fc_dman3_DMAN3_
00056
00059
00060
00061 #ifdef __cplusplus
00062 extern "C" {
00063 #endif
00064
00065 #include <ti/xdais/ialg.h>
00066 #include <ti/xdais/idma3.h>
00067
00068 #define DMAN3_GTNAME "ti.sdo.fc.dman3"
00070 #define DMAN3_MAXGROUPS 20
00078 #define DMAN3_SOK 0
00079 #define DMAN3_EOUTOFMEMORY -1
00082 #define DMAN3_EFAIL -2
00083 #define DMAN3_EFREE -3
00085 #define DMAN3_EOUTOFTCCS -4
00088 #define DMAN3_EOUTOFPARAMS -5
00091 #define DMAN3_ETCCCONFIG -6
00097 #define DMAN3_EPARAMCONFIG -7
00104
00105
00114 typedef Bool (*DMAN3_ScratchAllocFxn)(IALG_Handle alg, Int mutexId,
00115 IALG_MemRec *memTab, Int numRecs);
00116
00122 typedef Void (*DMAN3_ScratchFreeFxn)(Int mutexId, Void *addr, Uns size);
00123
00124
00135 typedef struct DMAN3_Params {
00142 Uns *qdmaPaRamBase;
00143
00150 Uns maxPaRamEntries;
00151
00161 Uns paRamBaseIndex;
00162
00170 Uns numPaRamEntries;
00171
00178 Uns maxQdmaChannels;
00179
00186 Uns numQdmaChannels;
00187
00195 Uns *qdmaChannels;
00196
00210 Uns tccAllocationMaskH;
00211
00225 Uns tccAllocationMaskL;
00226
00237 Int heapInternal;
00238
00250 Int heapExternal;
00251
00260 unsigned char numTccGroup[DMAN3_MAXGROUPS];
00270 unsigned short numPaRamGroup[DMAN3_MAXGROUPS];
00281 Bool idma3Internal;
00282
00295 DMAN3_ScratchAllocFxn scratchAllocFxn;
00296
00308 DMAN3_ScratchFreeFxn scratchFreeFxn;
00309
00316 Uns nullPaRamIndex;
00317
00322 Uns maxTCs;
00323
00331 Uns *qdmaQueueMap;
00332
00337 Uns *queueTCMap;
00338
00343 Uns *queuePri;
00344
00372 Bool allowUnshared;
00373 } DMAN3_Params;
00374
00375
00379 extern DMAN3_Params DMAN3_PARAMS;
00380
00385 extern Uns ti_sdo_fc_dman3_DMAN3_numQdmaGroup[DMAN3_MAXGROUPS + 1];
00386
00387
00431 extern Int DMAN3_grantDmaChannels(Int groupId, IALG_Handle algHandle[],
00432 IDMA3_Fxns *dmaFxns[], Int numAlgs);
00433
00437 extern Void DMAN3_exit(Void);
00438
00480 extern Int DMAN3_createChannels(Int groupId, IDMA3_ChannelRec dmaTab[],
00481 Int numChans);
00482
00483
00491 extern Void DMAN3_init(Void);
00492
00493
00515 extern Int DMAN3_releaseDmaChannels(IALG_Handle algHandle[],
00516 IDMA3_Fxns *dmaFxns[], Int numAlgs);
00517
00518
00534 extern Int DMAN3_freeChannels(IDMA3_Handle channelTab[], Int numChans);
00535
00536
00537 #ifdef __cplusplus
00538 }
00539 #endif
00540
00541
00544 #endif
00545
00546
00547
00548
00549