亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tmmprun.c

?? PNX系列設備驅動 PNX系列設備驅動
?? C
?? 第 1 頁 / 共 2 頁
字號:
  tmmanDSPUnmapSDRAM(DSPHandle);

  return Status;
}

int
main(int argc, char *argv[])
{
  TMDwnLdr_SharedSectionTab_Handle SharedSections;
  TMStatus      Status;
  tmmanVersion	Version;
  tmmanDSPInfo	DSPCaps;
  int		wIdxArg;
  DWORD		i;
  DWORD		CRTHandle[MAXIMUM_NODES];
  DWORD		DSPHandle[MAXIMUM_NODES];
  DWORD		ArgumentCountArray[MAXIMUM_NODES];
  PVOID		ArgumentVectorArray[MAXIMUM_NODES];
  DWORD		MMIOPhysicalAddressArray[MAXIMUM_NODES];
  CHAR*		ArgumentVector[MAXIMUM_COMMAND_LINE_ARGS];
  DWORD		ArgumentCount;

  if (argc < 2) {
    goto mainUsage;
  }

  /*
   * check for compatible driver version
   */
  Version.Major = constTMManDefaultVersionMajor;
  Version.Minor = constTMManDefaultVersionMinor;
  tmmanNegotiateVersion(constTMManDefault, &Version);

  if ((Version.Major != constTMManDefaultVersionMajor) ||
      (Version.Minor != constTMManDefaultVersionMinor)) {
    fprintf(stderr,
	    "TMMPRun : ERROR : tmmprun.exe Version[%d.%d] is INCOMPATIBLE "
	    "With TMMan32.dll Version[%d.%d]\n",
	    constTMManDefaultVersionMajor,
	    constTMManDefaultVersionMinor,
	    Version.Major, Version.Minor);
    goto mainExit1;
  }

  /*
   * install a control C handler so that we can perform cleanup before exit.
   */
  if (SetConsoleCtrlHandler(tmrunControlHandler, TRUE) != TRUE) {
    fprintf(stderr,
	    "TMMPRun : ERROR : Win32 SetConsoleCtrlHandler failed [0x%x]",
	    GetLastError());
    goto mainExit1;
  }

  /*
   * count the number of DSPs we have to download into
   * this corresponds to the number of "-exec" in the command line
   */
  for (wIdxArg = 1; wIdxArg < argc; wIdxArg++) {
    /*
     * "-exec" indicates start of target executable name and arguments
     */
    if (_stricmp(argv[wIdxArg], "-exec") == 0) {
      DSPCount++;
      if (DSPCount > MAXIMUM_NODES) {
	fprintf(stderr,
		"TMMPRun : ERROR : Maximum nodes (%d) exceeded",
		MAXIMUM_NODES);
	goto mainExit1;
      }
    }
  }

  /*
   * initialize the arrays
   */
  for (i = 0; i < DSPCount; i++) {
    DSPHandle[i] = 0;
    CRTHandle[i] = 0;
    ArgumentVectorArray[i] = NULL;
    EventArray[i] = NULL;
  }

  /*
   * open all the DSPs
   */
  for (i = 0; i < DSPCount; i++) {
    Status = tmmanDSPOpen(i, &DSPHandle[i]);
    if (Status != statusSuccess) {
      fprintf(stderr,
	      "TMMPRun : ERROR : tmmanDSPOpen failed [0x%x](%s)\n",
	      Status, tmmanGetErrorString(Status));
      goto mainExit2;
    }
    Status = tmmanDSPGetInfo(DSPHandle[i] , &DSPCaps);
    if (Status != statusSuccess) {
      fprintf(stderr,
	      "TMMPRun : ERROR : tmmanDSPGetInfo failed [0x%x](%s)\n",
	      Status, tmmanGetErrorString(Status));
      goto mainExit3;
    }
    MMIOPhysicalAddressArray[i] = DSPCaps.MMIO.PhysicalAddress;
  }

  /*
   * process the generic command line parameters here
   */
  for (wIdxArg = 1; wIdxArg < argc; wIdxArg++) {

    /*
     * "-exec" indicates start of target executable name and arguments
     */
    if (_stricmp(argv[wIdxArg], "-exec") == 0) {
      /*
       * the next argument should be the name of the executable , point to it.
       */
      wIdxArg++;
      break;
    }

    switch (toupper(argv[wIdxArg][1])) {
    case 'B':	/* interactive off option */
      Interactive = FALSE;
      break;
    case 'W':	/* no of lines in console window */
      {
	DWORD dwWindowLines;
	COORD ConsoleSize;
	if (sscanf(&argv[wIdxArg][2], "%d", &dwWindowLines) != 1) {
	  goto mainUsage;
	}
	ConsoleSize.X = 80;
	ConsoleSize.Y = (USHORT)dwWindowLines;
	SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), ConsoleSize);
      }
      break;
    case '?':	/* add other command line optons here */
    default:
      goto mainUsage;
    }
  }

  /*
   * create an empty shared section table, for use in multiprocessing downloading
   */
  TMDwnLdr_create_shared_section_table(&SharedSections);

  /*
   * Initializes the C Run Time server to serve multiple nodes.
   */
  cruntimeInit();

  /*
   * initialize the C runtime for each DSP
   */
  for (i = 0; i < DSPCount; i++) {
    CRunTimeParameterBlock CRTParam;

    /*
     * create an event for this node
     */
    EventArray[i] = CreateEvent(NULL,  /* default security descriptor in NT, not used in Windows 95 */
				FALSE, /* auto reset event */
				FALSE, /*initial state is not signalled */
				NULL);

    if (EventArray[i] == INVALID_HANDLE_VALUE) {
      fprintf(stderr,
	      "TMMPRun : ERROR : Win32 CreateEvent failed [0x%x]\n",
	      GetLastError());
      goto mainExit4;
    }

    CRTParam.OptionBitmap = 0;
    CRTParam.StdInHandle  = (DWORD)GetStdHandle(STD_INPUT_HANDLE);
    CRTParam.StdOutHandle = (DWORD)GetStdHandle(STD_OUTPUT_HANDLE);
    CRTParam.StdErrHandle = (DWORD)GetStdHandle(STD_ERROR_HANDLE);

    /*
     * process target specific command line arguments here
     * this parameter should be the executable filename
     */
    TargetExecutableName = argv[wIdxArg];
    ArgumentCount = 0;
    ArgumentVector[ArgumentCount++] = argv[wIdxArg];

    for (wIdxArg++; wIdxArg < argc; wIdxArg++) {
      /*
       * "-exec" indicates start of target executable name and arguments
       */
      if (_stricmp(argv[wIdxArg], "-exec") == 0) {
	wIdxArg++;
	break;
      }
      ArgumentVector[ArgumentCount++] = argv[wIdxArg];
    }
    ArgumentVector[ArgumentCount] = NULL;
    /*
     * we have to allocate persistent storage for these values
     */
    ArgumentCountArray[i] = ArgumentCount;
    if ((ArgumentVectorArray[i] =
	 malloc(sizeof(PVOID) * (ArgumentCount + 1))) == NULL) {
      fprintf(stderr, "TMMPRun : ERROR : malloc(Argument Array) failed\n");
      goto mainExit5;
    }

    memcpy(ArgumentVectorArray[i] ,
	   ArgumentVector,
	   sizeof(PVOID) * (ArgumentCount + 1));

    /*
     * PERFORM RELOCATION HERE
     */
    Status = tmDSPExecutableLoadEx(DSPHandle[i],
				   TargetExecutableName,
				   DSPCount,
				   SharedSections,
				   MMIOPhysicalAddressArray);

    if (Status != statusSuccess) {
      fprintf(stderr,
	      "TMMPRun : ERROR : tmDSPExecutableLoadEx(%s) failed [0x%x](%s)\n",
	      TargetExecutableName,
	      Status,
	      tmmanGetErrorString(Status));
      goto mainExit6;
    }

    CRTParam.OptionBitmap |= constCRunTimeFlagsUseSynchObject;
    CRTParam.SynchronizationObject = (DWORD)EventArray[i];
    CRTParam.VirtualNodeNumber = i;

    if (!Interactive) {
      CRTParam.OptionBitmap |= constCRunTimeFlagsNonInteractive;
    }

    /*
     * allocate resources for this TriMedia processor.
     */
    if (cruntimeCreate(i, /* the  physical DSP Number */
		       ArgumentCountArray[i],
		       ArgumentVectorArray[i],
		       &CRTParam,
		       &CRTHandle[i]) != True) {
      fprintf(stdout,
	      "TMMPRun : ERROR : Cannot Initialize C Run Time Server :"
	      "CRT I/O calls will not work\n");
      goto mainExit6;
    }

  }

  /*
   * at this time, code has been copied to the memory of the
   * TriMedia boards and C runtime has been created
   * start executing the code on each DSP
   */
  for (i = 0; i < DSPCount; i++) {
    Status = tmmanDSPStart(DSPHandle[i]);
    if (Status != statusSuccess) {
      fprintf(stderr,
	      "TMMPRun : ERROR : tmmanDSPStart failed [0x%x](%s)\n",
	      Status, tmmanGetErrorString(Status));
      goto mainExit7;
    }

  }

  /*
   * wait until all objects in the EventArray array are signaled
   */
  WaitForMultipleObjects(DSPCount, EventArray, TRUE, INFINITE);

  for (i = 0; i < DSPCount; i++) {
    if (DSPHandle[i])
      tmmanDSPStop(DSPHandle[i]);
  }

mainExit7:
  for (i = 0; i < DSPCount; i++) {
    if (CRTHandle[i])
      cruntimeDestroy(CRTHandle[i], &GlobalExitCode);
  }

mainExit6:
  for (i = 0; i < DSPCount; i++) {
    if (ArgumentVectorArray[i])
      free(ArgumentVectorArray[i]);
  }

mainExit5:
  for (i = 0; i < DSPCount; i++) {
    if (EventArray[i])
      CloseHandle(EventArray[i]);
  }

mainExit4:
  cruntimeExit();
  TMDwnLdr_unload_shared_section_table(SharedSections);

mainExit3:
  for (i = 0; i < DSPCount; i++) {
    if (DSPHandle[i])
      tmmanDSPClose(DSPHandle[i]);
  }

mainExit2:
  SetConsoleCtrlHandler(tmrunControlHandler, FALSE);

mainExit1:
  if (Interactive) {
    fprintf(stdout, "\nTMMPRun:Press [ENTER] to close server >>");
    getchar();
  }
  return GlobalExitCode;

mainUsage:
  fprintf(stderr,
	  "usage: TMMPRun [-wWindowSize] [-b] "
	  "-exec ExecutableImageName [Arg1] [Arg2] ... "
	  "-exec ExecutableImageName [Arg1] [Arg2] ...\n");
  goto mainExit1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品黄色片免费大全| 国产欧美一区二区精品忘忧草| 91精品在线麻豆| 欧美激情综合在线| 青青草97国产精品免费观看| 91蝌蚪porny| 国产欧美一区二区精品久导航| 亚洲福利一区二区| aaa国产一区| 久久久综合视频| 久久国产精品区| 91精品在线免费| 日本中文字幕不卡| 99精品国产视频| 国产精品私人影院| 精品无人码麻豆乱码1区2区| 欧美高清视频在线高清观看mv色露露十八 | 国产在线不卡视频| 777奇米四色成人影色区| 亚洲精品日日夜夜| 91丨九色丨蝌蚪富婆spa| 国产情人综合久久777777| 韩国一区二区在线观看| 日韩色在线观看| 美女任你摸久久| 欧美老人xxxx18| 性做久久久久久| 欧美日韩大陆一区二区| 亚洲国产成人精品视频| 欧美艳星brazzers| 亚洲福利一区二区| 欧美日韩电影一区| 日本欧美一区二区在线观看| 制服丝袜中文字幕一区| 日韩av中文在线观看| 日韩欧美专区在线| 精品在线免费视频| 成人欧美一区二区三区1314| 99精品欧美一区二区三区小说 | 日韩免费观看高清完整版在线观看| 亚洲a一区二区| 欧美一区二区日韩| 久久av中文字幕片| 久久视频一区二区| 成人动漫一区二区在线| 亚洲精选一二三| 欧美美女bb生活片| 韩日欧美一区二区三区| 欧美激情资源网| 色综合久久中文字幕| 亚洲成国产人片在线观看| 欧美精品三级在线观看| 久久激情五月婷婷| 国产欧美日韩三区| 欧美自拍丝袜亚洲| 免费在线观看成人| 中文字幕 久热精品 视频在线| 91丝袜美腿高跟国产极品老师 | 懂色av中文字幕一区二区三区 | 日本欧美韩国一区三区| 26uuu精品一区二区三区四区在线| 国产成a人亚洲精品| 亚洲人妖av一区二区| 中文欧美字幕免费| 91丝袜美腿高跟国产极品老师| 午夜欧美2019年伦理| 久久久精品tv| 欧美欧美午夜aⅴ在线观看| 韩国三级电影一区二区| 亚洲精品欧美二区三区中文字幕| 欧美一区二区免费观在线| 不卡一区二区在线| 日韩福利电影在线观看| 国产精品拍天天在线| 欧美一级搡bbbb搡bbbb| 99精品久久只有精品| 精品一区二区三区在线播放视频| 一区免费观看视频| 日韩免费高清电影| 91国产免费看| 成人污污视频在线观看| 麻豆国产精品一区二区三区 | 欧美性受xxxx黑人xyx性爽| 激情伊人五月天久久综合| 一区二区三区欧美久久| 欧美激情一区二区三区| 日韩欧美综合在线| 欧美天堂一区二区三区| 不卡一区在线观看| 国产高清视频一区| 毛片基地黄久久久久久天堂| 樱花草国产18久久久久| 国产精品视频麻豆| 久久蜜桃香蕉精品一区二区三区| 国产欧美精品一区aⅴ影院| 91精品国产综合久久精品app| 99九九99九九九视频精品| 美女一区二区在线观看| 日韩和欧美的一区| 亚洲综合激情另类小说区| 亚洲乱码日产精品bd| 国产精品免费网站在线观看| 国产日产欧产精品推荐色| 欧美一级爆毛片| 日韩一区二区三区免费看| 欧美人动与zoxxxx乱| 在线成人高清不卡| 欧美日韩一区小说| 欧美日韩高清在线播放| 欧美午夜一区二区三区| 在线观看av一区| 精品视频999| 69久久99精品久久久久婷婷| 欧美精选午夜久久久乱码6080| 欧美色手机在线观看| 欧美夫妻性生活| 91精品国产综合久久久久久| 日韩欧美一二三区| 久久免费精品国产久精品久久久久| 亚洲精品在线网站| 久久久综合九色合综国产精品| 久久尤物电影视频在线观看| 久久久99精品久久| 欧美国产一区二区| 亚洲蜜臀av乱码久久精品| 一区二区三区在线视频免费 | 亚洲裸体在线观看| 亚洲精选视频免费看| 五月婷婷另类国产| 美女被吸乳得到大胸91| 99精品欧美一区| 欧美日韩美少妇| 欧美tk—视频vk| 国产精品久久久久影院老司| 亚洲精品免费视频| 美女视频黄久久| 成人不卡免费av| 欧美精品亚洲一区二区在线播放| 日韩欧美在线不卡| 欧美韩日一区二区三区| 一级做a爱片久久| 免费人成在线不卡| 岛国精品在线观看| 色88888久久久久久影院按摩| 欧美日韩高清一区二区| 久久综合久久综合久久综合| 亚洲精品少妇30p| 精东粉嫩av免费一区二区三区| 成人国产精品免费| 欧美精选一区二区| 国产精品福利一区二区三区| 日产欧产美韩系列久久99| 国产在线观看一区二区| 91国偷自产一区二区使用方法| 日韩精品一区二区三区中文精品| 亚洲日本va午夜在线影院| 蜜臀av一区二区| 91久久精品一区二区| 久久久精品一品道一区| 亚洲不卡在线观看| a4yy欧美一区二区三区| www亚洲一区| 亚洲18色成人| 99re热视频这里只精品| 久久综合久久久久88| 日韩精品亚洲一区二区三区免费| 欧美久久久一区| 综合久久国产九一剧情麻豆| 久久99在线观看| 欧美日韩1区2区| 亚洲三级电影网站| 高清beeg欧美| 精品欧美黑人一区二区三区| 亚洲一卡二卡三卡四卡五卡| caoporm超碰国产精品| 精品久久久久久久久久久久久久久久久 | 在线亚洲一区二区| 久久久不卡影院| 久久er99热精品一区二区| 欧美日韩一区二区三区不卡| 亚洲欧美中日韩| 国产精品一区二区久久不卡| 精品久久国产老人久久综合| 天天射综合影视| 欧美日韩电影一区| 亚洲一区二区欧美日韩| 一本色道综合亚洲| 亚洲欧洲成人精品av97| 风间由美一区二区三区在线观看 | 一区二区三区毛片| av毛片久久久久**hd| 国产精品私房写真福利视频| 国产福利精品导航| 久久久久久久免费视频了| 国产69精品久久久久毛片| 欧美电视剧免费观看| 麻豆精品视频在线观看视频| 欧美不卡一区二区三区四区| 美女视频免费一区| 久久综合色综合88|