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); }
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; }
/******************************************************************************* 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; }
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); }
Result FStream_Init(FStream* pfStream) { String_Init(&pfStream->fileName, NULL); File_Init(&pfStream->file); return RESULT_OK; }
/********************************************************************************************************* ** 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. ?????????? */ } }