Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
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 ;
}
Ejemplo n.º 4
0
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;
}
Ejemplo n.º 5
0
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;
}