コード例 #1
0
ファイル: rescomp.c プロジェクト: AliSayed/MoSync
void ResourceMain()
{
	SetError_Mode(ErrorMode_Full);

	Section = SECT_data;
	pass_count = 0;

	ResType = 0;

	DEBUG = 0;
	LIST = 0;
	INFO = 0;

	AsmAllocMem();
	SetResPtrs();

	ResetResource();

	CurrentResource = 1;

	Pass = 1;
	pass_count++;

	ResourceComp();
	FinalizeResource();

	printf("Pass 1 - Size %d\n", ResIP);

	//*** Pass 2 ***

	Section = SECT_data;
	ResType = 0;

	DEBUG = 0;
	LIST = 0;
	INFO = 0;

	AsmAllocMem();
	SetResPtrs();

	ResetResource();

	CurrentResource = 1;

	Pass = 2;
	pass_count++;

	ResourceComp();

	FinalizeResource();

	WriteResources();

	printf("Pass 2 - Size %d\n", ResIP);

	AsmDisposeMem();

	printf("Done...\n");
}
コード例 #2
0
ファイル: main.c プロジェクト: Shaijan/Meridian59
void MainExitServer()
{
	lprintf("ExitServer terminating server\n");
	
	ExitAsyncConnections();
	
	CloseAllSessions(); /* gotta do this before anything, cause it uses kod, accounts */
	
	CloseDefaultChannels();
	
	ResetLoadMotd();
	ResetLoadBof();
	
	ResetTable();
	ResetBufferPool();
	ResetSysTimer();
	ResetDLlist();
	ResetNameID();
	ResetAccount();
	ResetUser();
	ResetString();
	ResetRoomData();
	ResetResource();
	ResetTimer();
	ResetList();
	ResetObject();
	ResetMessage();
	ResetClass();
	
	ResetConfig();
	
	DeleteAllBlocks();
}
コード例 #3
0
ファイル: interface.c プロジェクト: Shaijan/Meridian59
void InterfaceReloadSystem()
{
	EnterServerLock();
	
	lprintf("InterfaceReloadSystem reloading system\n");
	
	PauseTimers();
	
	SendBlakodBeginSystemEvent(SYSEVENT_RELOAD_SYSTEM);
	
	GarbageCollect();
	SaveAll();
	
	ResetAdminConstants();
	ResetUser();
	ResetString();
	ResetRoomData();
	ResetLoadMotd();
	ResetLoadBof();
	ResetDLlist();
	ResetNameID();
	ResetResource();
	ResetTimer();
	ResetList();
	ResetObject();
	ResetMessage();
	ResetClass();
	
	LoadMotd();
	LoadBof();
	LoadRsc();
	
	LoadKodbase();
	
	UpdateSecurityRedbook();
	
	LoadAdminConstants();
	/* can't reload accounts because sessions have pointers to accounts */
	if (!LoadAllButAccount()) 
		eprintf("InterfaceReloadSystem couldn't load game.  You are dead.\n");
	
	AllocateParseClientListNodes(); /* it needs a list to send to users */
	AddBuiltInDLlist();
	
	SendBlakodEndSystemEvent(SYSEVENT_RELOAD_SYSTEM);
	
	UnpauseTimers();
	
	LeaveServerLock();
}
コード例 #4
0
BOOL CMovieDialogBackground::SetFrame(int nFrame)
{
  if (m_nFrame == nFrame)
    return TRUE;

  m_nFrame = nFrame % CMovieDlgBkg::LEN_IMAGE_ARRAY;

  ResetResource();

  int nX = 0;
  int nY = 0;
  RECT rect;
  GetWindowRect(m_hWnd, &rect);
  //int w = rect.right - rect.left;
  //int h = rect.bottom - rect.top;
  int w = MOVIE_SIZE_W;
  int h = MOVIE_SIZE_H;
  //std::wstring image = CMovieDlgBkg::image_array[m_nFrame];
  WCHAR image[MAX_PATH] = {0};
  wsprintf(image, L"movie\\%d.png",m_nFrame);
  
  HDC hdc = GetDC(m_hWnd);
  m_hCacheDc  = CreateCompatibleDC(hdc);
  m_hCacheBitmap = CreateCompatibleBitmap(hdc, w, h);
  SelectObject(m_hCacheDc, m_hCacheBitmap);

  if (!m_pBackgroundImage)
    m_pBackgroundImage = new YGImage();
  m_pBackgroundImage->LoadImage(EXTEND_TO_FULL_PATH(image));

  m_pBackgroundImage->Draw(m_hCacheDc, nX, nY);
	
	//ÉèÖÃ͸Ã÷´°¿Ú-------------------------------------------------
	CPoint DestPt(0,0);
	CSize psize(w,h);
	BLENDFUNCTION blendFunc32bpp;
	blendFunc32bpp.AlphaFormat = AC_SRC_ALPHA;
	blendFunc32bpp.BlendFlags = 0;
	blendFunc32bpp.BlendOp = AC_SRC_OVER;
	blendFunc32bpp.SourceConstantAlpha = 255;
	::UpdateLayeredWindow(m_hWnd,hdc,NULL,&psize,m_hCacheDc,&DestPt,0,&blendFunc32bpp,ULW_ALPHA);

  ReleaseDC(m_hWnd, hdc);
	return TRUE;
}
コード例 #5
0
void PortDirectedSchedule(FILE *fp, int portConfigCnt, int MAX_PORT_NU, 
                          int *ASAP_slots, int *ALAP_slots, 
                          int *Xconstraint, int *Kconstraint, 
                          ScheduleStats SS[]) {
  char scheduleName[10];
  char make_cmd[50];

  // Scheduled FUs
  int ASAP_resource, ALAP_resource, List_resource, Iter_resource;

  // Data path DII
  int ASAP_DII, ALAP_DII;

  // Data path delay 
  int ASAP_delay, ALAP_delay, List_delay, delay;

  //---------------------------------------------
  // ASAP
  //---------------------------------------------

  myprintf("********* ASAP Start ********* \n");

  ASAP_delay = ASAP(ASAP_slots, Xconstraint, Kconstraint);
  ASAP_DII = CheckConflict();
  ASAP_resource = CountResource();

  //PrintDFG(ASAP_slots, ALAP_slots);

  CSP->dly = ASAP_delay;

  PrintStats(fp, "ASAP", ASAP_DII, ASAP_resource, ASAP_delay);

  myprintf("********* ASAP Scheduling Done ********* \n");

  //goto ALAP_SCH;

  GenerateBackEnd(fp, scheduleName, "ASAP", portConfigCnt, ASAP_delay, SS);

  myprintf("********* ASAP Generation Done ********* \n");

  //exit(1);

#ifdef MODELSIM
  printf("**************************************************\n");
  printf("*   Testing circuit ASAP%d_%s\n", portConfigCnt, CircuitName);
  printf("**************************************************\n");
  fflush(stdout);

  make_cmd[0] = '\0';
  sprintf(make_cmd, "make ASAP%d_%s", portConfigCnt, CircuitName);
  if (system(make_cmd) != 0) {
    printf("********* ASAP system(make_cmd) Error ********* \n");
    exit(-1);
  }

  printf("**************************************************\n");
  printf("*   Done Testing circuit ASAP%d_%s\n", portConfigCnt, CircuitName);
  printf("**************************************************\n");
#endif

  printf("---------------------------\n");
  printf("ASAP regs fanout (%d)\n", CSP->rfo);
  printf("ASAP func fanout (%d)\n", CSP->ffo);
  printf("ASAP port fanout (%d)\n", CSP->pfo);
  printf("ASAP mux chain reg (%d)\n", CSP->mux_reg);
  printf("ASAP mux fanin (%d)\n", CSP->fan);
  printf("ASAP mux input (%d)\n", CSP->mux);
  printf("ASAP muxp input (%d)\n", CSP->muxp);
  printf("ASAP muxr input (%d)\n", CSP->muxr);
  printf("ASAP reg number(%d)\n", CSP->reg);
  printf("ASAP latency   (%d)\n", CSP->dly);


ALAP_SCH:
  ResetResource();
  ResetRAT();

#ifdef CSV
  fprintf(csv[0][REG], ",%d", CSP->reg);
  fprintf(csv[0][DLY], ",%d", CSP->dly);
  fprintf(csv[0][MUX], ",%d", CSP->mux);
  fprintf(csv[0][FAN], ",%d", CSP->fan);
#endif

  return;  // just ASAP results

  //---------------------------------------------
  // ALAP
  //---------------------------------------------
  myprintf("********* ALAP Start ********* \n");

  ALAP_delay = ALAP(ALAP_slots, MAX_PORT_NU);
  ALAP_DII = CheckConflict();
  ALAP_resource = CountResource();

  CSP->dly = ALAP_delay;

  //PrintDFG(ASAP_slots, ALAP_slots);

  PrintStats(fp, "ALAP", ALAP_DII, ALAP_resource, ALAP_delay);

  myprintf("********* ALAP Scheduling Done ********* \n");

  goto ENUM_SCH;
  //return;

  GenerateBackEnd(fp, scheduleName, "ALAP", portConfigCnt, ALAP_delay, SS);

  myprintf("********* ALAP Generation Done ********* \n");

#ifdef MODELSIM
  printf("**************************************************\n");
  printf("*   Testing circuit ALAP%d_%s\n", portConfigCnt, CircuitName);
  printf("**************************************************\n");

  make_cmd[0] = '\0';
  sprintf(make_cmd, "make ALAP%d_%s", portConfigCnt, CircuitName);
  system(make_cmd);

  printf("**************************************************\n");
  printf("*  Done Testing circuit ALAP%d_%s\n", portConfigCnt, CircuitName);
  printf("**************************************************\n");
#endif

  fprintf(stderr, "---------------------------\n");

  fprintf(stderr, "ALAP regs fanout (%d)\n", CSP->rfo);
  fprintf(stderr, "ALAP func fanout (%d)\n", CSP->ffo);
  fprintf(stderr, "ALAP port fanout (%d)\n", CSP->pfo);
  fprintf(stderr, "ALAP mux fanin (%d)\n", CSP->fan);
  fprintf(stderr, "ALAP mux input (%d)\n", CSP->mux);
  fprintf(stderr, "ALAP muxp input (%d)\n", CSP->muxp);
  fprintf(stderr, "ALAP muxr input (%d)\n", CSP->muxr);
  fprintf(stderr, "ALAP reg number(%d)\n", CSP->reg);
  fprintf(stderr, "ALAP latency   (%d)\n", CSP->dly);

ENUM_SCH:
  ResetResource();
  ResetRAT();

#ifdef CSV
  fprintf(csv[1][REG], ",%d", CSP->reg);
  fprintf(csv[1][DLY], ",%d", CSP->dly);
  fprintf(csv[1][MUX], ",%d", CSP->mux);
  fprintf(csv[1][FAN], ",%d", CSP->fan);
#endif

  myprintf("********* Enumeration Scheduling Start ********* \n");

  CreateScheduleRAT();

  int i;
  int first, last;


  // The product of all the mobilities. The size of some benchmarks are too big 
  for (i = MAX_PORT_NU; i < NODE_NU; i++) {
    if (ASAP_slots[i] > ALAP_slots[i]) {
      // update ASAP/ALAP slots if ALAP has shorter latency 
      first = ALAP_slots[i];
      last = ASAP_slots[i];

      ASAP_slots[i] = first;
      ALAP_slots[i] = last;
    }

    if (ALAP_slots[i] - ASAP_slots[i] > 0)
      ENUM_SZ *= ALAP_slots[i] - ASAP_slots[i] + 1;
  }

  fprintf(stderr, "Est. Schedule enum space size %lf\n", ENUM_SZ);

  // A naive branch and bound complete enumeration method 
  Enumerate (ASAP_slots, ALAP_slots, MAX_PORT_NU);

  fprintf(stderr, "Act. Schedule enum number = %lf\n", ENUM_NU);

  fprintf(stderr, "---------------------------\n");
  fprintf(stderr, "Enum mux fanout (%d %d)\n", min_mux_fanout, max_mux_fanout);
  fprintf(stderr, "Enum mux fanin (%d %d)\n", min_mux_fanin, max_mux_fanin);
  fprintf(stderr, "Enum mux input (%d %d)\n", min_mux_input, max_mux_input);
  fprintf(stderr, "Enum muxp input (%d %d)\n", min_muxp_input, max_muxp_input);
  fprintf(stderr, "Enum muxr input (%d %d)\n", min_muxr_input, max_muxr_input);
  fprintf(stderr, "Enum reg number(%d %d)\n", min_reg_nu, max_reg_nu);
  fprintf(stderr, "Enum latency   (%d %d)\n", min_latency, max_latency);

  FreeScheduleRAT();
  //PrintDFG(ASAP_slots, ALAP_slots);

  //
}