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
00051 #ifndef Engine_
00052 #define Engine_
00053
00054 #ifdef __cplusplus
00055 extern "C" {
00056 #endif
00057
00058
00059 #include <ti/sdo/ce/ServerDefs.h>
00060 #include <ti/sdo/ce/ipc/Comm.h>
00061 #include <ti/xdais/ialg.h>
00062 #include <ti/sdo/ce/node/node.h>
00063
00064 #include <stddef.h>
00065 #include <stdio.h>
00066
00069
00085 #define Engine_MODNAME "ti.sdo.ce.Engine"
00086
00090 typedef struct Engine_Obj *Engine_Handle;
00091
00095 typedef Int Engine_Error;
00096
00097 #define Engine_EOK 0
00098 #define Engine_EEXIST 1
00099 #define Engine_ENOMEM 2
00100 #define Engine_EDSPLOAD 3
00101 #define Engine_ENOCOMM 4
00104 #define Engine_ENOSERVER 5
00105 #define Engine_ECOMALLOC 6
00106 #define Engine_ERUNTIME 7
00107 #define Engine_ECODECCREATE 8
00108 #define Engine_ECODECSTART 9
00113 #define Engine_EINVAL 10
00114 #define Engine_EBADSERVER 11
00115 #define Engine_ENOTAVAIL 12
00116 #define Engine_EWRONGSTATE 13
00117 #define Engine_EINUSE 14
00120 #define Engine_ENOTFOUND 15
00121 #define Engine_ETIMEOUT 16
00128 typedef struct Engine_NodeObj *Engine_Node;
00129
00133 #define Engine_FOREVER Comm_FOREVER
00134
00143 typedef struct Engine_Attrs {
00144 String procId;
00148 } Engine_Attrs;
00149
00155 typedef struct Engine_AlgInfo {
00156 Int algInfoSize;
00157 String name;
00158 String *typeTab;
00159 Bool isLocal;
00160 } Engine_AlgInfo;
00161
00174 typedef struct Engine_AlgInfo2 {
00175 Int algInfoSize;
00176 String name;
00177 String types;
00178 Bool isLocal;
00179 } Engine_AlgInfo2;
00180
00189 extern Engine_Attrs Engine_ATTRS;
00193 typedef Int Engine_Ctrl;
00194
00195 #define Engine_CEXIT 0
00196 #define Engine_MAXSEGNAMELENGTH 32
00197
00205 typedef enum Engine_CachedMemType {
00206 Engine_USECACHEDMEM_DEFAULT = -1,
00207 Engine_USECACHEDMEM_NONCACHED = 0,
00208 Engine_USECACHEDMEM_CACHED = 1
00209 } Engine_CachedMemType;
00210
00211
00212
00213
00214
00222 typedef struct Engine_AlgDesc {
00228 String name;
00229
00230 NODE_Uuid uuid;
00240 IALG_Fxns *fxns;
00241
00247 Ptr idmaFxns;
00248
00249 String *typeTab;
00256 Bool isLocal;
00257
00266 Int groupId;
00267
00268 Int rpcProtocolVersion;
00278 Ptr iresFxns;
00279
00283 Void *codecClassConfig;
00284
00300 Engine_CachedMemType memType;
00326 String types;
00327 } Engine_AlgDesc;
00328
00329
00333 #define Engine_GETALGDESCFXN "GetEngineAlgDesc"
00334
00335
00336
00337
00338
00346 typedef struct Engine_DllAlgDesc {
00350 IALG_Fxns *fxns;
00351
00356 Ptr idmaFxns;
00357
00362 Ptr iresFxns;
00363
00376 String types;
00377
00383 Void *codecClassConfig;
00384 } Engine_DllAlgDesc;
00385
00386
00387
00388
00389
00390
00391
00401 typedef Int (*Engine_GetAlgDescFxn)(Engine_DllAlgDesc *dllAlgDesc);
00402
00403
00404
00405
00406
00414 typedef struct Engine_Desc {
00415 String name;
00419 Engine_AlgDesc *algTab;
00420 String remoteName;
00430 String memMap;
00447 Bool useExtLoader;
00461 Int numAlgs;
00462 Int heapId;
00463 } Engine_Desc;
00464
00465
00468
00469
00470
00471 typedef struct Engine_AlgCreateAttrs {
00472 Bool useExtHeap;
00477 Int priority;
00479 } Engine_AlgCreateAttrs;
00480
00481
00482
00483
00484
00485 typedef struct Engine_Config {
00486 Engine_Desc *engineTab;
00487 String localEngine;
00488 } Engine_Config;
00489
00490
00491
00492
00493
00494 typedef struct Engine_MemStat {
00495 Char name[Engine_MAXSEGNAMELENGTH + 1];
00496 Uint32 base;
00497 Uint32 size;
00498 Uint32 used;
00499 Uint32 maxBlockLen;
00500 } Engine_MemStat;
00501
00502
00503 extern Engine_AlgCreateAttrs Engine_ALGCREATEATTRS;
00504
00505
00506
00507
00508 extern Engine_Config Engine_config;
00509
00513
00514
00515
00558 extern Engine_Error Engine_addStubFxns(String fxnsName, IALG_Fxns *fxns);
00559
00560
00561
00562
00600 extern Engine_Error Engine_add(Engine_Desc *pDesc);
00601
00602
00603
00604
00697 extern Engine_Error Engine_addAlg(String name, Engine_Handle engine,
00698 String location, Engine_AlgDesc *pAlgDesc);
00699
00700
00701
00702
00728 extern Engine_Error Engine_removeAlg(String name, Engine_Handle engine,
00729 String algName);
00730
00733
00734
00735
00736 extern Int Engine_call(Engine_Node node, Comm_Msg *msg);
00737
00738
00739
00740
00741 extern Int Engine_callAsync(Engine_Node node, Comm_Msg *msg);
00742
00743
00744
00745
00746 extern Int Engine_callWait(Engine_Node node, Comm_Msg *msg, UInt timeout);
00747
00748
00749
00750
00751 extern Int Engine_ctrlNode(Engine_Node node, Comm_Msg *msg, Engine_Ctrl code);
00752
00755
00756
00757
00773 extern Void Engine_close(Engine_Handle engine);
00774
00776
00777
00778
00804 extern Engine_Node Engine_createNode(Engine_Handle engine, String name,
00805 size_t msgSize, IALG_Params *nodeAttrs, Engine_AlgCreateAttrs *attrs);
00806
00807
00808
00809
00810
00841 extern Engine_Node Engine_createNode2(Engine_Handle engine, String name,
00842 size_t msgSize, IALG_Params *nodeAttrs, Int nodeAttrsSize,
00843 Engine_AlgCreateAttrs *attrs);
00844
00845
00846
00847
00848
00849 extern Void Engine_deleteNode(Engine_Node node);
00850
00851
00852
00853
00867 extern Engine_Error Engine_getAlgMemRecs(Engine_Node node, IALG_MemRec *memTab, Int size,
00868 Int *numRecs);
00869
00870
00871
00872
00884 extern Engine_Error Engine_getAlgNumRecs(Engine_Node node, Int *numRecs);
00885
00886
00887
00888
00889 extern String Engine_getConstName(Engine_Handle engine, String name,
00890 String type);
00891
00892
00893
00894
00895 extern IALG_Fxns *Engine_getFxns(Engine_Handle svr, String name, String type,
00896 Bool *isLocal, Ptr *idmaFxns, Ptr *iresFxns, Int *groupId,
00897 Engine_CachedMemType *memType);
00898
00899
00900
00901
00902 extern Int Engine_getMemId(Engine_Handle engine);
00903
00904
00905
00906
00907 extern Engine_Handle Engine_getLocalEngine(Void);
00908
00909
00910
00911
00912 extern Engine_Handle Engine_getEngine(Engine_Node node);
00913
00914
00915
00916
00917 extern Engine_Error Engine_getMemStat(Server_Handle server, Int segNum,
00918 Engine_MemStat *stat);
00919
00920
00921
00922
00923 extern Engine_Error Engine_getNumMemSegs(Server_Handle server, Int *numSegs);
00924
00925
00926
00927
00928 extern Int Engine_getNumEngines();
00929
00930
00931
00932
00933 extern String Engine_getProcId(Engine_Handle engine);
00934
00935
00936
00937
00938 extern Bool Engine_hasServer(Engine_Handle engine);
00939
00940
00941
00942
00943 extern Void Engine_init(Void);
00944
00945
00948
00949
00950
00972 extern Void Engine_initAlgDesc(Engine_AlgDesc *pAlgDesc);
00973
00974
00975
00976
00984 extern Void Engine_initAttrs(Engine_Attrs *pAttrs);
00985
00986
00987
00988
01001 extern Void Engine_initDesc(Engine_Desc *pDesc);
01002
01005
01006
01007
01008 extern UInt32 Engine_getRemoteVisa(Engine_Node node);
01009
01010
01011
01012
01013 extern Ptr Engine_getCodecClassConfig(Engine_Handle engine, String name,
01014 String type);
01015
01016
01017
01018
01019 extern Void Engine_getNodeQueues(Engine_Node node, Comm_Id *stdIn, Comm_Handle *stdOut);
01020
01021
01022
01023
01024
01025 extern Engine_Error Engine_initFromServer(Engine_Handle engine);
01026
01027
01028
01029
01030
01031 extern Engine_Error Engine_redefineHeap(Server_Handle server, String name,
01032 Uint32 base, Uint32 size);
01033
01034
01035
01036
01037 extern Bool Engine_releaseTraceToken(Server_Handle server);
01038
01039
01040
01041
01042 extern Engine_Error Engine_requestTraceToken(Server_Handle server);
01043
01044
01045
01046
01047 extern Engine_Error Engine_restoreHeap(Server_Handle server, String name);
01048
01051
01052
01053
01100 extern Engine_Handle Engine_open(String name, Engine_Attrs *attrs,
01101 Engine_Error *ec);
01102
01103
01104
01105
01131 extern Int Engine_fwriteTrace(Engine_Handle engine, String prefix, FILE *out);
01132
01133
01134
01135
01170 extern Engine_Error Engine_getAlgInfo(String name, Engine_AlgInfo *algInfo,
01171 Int index);
01172
01173
01174
01175
01224 extern Engine_Error Engine_getAlgInfo2(String name, Engine_Handle engine,
01225 Engine_AlgInfo2 *algInfo2, Int index);
01226
01227
01229
01230
01231
01260 extern Int Engine_getCpuLoad(Engine_Handle engine);
01261
01265
01266
01267
01293 extern Engine_Error Engine_getDesc(String name, Engine_Desc *desc);
01294
01295
01296
01297
01312 extern Engine_Error Engine_getLastError(Engine_Handle engine);
01313
01314
01315
01316
01328 extern String Engine_getName(Engine_Handle engine);
01329
01330
01331
01332
01333
01357 extern Engine_Error Engine_getNumAlgs(String name, Int *numAlgs);
01358
01359
01360
01361
01402 extern Engine_Error Engine_getNumAlgs2(String name, Engine_Handle engine,
01403 Int *numAlgs);
01404
01405
01406
01407
01425 extern Server_Handle Engine_getServer(Engine_Handle engine);
01426
01427
01428
01429
01430
01460 extern UInt32 Engine_getUsedMem(Engine_Handle engine);
01461
01462
01463
01464
01465
01483 extern Engine_Error Engine_remove(String engineName);
01484
01485
01486
01487
01488
01526 extern Engine_Error Engine_setDesc(String name, Engine_Desc *desc);
01527
01528
01529
01530
01531
01554 extern Int Engine_setTrace(Engine_Handle engine, String mask);
01555
01556
01559
01560
01561
01562
01563 extern Engine_Desc *_Engine_getDesc(Int i);
01564
01568
01569 #ifdef __cplusplus
01570 }
01571 #endif
01572
01573 #endif
01574
01575
01576
01577
01578