Esempio n. 1
0
int main(int argc, char **argv)
#endif /* __APPLE__ */
{
	bool commit_dune_cfg = false;
#if defined(_WIN32)
	#if defined(__MINGW32__) && defined(__STRICT_ANSI__)
		int __cdecl __MINGW_NOTHROW _fileno (FILE*);
	#endif
	FILE *err = fopen("error.log", "w");
	FILE *out = fopen("output.log", "w");

	#if defined(_MSC_VER)
		_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
	#endif

	if (err != NULL) _dup2(_fileno(err), _fileno(stderr));
	if (out != NULL) _dup2(_fileno(out), _fileno(stdout));
	FreeConsole();
#endif
	CrashLog_Init();

	VARIABLE_NOT_USED(argc);
	VARIABLE_NOT_USED(argv);

	if (!File_Init()) {
		Error("Cannot initialise files. Does %s directory exist ?\n", DATA_DIR);
		exit(1);
	}

	/* Loading / writing config from/to dune.cfg */
	if (!Config_Read("dune.cfg", &g_config)) {
		Config_Default(&g_config);
		commit_dune_cfg = true;
	}
	if (commit_dune_cfg && !Config_Write("dune.cfg", &g_config)) {
		Error("Error writing to dune.cfg file.\n");
		exit(1);
	}

	Input_Init();

	Drivers_All_Init();

	if (!Unknown_25C4_000E()) exit(1);

	g_var_7097 = 0;

	GameLoop_Main();

	printf("%s\n", String_Get_ByIndex(STR_THANK_YOU_FOR_PLAYING_DUNE_II));

	PrepareEnd();
	exit(0);
}
Esempio n. 2
0
File: File.c Progetto: alexarn/marcC
File File_in( char *file )
{
    File This;
    File_Init(&This);
    This.filename = file;
    This.cnt = 0;
    This.fh = fopen(file, "r+");
    if ( This.fh == NULL ) {
	printf("can't open file: %s\n", file);
	exit(EXIT_FAILURE);
    }
    return This;
}
Esempio n. 3
0
/*******************************************************************************
	Func Name:	AES_Driver_Decrypt
 Date Created:	2014-3-13
 	   Author:	Zhulinfeng
  Description:	Decrypt file.
  		Input:	NONE
  	   Output:	NONE	
  	   Return:	int
  	   			AES_DRIVER_SUCCESS				
  	   			AES_DRIVER_ERR	
  	   			AES_DRIVER_SYSERR				//system error, exit program
  	  Caution:	Called by AES_Driver_Fsm
	----------------------------------------------------------------------------
	Modification History
	Date		Author		Modification
	----------------------------------------------------------------------------
	YYYY-MM-DD  		
*******************************************************************************/
PRIVATE int AES_Driver_Decrypt()
{
	int iret = 	AES_DRIVER_SUCCESS;
	
	struct AES_Key_S 	smyKey;
	struct File_S		smyFile;
	
	/**Get out file path**/
	int ipathCount = 0;
	int ifileNameIndex = 0;
	while( '\0' != cpathBuf[ifileNameIndex])
	{
		ifileNameIndex++;
	}
	while('/' != cpathBuf[ifileNameIndex] && ifileNameIndex > 0)
	{
		ifileNameIndex--;
	}
	char coutFile[AES_DRIVER_PATHLENGTH + 1];
	for(ipathCount; ipathCount < AES_DRIVER_PATHLENGTH + 1; ipathCount++)
	{
		if(ipathCount <= ifileNameIndex)
		{
			coutFile[ipathCount] = cpathBuf[ipathCount];
		}
		else if(1 == ipathCount - ifileNameIndex)
		{
			coutFile[ipathCount] = '_';
		}
		else
		{
			coutFile[ipathCount] = cpathBuf[ipathCount - 1];
		}
		
		if('\0' == coutFile[ipathCount])
		{
			break;
		}
	}
	
	/**open in file and out file**/
	printf("Opening files...\n");
	File_Init(&smyFile);
	if(DS_SUCCESS != File_OpenInFile(cpathBuf, &smyFile) )
	{
		iret = AES_DRIVER_ERR;
		if(DS_SUCCESS != File_Finit(&smyFile))
		{
			iret = AES_DRIVER_SYSERR;
		}
		printf("Invalid file path!\n");
		return iret;
	}
	if(DS_SUCCESS != File_OpenOutFile(coutFile, &smyFile))
	{
		iret = AES_DRIVER_ERR;
		if(DS_SUCCESS != File_Finit(&smyFile))
		{
			iret = AES_DRIVER_SYSERR;
		}
		printf("Invalid file path!\n");
		return iret;		
	}
	printf("Opening files done.\n");
	
	/**make key**/
	printf("Making subkeys...\n");
	byte bkey[AES_KEY_SIZE];
	int ikeyCount = 0;
	for(ikeyCount; ikeyCount < AES_KEY_SIZE; ikeyCount++)
	{
		byte btmp = 0;
		btmp |= DS_16to2(ckeyBuf[ikeyCount * 2]);
		btmp <<= 4;
		btmp |= DS_16to2(ckeyBuf[ikeyCount * 2 + 1]);
		bkey[ikeyCount] = btmp;
	}
	AES_Key_Set(&smyKey, bkey, AES_KEY_SIZE);
	AES_Key_Make(&smyKey);
	printf("Making subkeys done.\n");
	
	/**ecnrypting**/
	printf("Decrypting...\n");
	while(1)
	{
		int ifileFlag = File_Read(&smyFile);
		int ibufIndex = 0;
		while(ibufIndex < smyFile.uibyteCount)
		{
			AES_Iter_Decrypt(smyFile.DATABUF + ibufIndex, AES_PAGE_SIZE, &smyKey);
			ibufIndex += AES_PAGE_SIZE;
		}
		if(DS_SUCCESS != ifileFlag)
		{
			smyFile.uibyteCount -= AES_PAGE_SIZE;
			smyFile.uibyteCount -= (unsigned int)smyFile.DATABUF[smyFile.uibyteCount - 1];
		}
		File_Write(&smyFile);
		
		/**end encrypting**/
		if(DS_SUCCESS != ifileFlag)
		{
			break;
		}
	}
	printf("Decrypting done.\n");

	/**set off resources**/		
	if(DS_SUCCESS != File_Finit(&smyFile))
	{
		iret = AES_DRIVER_SYSERR;
	}
	
	return iret;
}
Esempio n. 4
0
int main(int argc, char **argv)
#endif /* __APPLE__ */
{
	bool commit_dune_cfg = false;
	VideoScaleFilter scale_filter = FILTER_NEAREST_NEIGHBOR;
	int scaling_factor = 2;
	char filter_text[64];
#if defined(_WIN32)
	#if defined(__MINGW32__) && defined(__STRICT_ANSI__)
		int __cdecl __MINGW_NOTHROW _fileno (FILE*);
	#endif
	FILE *err = fopen("error.log", "w");
	FILE *out = fopen("output.log", "w");

	#if defined(_MSC_VER)
		_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
	#endif

	if (err != NULL) _dup2(_fileno(err), _fileno(stderr));
	if (out != NULL) _dup2(_fileno(out), _fileno(stdout));
	FreeConsole();
#endif
#ifdef TOS
	(void)Cconws(window_caption);
	(void)Cconws("\r\nrevision:   ");
	(void)Cconws(g_opendune_revision);
	(void)Cconws("\r\nbuild date: ");
	(void)Cconws(g_opendune_build_date);
	(void)Cconws("\r\n");
	/* open log files and set buffering mode */
	g_errlog = fopen("error.log", "w");
	if(g_errlog != NULL) setvbuf(g_errlog, NULL, _IONBF, 0);
#ifdef _DEBUG
	g_outlog = fopen("output.log", "w");
	if(g_outlog != NULL) setvbuf(g_outlog, NULL, _IOLBF, 0);
#endif
	if(atexit(exit_handler) != 0) {
		Error("atexit() failed\n");
	}
#endif
	CrashLog_Init();

	VARIABLE_NOT_USED(argc);
	VARIABLE_NOT_USED(argv);

	/* Load opendune.ini file */
	Load_IniFile();

	if (!File_Init()) {
		exit(1);
	}

	/* Loading config from dune.cfg */
	if (!Config_Read("dune.cfg", &g_config)) {
		Config_Default(&g_config);
		commit_dune_cfg = true;
	}
	/* reading config from opendune.ini which prevail over dune.cfg */
	SetLanguage_From_IniFile(&g_config);

	/* Writing config to dune.cfg */
	if (commit_dune_cfg && !Config_Write("dune.cfg", &g_config)) {
		Error("Error writing to dune.cfg file.\n");
		exit(1);
	}

	Input_Init();

	Drivers_All_Init();

	scaling_factor = IniFile_GetInteger("scalefactor", 2);
	if (IniFile_GetString("scalefilter", NULL, filter_text, sizeof(filter_text)) != NULL) {
		if (strcasecmp(filter_text, "nearest") == 0) {
			scale_filter = FILTER_NEAREST_NEIGHBOR;
		} else if (strcasecmp(filter_text, "scale2x") == 0) {
			scale_filter = FILTER_SCALE2X;
		} else if (strcasecmp(filter_text, "hqx") == 0) {
			scale_filter = FILTER_HQX;
		} else {
			Error("unrecognized scalefilter value '%s'\n", filter_text);
		}
	}

	if (!OpenDune_Init(scaling_factor, scale_filter)) exit(1);

	g_mouseDisabled = 0;

	GameLoop_Main();

	printf("%s\n", String_Get_ByIndex(STR_THANK_YOU_FOR_PLAYING_DUNE_II));

	PrepareEnd();
	Free_IniFile();
	exit(0);
}
Esempio n. 5
0
Result FStream_Init(FStream* pfStream)
{
  String_Init(&pfStream->fileName, NULL);
  File_Init(&pfStream->file);
  return RESULT_OK;
}
Esempio n. 6
0
/*********************************************************************************************************
** Function name:           taskStart	   
** Descriptions:            Start task	
** input parameters:        *parg
** output parameters:       ?      
** Returned value:          ? 
*********************************************************************************************************/
static void TaskStart (void  *parg)
{

		INT8U err;
		UserRS485Send ussend;
	
    (void)parg;


	
    #if OS_TASK_STAT_EN > 0
    OSStatInit();                                                       /*  Enable statistics           */
    #endif
	
		/* Init the file system */
	
	optionSaveStruct.masterIP[1]=0xaa;
	
	EEPROM_WriteStruct(optionSaveStruct);
	
    yaffs_start_up();	
		File_Init();
		
		KeyInit();
   	KeyQueueHead=OSQCreate(KeyMsg,KEYQSIZE);		//创建按键消息队列 在优先级较高的任务中执行
		
		ConfigQueueHead = OSQCreate( ConfigMsg, CONFIGQSIZE );
		UploadQueueHead = OSQCreate( UploadMsg, UPLOADQSIZE );
	
		EquipmentTaskSem = OSSemCreate(0);
		UartRcvTaskSem   = OSSemCreate(1);
		sem_tcp_init_done = OSSemCreate(0);
		UartSendTaskSem = OSSemCreate(1);
		
		tcpip_init(tcpip_init_done, NULL);
    OSSemPend(sem_tcp_init_done, 0, &err);

    eth_netif_init(ipConfig);
		
		TCPTest();
 
    err = OSTaskCreate((void (*)(void *)) Equipment_Task,				
                          (void          * ) 0,							
                          (OS_STK        * )&TaskEquipmentStk[TASK_KEY_STK_SIZE - 1],		
                          (INT8U           ) TASK_EQUIPMENT_PRIO  );  				/*	Create Equipment Task */
		
		//printf("Equipment_Task: err = %d\n", err );
	
		err = OSTaskCreate((void (*)(void *)) UartRcv_Task,				
                          (void          * ) 0,							
                          (OS_STK        * )&TaskUartRcvStk[TASK_KEY_STK_SIZE - 1],		
                          (INT8U           ) TASK_UART_RCV_PRIO  );  				  /*	Create Equipment Task */
													
		//printf("UartRcv_Task: err = %d\n", err );
													
		err = OSTaskCreate((void (*)(void *)) FileReceive_Task,				
                          (void          * ) 0,							
                          (OS_STK        * )&TaskFileRcvStk[TASK_FILERCV_STK_SIZE - 1],		
                          (INT8U           ) TASK_FILE_RCV_PRIO  );  			  	/*	Create FileReceive Task */
		
		//printf("FileReceive_Task: err = %d\n", err );
				
		err = OSTaskCreate((void (*)(void *)) hvsftpd_main,				
                          (void          * ) 0,							
                          (OS_STK        * )&TaskFtpStk[TASK_FTP_STK_SIZE - 1],		
                          (INT8U           ) TASK_FTP_PRIO  );  			  	/*	Create FileReceive Task */
		
		printf(" hvsftpd_Task: err = %d\n", err );
													
	
		err = OSTaskCreate ((void (*)(void	*))Menu_Task, 
						   (void 	*)0,   
						   (OS_STK	*)&Gstk2[MENU_TASK_STK_SIZE-1],
						   (INT8U	 )MENU_TASK_PRIO  	);                           /*  Create Menu Task     */ 	
							 
/*		err = OSTaskCreate ((void (*)(void	*))Test_Key, 
						   (void 	*)0,   
						   (OS_STK	*)&TestStk[511],
						   (INT8U	 )44  	);                           /  Create Menu Task     */ 	
			
		App_KeyTaskCreate();						  /* Create Task Key */

#if	FRMB_DEBUG
		ussend.address=0x00;
		ussend.ctrl=0x01;
		ussend.data[0]=0xaa;
		ussend .len=1;
		ussend.CRCH=0x00;
		ussend.CRCL=0x11;
#else

//		err=OSTaskCreate((void (*)(void *))FMB_Task,
//											(void *)0,
//											(OS_STK *)&FMBStk[FMB_TASK_STK_SIZE-1],
//											(INT8U )FMB_TASK_PRIO	);
//											
//		err=OSTaskCreate((void (*)(void *))FMB_Poll_Task,
//											(void *)0,
//											(OS_STK *)&FMBPollStk[FMB_TASK_STK_SIZE-1],
//											(INT8U )FMB_POLL_TASK_PRIO	);									
											
		
		
	
#endif

		while (1) 
		{
#if	FRMB_DEBUG
			RS485Send_Struct(RS485_UART0,&ussend);
			RS485Send_Struct(RS485_UART2,&ussend);
			RS485Send_Struct(RS485_UART3,&ussend);
			RS485Send_Struct(RS485_UART4,&ussend);
#else			
 			
			
			
#endif
			//OSTimeDly(500);		
			OSTaskSuspend(OS_PRIO_SELF);                                    /*  The start task can be pended*/
                                                                        /*  here. ??????????  */			
		}
}