Lines Matching refs:drv

81     DrvScript *drv = (DrvScript *)calloc(1, sizeof(DrvScript));
82 if (drv == NULL) {
85 script->mHal.drv = drv;
87 drv->mBccScript = bccCreateScript();
89 drv->mScriptText = bitcode;
90 drv->mScriptTextLength = bitcodeSize;
93 drv->ME = new bcinfo::MetadataExtractor((const char*)drv->mScriptText,
94 drv->mScriptTextLength);
95 if (!drv->ME->extract()) {
102 if (bccRegisterSymbolCallback(drv->mBccScript, &rsdLookupRuntimeStub, script) != 0) {
107 if (bccReadBC(drv->mBccScript,
109 (char const *)drv->mScriptText,
110 drv->mScriptTextLength, 0) != 0) {
115 if (bccLinkFile(drv->mBccScript, "/system/lib/libclcore.bc", 0) != 0) {
120 if (bccPrepareExecutable(drv->mBccScript, cacheDir, resName, 0) != 0) {
127 drv->mRoot = reinterpret_cast<int (*)()>(bccGetFuncAddr(drv->mBccScript, "root"));
128 drv->mInit = reinterpret_cast<void (*)()>(bccGetFuncAddr(drv->mBccScript, "init"));
129 drv->mFreeChildren = reinterpret_cast<void (*)()>(bccGetFuncAddr(drv->mBccScript, ".rs.dtor"));
131 exportFuncCount = drv->ME->getExportFuncCount();
133 drv->mInvokeFunctions = (InvokeFunc_t*) calloc(exportFuncCount,
135 bccGetExportFuncList(drv->mBccScript, exportFuncCount,
136 (void **) drv->mInvokeFunctions);
138 drv->mInvokeFunctions = NULL;
141 exportVarCount = drv->ME->getExportVarCount();
143 drv->mFieldAddress = (void **) calloc(exportVarCount, sizeof(void*));
144 drv->mFieldIsObject = (bool *) calloc(exportVarCount, sizeof(bool));
145 bccGetExportVarList(drv->mBccScript, exportVarCount,
146 (void **) drv->mFieldAddress);
148 drv->mFieldAddress = NULL;
149 drv->mFieldIsObject = NULL;
152 objectSlotCount = drv->ME->getObjectSlotCount();
154 const uint32_t *objectSlotList = drv->ME->getObjectSlotList();
156 drv->mFieldIsObject[objectSlotList[ct]] = true;
160 exportForEachSignatureCount = drv->ME->getExportForEachSignatureCount();
162 drv->mExportForEachSignatureList = drv->ME->getExportForEachSignatureList();
165 script->mHal.info.exportedFunctionCount = drv->ME->getExportFuncCount();
166 script->mHal.info.exportedVariableCount = drv->ME->getExportVarCount();
167 script->mHal.info.exportedPragmaCount = drv->ME->getPragmaCount();
168 script->mHal.info.exportedPragmaKeyList = drv->ME->getPragmaKeyList();
169 script->mHal.info.exportedPragmaValueList = drv->ME->getPragmaValueList();
170 script->mHal.info.root = drv->mRoot;
178 if (drv->ME) {
179 delete drv->ME;
180 drv->ME = NULL;
182 free(drv);
226 RsdHal * dc = (RsdHal *)mtls->rsc->mHal.drv;
257 RsdHal * dc = (RsdHal *)mtls->rsc->mHal.drv;
288 RsdHal * dc = (RsdHal *)rsc->mHal.drv;
293 DrvScript *drv = (DrvScript *)s->mHal.drv;
297 if (drv->mExportForEachSignatureList) {
298 mtls.sig = drv->mExportForEachSignatureList[slot];
407 DrvScript *drv = (DrvScript *)script->mHal.drv;
410 int ret = drv->mRoot();
417 DrvScript *drv = (DrvScript *)script->mHal.drv;
419 if (drv->mInit) {
420 drv->mInit();
425 DrvScript *drv = (DrvScript *)script->mHal.drv;
427 if (drv->mFreeChildren) {
428 drv->mFreeChildren();
436 DrvScript *drv = (DrvScript *)script->mHal.drv;
441 drv->mInvokeFunctions[slot])(params, paramLength);
447 DrvScript *drv = (DrvScript *)script->mHal.drv;
451 int32_t *destPtr = ((int32_t **)drv->mFieldAddress)[slot];
461 DrvScript *drv = (DrvScript *)script->mHal.drv;
465 int32_t *destPtr = ((int32_t **)drv->mFieldAddress)[slot];
475 DrvScript *drv = (DrvScript *)script->mHal.drv;
479 int32_t *destPtr = ((int32_t **)drv->mFieldAddress)[slot];
489 DrvScript *drv = (DrvScript *)script->mHal.drv;
491 if (drv->mFieldAddress) {
492 size_t exportVarCount = drv->ME->getExportVarCount();
494 if (drv->mFieldIsObject[ct]) {
497 if (drv->mFieldAddress[ct]) {
498 rsrClearObject(dc, script, (ObjectBase **)drv->mFieldAddress[ct]);
502 free(drv->mFieldAddress);
503 drv->mFieldAddress = NULL;
504 free(drv->mFieldIsObject);
505 drv->mFieldIsObject = NULL; }
507 if (drv->mInvokeFunctions) {
508 free(drv->mInvokeFunctions);
509 drv->mInvokeFunctions = NULL;
512 delete drv->ME;
513 drv->ME = NULL;
515 free(drv);
516 script->mHal.drv = NULL;