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
00033
00034
00035
00036
00049 #ifndef Engine_
00050 #define Engine_
00051
00052 #ifdef __cplusplus
00053 extern "C" {
00054 #endif
00055
00056
00057 #include <ti/sdo/ce/Server.h>
00058 #include <ti/sdo/ce/ipc/Comm.h>
00059 #include <ti/xdais/ialg.h>
00060 #include <ti/sdo/ce/node/node.h>
00061
00062 #include <stddef.h>
00063 #include <stdio.h>
00064
00067
00076 #define Engine_MODNAME "ti.sdo.ce.Engine"
00077
00081 typedef struct Engine_Obj *Engine_Handle;
00082
00086 typedef Int Engine_Error;
00087
00088 #define Engine_EOK 0
00089 #define Engine_EEXIST 1
00090 #define Engine_ENOMEM 2
00091 #define Engine_EDSPLOAD 3
00092 #define Engine_ENOCOMM 4
00095 #define Engine_ENOSERVER 5
00096 #define Engine_ECOMALLOC 6
00097 #define Engine_ERUNTIME 7
00098 #define Engine_ECODECCREATE 8
00099 #define Engine_ECODECSTART 9
00104 #define Engine_EINVAL 10
00105 #define Engine_EBADSERVER 11
00106 #define Engine_ENOTAVAIL 12
00107 #define Engine_EWRONGSTATE 13
00108 #define Engine_EINUSE 14
00111 #define Engine_ENOTFOUND 15
00112 #define Engine_ETIMEOUT 16
00119 typedef struct Engine_NodeObj *Engine_Node;
00120
00124 #define Engine_FOREVER Comm_FOREVER
00125
00133 typedef struct Engine_Attrs {
00134 String procId;
00138 } Engine_Attrs;
00139
00145 typedef struct Engine_AlgInfo {
00146 Int algInfoSize;
00147 String name;
00148 String *typeTab;
00149 Bool isLocal;
00150 } Engine_AlgInfo;
00151
00155 extern Engine_Attrs Engine_ATTRS;
00159 typedef Int Engine_Ctrl;
00160
00161 #define Engine_CEXIT 0
00162 #define Engine_MAXSEGNAMELENGTH 32
00163
00169 typedef enum Engine_CachedMemType {
00170 Engine_USECACHEDMEM_DEFAULT = -1,
00171 Engine_USECACHEDMEM_NONCACHED = 0,
00172 Engine_USECACHEDMEM_CACHED = 1
00173 } Engine_CachedMemType;
00174
00175
00176
00177
00178
00179 typedef struct Engine_AlgDesc {
00180 String name;
00181 NODE_Uuid uuid;
00182 IALG_Fxns *fxns;
00183 Ptr idmaFxns;
00184 String *typeTab;
00185 Bool isLocal;
00186 Int groupId;
00187 Int rpcProtocolVersion;
00188 Ptr iresFxns;
00189 Void *codecClassConfig;
00190 Engine_CachedMemType memType;
00191 } Engine_AlgDesc;
00192
00198 #define Engine_GETALGDESCFXN "GetEngineAlgDesc"
00199
00200
00201
00202
00203
00211 typedef struct Engine_DllAlgDesc {
00215 NODE_Uuid uuid;
00216
00220 IALG_Fxns *fxns;
00221
00226 Ptr idmaFxns;
00227
00239 String *typeTab;
00240
00245 Ptr iresFxns;
00246
00252 Void *codecClassConfig;
00253 } Engine_DllAlgDesc;
00254
00255
00256
00257
00258
00259
00260
00270 typedef Int (*Engine_GetAlgDescFxn)(Engine_DllAlgDesc *dllAlgDesc);
00271
00272
00273
00274
00275
00282 typedef struct Engine_DllAlgParams {
00283 String name;
00284 Bool isLocal;
00285 Int groupId;
00286 } Engine_DllAlgParams;
00287
00288
00291
00292
00293
00294 typedef struct Engine_AlgCreateAttrs {
00295 Bool useExtHeap;
00300 Int priority;
00302 } Engine_AlgCreateAttrs;
00303
00304
00305
00306
00307 typedef struct Engine_Desc {
00308 String name;
00309 Engine_AlgDesc *algTab;
00310 String remoteName;
00311 String linkCfg;
00312 Int numAlgs;
00313 Int heapId;
00314 } Engine_Desc;
00315
00316
00317
00318
00319 typedef struct Engine_Config {
00320 Engine_Desc *engineTab;
00321 String localEngine;
00322 } Engine_Config;
00323
00324
00325
00326
00327
00328 typedef struct Engine_MemStat {
00329 Char name[Engine_MAXSEGNAMELENGTH + 1];
00330 Uint32 base;
00331 Uint32 size;
00332 Uint32 used;
00333 Uint32 maxBlockLen;
00334 } Engine_MemStat;
00335
00336
00337 extern Engine_AlgCreateAttrs Engine_ALGCREATEATTRS;
00338
00339
00340
00341
00342 extern Engine_Config Engine_config;
00343
00347
00348
00349
00350
00372 extern Engine_Error Engine_add(String engineName, String remoteName);
00373
00374
00375
00376
00403 extern Engine_Error Engine_addAlg(Engine_Handle engine,
00404 String location, Engine_DllAlgParams *pAlgParams);
00405
00406
00407
00408
00424 extern Engine_Error Engine_removeAlg(Engine_Handle engine, String name);
00425
00428
00429
00430
00431 extern Int Engine_call(Engine_Node node, Comm_Msg *msg);
00432
00433
00434
00435
00436 extern Int Engine_callAsync(Engine_Node node, Comm_Msg *msg);
00437
00438
00439
00440
00441 extern Int Engine_callWait(Engine_Node node, Comm_Msg *msg, UInt timeout);
00442
00443
00444
00445
00446 extern Int Engine_ctrlNode(Engine_Node node, Comm_Msg *msg, Engine_Ctrl code);
00447
00450
00451
00452
00467 extern Void Engine_close(Engine_Handle engine);
00468
00470
00471
00472
00498 extern Engine_Node Engine_createNode(Engine_Handle engine, String name,
00499 size_t msgSize, IALG_Params *nodeAttrs, Engine_AlgCreateAttrs *attrs);
00500
00501
00502
00503
00504
00535 extern Engine_Node Engine_createNode2(Engine_Handle engine, String name,
00536 size_t msgSize, IALG_Params *nodeAttrs, Int nodeAttrsSize,
00537 Engine_AlgCreateAttrs *attrs);
00538
00539
00540
00541
00542
00543 extern Void Engine_deleteNode(Engine_Node node);
00544
00545
00546
00547
00561 extern Engine_Error Engine_getAlgMemRecs(Engine_Node node, IALG_MemRec *memTab, Int size,
00562 Int *numRecs);
00563
00564
00565
00566
00578 extern Engine_Error Engine_getAlgNumRecs(Engine_Node node, Int *numRecs);
00579
00580
00581
00582
00583 extern String Engine_getConstName(Engine_Handle engine, String name,
00584 String type);
00585
00586
00587
00588
00589 extern IALG_Fxns *Engine_getFxns(Engine_Handle svr, String name, String type,
00590 Bool *isLocal, Ptr *idmaFxns, Ptr *iresFxns, Int *groupId,
00591 Engine_CachedMemType *memType);
00592
00593
00594
00595
00596 extern Int Engine_getMemId(Engine_Handle engine);
00597
00598
00599
00600
00601 extern Engine_Handle Engine_getLocalEngine(Void);
00602
00603
00604
00605
00606 extern Engine_Handle Engine_getEngine(Engine_Node node);
00607
00608
00609
00610
00611 extern Engine_Error Engine_getMemStat(Server_Handle server, Int segNum,
00612 Engine_MemStat *stat);
00613
00614
00615
00616
00617 extern Engine_Error Engine_getNumMemSegs(Server_Handle server, Int *numSegs);
00618
00619
00620
00621
00622 extern String Engine_getProcId(Engine_Handle engine);
00623
00624
00625
00626
00627 extern Bool Engine_hasServer(Engine_Handle engine);
00628
00629
00630
00631
00632 extern Void Engine_init(Void);
00633
00634
00635
00636
00637 extern UInt32 Engine_getRemoteVisa(Engine_Node node);
00638
00639
00640
00641
00642 extern Ptr Engine_getCodecClassConfig(Engine_Handle engine, String name,
00643 String type);
00644
00645
00646
00647
00648 extern Void Engine_getNodeQueues(Engine_Node node, Comm_Id *stdIn, Comm_Handle *stdOut);
00649
00650
00651
00652
00653 extern Engine_Error Engine_redefineHeap(Server_Handle server, String name,
00654 Uint32 base, Uint32 size);
00655
00656
00657
00658
00659 extern Bool Engine_releaseTraceToken(Server_Handle server);
00660
00661
00662
00663
00664 extern Engine_Error Engine_requestTraceToken(Server_Handle server);
00665
00666
00667
00668
00669 extern Engine_Error Engine_restoreHeap(Server_Handle server, String name);
00670
00673
00674
00675
00718 extern Engine_Handle Engine_open(String name, Engine_Attrs *attrs,
00719 Engine_Error *ec);
00720
00721
00722
00723
00749 extern Int Engine_fwriteTrace(Engine_Handle engine, String prefix, FILE *out);
00750
00751
00752
00753
00788 extern Engine_Error Engine_getAlgInfo(String name, Engine_AlgInfo *algInfo,
00789 Int index);
00790
00791
00792
00793
00822 extern Int Engine_getCpuLoad(Engine_Handle engine);
00823
00824
00825
00826
00838 extern Engine_Error Engine_getLastError(Engine_Handle engine);
00839
00840
00841
00842
00851 extern String Engine_getName(Engine_Handle engine);
00852
00853
00854
00855
00856
00880 extern Engine_Error Engine_getNumAlgs(String name, Int *numAlgs);
00881
00882
00883
00884
00899 extern Server_Handle Engine_getServer(Engine_Handle engine);
00900
00901
00902
00903
00904
00931 extern UInt32 Engine_getUsedMem(Engine_Handle engine);
00932
00933
00934
00935
00936
00951 extern Engine_Error Engine_remove(String engineName);
00952
00953
00954
00955
00956
00976 extern Int Engine_setTrace(Engine_Handle engine, String mask);
00977
00980 #ifdef __cplusplus
00981 }
00982 #endif
00983
00984 #endif
00985
00986
00987
00988
00989