int printError(SciErr* _psciErr, int _iLastMsg) { int iMode = getExecMode(); if(_psciErr->iErr == 0) { return 0; } SciStoreError(_psciErr->iErr); if(iMode == SILENT_EXEC_MODE) { return 0; } if(_iLastMsg) { sciprint(_("API Error:\n")); sciprint(_("\tin %s\n"), _psciErr->pstMsg[0]); } else { sciprint(_("API Error:\n")); // for(int i = 0 ; i < _psciErr->iMsgCount ;i++) for(int i = _psciErr->iMsgCount - 1 ; i >= 0 ; i--) { // if(i == 0) sciprint(_("\tin %s\n"), _psciErr->pstMsg[i]); } } return 0; }
/*--------------------------------------------------------------------------*/ int C2F(sci_mode)(char *fname,unsigned long fname_len) { Rhs = Max(0, Rhs); CheckRhs(0,1); CheckLhs(1,1); if (Rhs == 0) { int n = 1 ,l = 0; execMode mode = getExecMode(); CreateVar(Rhs+1, MATRIX_OF_INTEGER_DATATYPE, &n, &n,&l); *istk(l) = (int)mode; LhsVar(1) = Rhs + 1; } else { if ( VarType(1)== sci_matrix ) { int m1 = 0, n1 = 0, l1 = 0; GetRhsVar(1, MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l1); if ( (m1 == n1) && (n1 == 1) ) { double dmode = *stk(l1); int mode = (int) dmode; if (dmode != (double)mode) { Scierror(999,_("%s: Wrong value for input argument #%d: A int expected.\n"),fname,1); return 0; } setExecMode((execMode)mode); if ( (mode == 7) || (mode == 4) ) { int code_message = 26; int val_message = 0; C2F(msgs)(&code_message, &val_message); } LhsVar(1) = 0; } else { Scierror(999,_("%s: Wrong size for input argument #%d: A scalar expected.\n"),fname,1); return 0; } } else { Scierror(999,_("%s: Wrong size for input argument #%d: A scalar expected.\n"),fname,1); return 0; } } PutLhsVar(); return 0; }
VAddr loadElfObject(ThreadContext *context, FileSys::SeekableDescription *fdesc, VAddr addr){ ExecMode mode=getExecMode(fdesc); switch(mode&ExecModeBitsMask){ case ExecModeBits32: return _loadElfObjectB<ExecModeBits32>(context,fdesc,addr,mode); case ExecModeBits64: return _loadElfObjectB<ExecModeBits64>(context,fdesc,addr,mode); defualt: fail("loadElfObject: ExecModeBits is not 32 or 64\n"); } return VAddr(-1); }