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
00071 #define Engine_GTNAME "CE"
00072
00076 typedef struct Engine_Obj *Engine_Handle;
00077
00081 typedef Int Engine_Error;
00082
00083 #define Engine_EOK 0
00084 #define Engine_EEXIST 1
00085 #define Engine_ENOMEM 2
00086 #define Engine_EDSPLOAD 3
00087 #define Engine_ENOCOMM 4
00090 #define Engine_ENOSERVER 5
00091 #define Engine_ECOMALLOC 6
00092 #define Engine_ERUNTIME 7
00093 #define Engine_ECODECCREATE 8
00094 #define Engine_ECODECSTART 9
00099 #define Engine_EINVAL 10
00100 #define Engine_EBADSERVER 11
00101 #define Engine_ENOTAVAIL 12
00102 #define Engine_EWRONGSTATE 13
00103 #define Engine_EINUSE 14
00106 #define Engine_ENOTFOUND 15
00107 #define Engine_ETIMEOUT 16
00114 typedef struct Engine_NodeObj *Engine_Node;
00115
00119 #define Engine_FOREVER Comm_FOREVER
00120
00128 typedef struct Engine_Attrs {
00129 String procId;
00133 } Engine_Attrs;
00134
00140 typedef struct Engine_AlgInfo {
00141 Int algInfoSize;
00142 String name;
00143 String *typeTab;
00144 Bool isLocal;
00145 } Engine_AlgInfo;
00146
00157 typedef struct Engine_AlgInfo2 {
00158 Int algInfoSize;
00159 String name;
00160 String types;
00161 Bool isLocal;
00162 } Engine_AlgInfo2;
00163
00167 extern Engine_Attrs Engine_ATTRS;
00171 typedef Int Engine_Ctrl;
00172
00173 #define Engine_CEXIT 0
00174 #define Engine_MAXSEGNAMELENGTH 32
00175
00181 typedef enum Engine_CachedMemType {
00182 Engine_USECACHEDMEM_DEFAULT = -1,
00183 Engine_USECACHEDMEM_NONCACHED = 0,
00184 Engine_USECACHEDMEM_CACHED = 1
00185 } Engine_CachedMemType;
00186
00187
00188
00189
00190
00191 typedef struct Engine_AlgDesc {
00192 String name;
00193 NODE_Uuid uuid;
00194 IALG_Fxns *fxns;
00195 Ptr idmaFxns;
00196 String *typeTab;
00197 Bool isLocal;
00198 Int groupId;
00199 Int rpcProtocolVersion;
00200 Ptr iresFxns;
00201 Void *codecClassConfig;
00202 Engine_CachedMemType memType;
00212 String types;
00213 } Engine_AlgDesc;
00214
00215
00216
00217
00218 typedef struct Engine_AlgCreateAttrs {
00219 Bool useExtHeap;
00224 Int priority;
00226 } Engine_AlgCreateAttrs;
00227
00228
00229
00230
00231 typedef struct Engine_Desc {
00232 String name;
00233 Engine_AlgDesc *algTab;
00234 String remoteName;
00235 String linkCfg;
00236 Int numAlgs;
00238 } Engine_Desc;
00239
00240
00241
00242
00243 typedef struct Engine_Config {
00244 Engine_Desc *engineTab;
00245 String localEngine;
00246 } Engine_Config;
00247
00248
00249
00250
00251
00252 typedef struct Engine_MemStat {
00253 Char name[Engine_MAXSEGNAMELENGTH + 1];
00254 Uint32 base;
00255 Uint32 size;
00256 Uint32 used;
00257 Uint32 maxBlockLen;
00258 } Engine_MemStat;
00259
00260
00261 extern Engine_AlgCreateAttrs Engine_ALGCREATEATTRS;
00262
00263
00264
00265
00266 extern Engine_Config Engine_config;
00267
00268
00269
00270
00282 extern Engine_Error Engine_addStubFxns(String fxnsName, IALG_Fxns *fxns);
00283
00284
00285
00286
00287 extern Int Engine_call(Engine_Node node, Comm_Msg *msg);
00288
00289
00290
00291
00292 extern Int Engine_callAsync(Engine_Node node, Comm_Msg *msg);
00293
00294
00295
00296
00297 extern Int Engine_callWait(Engine_Node node, Comm_Msg *msg, UInt timeout);
00298
00299
00300
00301
00302 extern Engine_Error Engine_initFromServer(Engine_Handle engine);
00303
00304
00305
00306
00307 extern Int Engine_ctrlNode(Engine_Node node, Comm_Msg *msg, Engine_Ctrl code);
00308
00311
00312
00313
00328 extern Void Engine_close(Engine_Handle engine);
00329
00331
00332
00333
00359 extern Engine_Node Engine_createNode(Engine_Handle engine, String name,
00360 size_t msgSize, IALG_Params *nodeAttrs, Engine_AlgCreateAttrs *attrs);
00361
00362
00363
00364
00365
00396 extern Engine_Node Engine_createNode2(Engine_Handle engine, String name,
00397 size_t msgSize, IALG_Params *nodeAttrs, Int nodeAttrsSize,
00398 Engine_AlgCreateAttrs *attrs);
00399
00400
00401
00402
00403
00404 extern Void Engine_deleteNode(Engine_Node node);
00405
00406
00407
00408
00422 extern Engine_Error Engine_getAlgMemRecs(Engine_Node node, IALG_MemRec *memTab, Int size,
00423 Int *numRecs);
00424
00425
00426
00427
00439 extern Engine_Error Engine_getAlgNumRecs(Engine_Node node, Int *numRecs);
00440
00441
00442
00443
00444 extern String Engine_getConstName(Engine_Handle engine, String name,
00445 String type);
00446
00447
00448
00449
00450 extern IALG_Fxns *Engine_getFxns(Engine_Handle svr, String name, String type,
00451 Bool *isLocal, Ptr *idmaFxns, Ptr *iresFxns, Int *groupId,
00452 Engine_CachedMemType *memType);
00453
00454
00455
00456
00457 extern Int Engine_getMemId(Engine_Handle engine);
00458
00459
00460
00461
00462 extern Engine_Handle Engine_getLocalEngine(Void);
00463
00464
00465
00466
00467 extern Engine_Handle Engine_getEngine(Engine_Node node);
00468
00469
00470
00471
00472 extern Engine_Error Engine_getMemStat(Server_Handle server, Int segNum,
00473 Engine_MemStat *stat);
00474
00475
00476
00477
00478 extern Engine_Error Engine_getNumServerAlgs(Server_Handle server, Int *nAlgs);
00479
00480
00481
00482
00483 extern Engine_Error Engine_getServerAlgInfo(Server_Handle server, Int algNum,
00484 Engine_AlgInfo *algInfo);
00485
00486
00487
00488
00489 extern Engine_Error Engine_getNumMemSegs(Server_Handle server, Int *numSegs);
00490
00491
00492
00493
00494 extern Bool Engine_hasServer(Engine_Handle engine);
00495
00496
00497
00498
00499 extern Void Engine_init(Void);
00500
00501
00502
00503
00504 extern UInt32 Engine_getRemoteVisa(Engine_Node node);
00505
00506
00507
00508
00509 extern Ptr Engine_getCodecClassConfig(Engine_Handle engine, String name,
00510 String type);
00511
00512
00513
00514
00515 extern Void Engine_getNodeQueues(Engine_Node node, Comm_Queue *stdIn,
00516 Comm_Queue *stdOut);
00517
00518
00519
00520
00521 extern Engine_Error Engine_redefineHeap(Server_Handle server, String name,
00522 Uint32 base, Uint32 size);
00523
00524
00525
00526
00527 extern Bool Engine_releaseTraceToken(Server_Handle server);
00528
00529
00530
00531
00532 extern Engine_Error Engine_requestTraceToken(Server_Handle server);
00533
00534
00535
00536
00537 extern Engine_Error Engine_restoreHeap(Server_Handle server, String name);
00538
00541
00542
00543
00586 extern Engine_Handle Engine_open(String name, Engine_Attrs *attrs,
00587 Engine_Error *ec);
00588
00589
00590
00591
00617 extern Int Engine_fwriteTrace(Engine_Handle engine, String prefix, FILE *out);
00618
00619
00620
00621
00656 extern Engine_Error Engine_getAlgInfo(String name, Engine_AlgInfo *algInfo,
00657 Int index);
00658
00659
00660
00661
00707 extern Engine_Error Engine_getAlgInfo2(String name, Engine_Handle engine,
00708 Engine_AlgInfo2 *algInfo2, Int index);
00709
00710
00711
00712
00741 extern Int Engine_getCpuLoad(Engine_Handle engine);
00742
00743
00744
00745
00757 extern Engine_Error Engine_getLastError(Engine_Handle engine);
00758
00759
00760
00761
00770 extern String Engine_getName(Engine_Handle engine);
00771
00772
00773
00774
00775
00799 extern Engine_Error Engine_getNumAlgs(String name, Int *numAlgs);
00800
00801
00802
00803
00844 extern Engine_Error Engine_getNumAlgs2(String name, Engine_Handle engine,
00845 Int *numAlgs);
00846
00847
00848
00849
00864 extern Server_Handle Engine_getServer(Engine_Handle engine);
00865
00866
00867
00868
00869
00896 extern UInt32 Engine_getUsedMem(Engine_Handle engine);
00897
00898
00899
00900
00901
00921 extern Int Engine_setTrace(Engine_Handle engine, String mask);
00922
00925 #ifdef __cplusplus
00926 }
00927 #endif
00928
00929 #endif
00930
00931
00932
00933
00934