RNetdConnector::RCommand::RCommand(const char* cmd, int SN) { initData(); char SN_str[16] = {0}; sprintf(SN_str, "%d", SN); appendArg(SN_str); appendArg(cmd); strncpy(mCmd, cmd, CMD_LEN - 1); }
NS_IMETHODIMP nsCommandLine::Init(int32_t argc, const char* const* argv, nsIFile* aWorkingDir, uint32_t aState) { NS_ENSURE_ARG_MAX(aState, 2); int32_t i; mWorkingDir = aWorkingDir; // skip argv[0], we don't want it for (i = 1; i < argc; ++i) { const char* curarg = argv[i]; #ifdef DEBUG_COMMANDLINE printf("Testing native arg %i: '%s'\n", i, curarg); #endif #if defined(XP_WIN) if (*curarg == '/') { char* dup = PL_strdup(curarg); if (!dup) return NS_ERROR_OUT_OF_MEMORY; *dup = '-'; char* colon = PL_strchr(dup, ':'); if (colon) { *colon = '\0'; appendArg(dup); appendArg(colon+1); } else { appendArg(dup); } PL_strfree(dup); continue; } #endif if (*curarg == '-') { if (*(curarg+1) == '-') ++curarg; char* dup = PL_strdup(curarg); if (!dup) return NS_ERROR_OUT_OF_MEMORY; char* eq = PL_strchr(dup, '='); if (eq) { *eq = '\0'; appendArg(dup); appendArg(eq + 1); } else { appendArg(dup); } PL_strfree(dup); continue; } appendArg(curarg); } mState = aState; return NS_OK; }
void CudaOutliner::setKernelParams(int dimension, SgStatement* func_call_stmt, SgScopeStatement* scope) { /* dim3 threads(chunksizeX, chunksizeY); int numBlocksX = n/ chunksizeX; int numBlocksY = n/ (chunksizeY*numRows); dim3 grid(numBlocksX, numBlocksY); */ SgInitializedName* arg1 = buildInitializedName(SgName("BLOCKDIM_X"), buildIntType()); SgInitializedName* arg2 = buildInitializedName(SgName("BLOCKDIM_Y"), buildIntType()); SgType* dim3_t = buildOpaqueType("dim3", scope); SgExprListExp* exprList = buildExprListExp(); //appendArg(exprList, arg1); //ppendArg(exprList, arg2); SgFunctionParameterList * paraList = buildFunctionParameterList(); appendArg(paraList, arg1); appendArg(paraList, arg2); SgMemberFunctionDeclaration * funcdecl = buildNondefiningMemberFunctionDeclaration ("threads", dim3_t, paraList); SgConstructorInitializer* constr = new SgConstructorInitializer(funcdecl, exprList, dim3_t, false, false, false, false ); string dimBlock = MintTools::generateBlockDimName(func_call_stmt); SgVariableDeclaration * dim_blocks_var_decl = buildVariableDeclaration(dimBlock, dim3_t, constr); /* string dimGrid = generateGridDimName(func_call_stmt); SgVariableDeclaration * dim_grid_var_decl = buildVariableDeclaration(dimGrid, dim3_t); */ cout<< dim_blocks_var_decl->unparseToString ()<< endl ; }
PTREE CallArgsArrange( // ARRANGE CALL ARGUMENTS TYPE ftype, // - function type PTREE callnode, // - node for call PTREE userargs, // - user arguments PTREE thisnode, // - this node PTREE cdtor, // - cdtor node (ignored when thisnode==NULL) PTREE retnnode ) // - return node (for struct return) { PTREE arglist; // - argument list under construction OMR return_kind; // - type of return if( thisnode != NULL ) { thisnode->flags |= PTF_ARG_THIS; } return_kind = ObjModelFunctionReturn( ftype ); switch( PcCallImpl( ftype ) ) { case CALL_IMPL_REV_C : return_kind = OMR_CLASS_VAL; // drops thru case CALL_IMPL_REV_CPP : arglist = insertCDtor( thisnode, cdtor ); arglist = insertCppRetnArg( arglist, retnnode, return_kind ); arglist = appendArg( userargs, arglist ); break; case CALL_IMPL_ELL_C : case CALL_IMPL_C : return_kind = OMR_CLASS_VAL; // drops thru case CALL_IMPL_ELL_CPP : case CALL_IMPL_CPP : arglist = insertCppRetnArg( userargs, retnnode, return_kind ); arglist = insertCDtor( arglist, cdtor ); arglist = insertArg( arglist, thisnode ); break; } callnode->u.subtree[1] = arglist; callnode = insertCppRetnCopy( callnode, retnnode, return_kind ); return callnode; }
int main(int argc,const char *argv[]) { char c; const char **args; size_t i,argCount; size_t freeArgs; FILE *file = stdin; const char *filename = NULL; /* parse args */ int res = ca_parse(argc,argv,0,"a=s",&filename); if(res < 0) { printe("Invalid arguments: %s",ca_error(res)); usage(argv[0]); } if(ca_hasHelp()) usage(argv[0]); /* open file? */ if(filename != NULL) { file = fopen(filename,"r"); if(file == NULL) error("Unable to open file '%s'",filename); } /* read arguments */ argCount = 0; while((c = fgetc(file)) != EOF) { if(isspace(c)) { appendArg(); argCount++; argPos = 0; } else { if(argPos < MAX_ARG_LEN) argBuf[argPos++] = c; else error("Argument too long"); } } if(ferror(file)) error("Read failed"); if(filename != NULL) fclose(file); /* append last one */ if(argPos > 0) { appendArg(); argCount++; } /* build args-array and copy arguments into it */ freeArgs = ca_getFreeCount(); if(freeArgs == 0) freeArgs = 1; args = (const char**)malloc(sizeof(char*) * (argCount + freeArgs + 1)); if(!args) error("Not enough mem"); i = 0; if(ca_getFreeCount() == 0) args[i++] = "echo"; else { for(i = 0; i < freeArgs; i++) args[i] = ca_getFree()[i]; } for(; first != NULL; i++) { args[i] = first->arg; first = first->next; } args[i] = NULL; /* exchange us with requested command */ execvp(args[0],args); return EXIT_SUCCESS; }