mirror of
https://github.com/rvtr/TwlToolsRED.git
synced 2025-10-31 06:41:18 -04:00
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlToolsRED@37 7061adef-622a-194b-ae81-725974e89856
This commit is contained in:
parent
1365476d69
commit
fa7c5fcb6f
112
build/tools/sctools/common/src/error_report.c
Normal file
112
build/tools/sctools/common/src/error_report.c
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
#include <twl.h>
|
||||||
|
#include "text.h"
|
||||||
|
#include "mprintf.h"
|
||||||
|
#include "logprintf.h"
|
||||||
|
|
||||||
|
#include "error_report.h"
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _ERROR_REPORT {
|
||||||
|
struct _ERROR_REPORT *next;
|
||||||
|
char *report_str;
|
||||||
|
} ERROR_REPORT;
|
||||||
|
|
||||||
|
static ERROR_REPORT *er_head;
|
||||||
|
static BOOL er_active = FALSE;
|
||||||
|
|
||||||
|
void Error_Report_Init(void)
|
||||||
|
{
|
||||||
|
er_active = TRUE;
|
||||||
|
er_head = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Error_Report_End(void)
|
||||||
|
{
|
||||||
|
ERROR_REPORT *er_temp;
|
||||||
|
ERROR_REPORT *er_next;
|
||||||
|
er_temp = er_head;
|
||||||
|
while( er_temp != NULL ) {
|
||||||
|
if( er_temp->report_str ) {
|
||||||
|
OS_Free( (void *)(er_temp->report_str) );
|
||||||
|
}
|
||||||
|
er_next = er_temp->next;
|
||||||
|
OS_Free( er_temp );
|
||||||
|
er_temp = er_next;
|
||||||
|
}
|
||||||
|
er_head = NULL;
|
||||||
|
er_active = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL Error_Report_Display(TEXT_CTRL *tc)
|
||||||
|
{
|
||||||
|
ERROR_REPORT *er_temp;
|
||||||
|
if( er_active == FALSE ) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
if( er_head == NULL ) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
er_temp = er_head;
|
||||||
|
while( er_temp != NULL ) {
|
||||||
|
if( er_temp->report_str ) {
|
||||||
|
mfprintf(tc, "%s", er_temp->report_str );
|
||||||
|
}
|
||||||
|
er_temp = er_temp->next;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOL Error_Report_Add(char *str)
|
||||||
|
{
|
||||||
|
ERROR_REPORT *er_temp;
|
||||||
|
ERROR_REPORT **er_next;
|
||||||
|
char *str_buf;
|
||||||
|
u32 str_len;
|
||||||
|
if( er_active == FALSE ) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
if( str == NULL ) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
er_temp = (ERROR_REPORT *)OS_Alloc( sizeof(ERROR_REPORT) );
|
||||||
|
if( er_temp == NULL ) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
str_len = (u32)STD_StrLen(str);
|
||||||
|
str_buf = (char *)OS_Alloc( str_len + 1 );
|
||||||
|
if( str_buf == NULL ) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
STD_StrCpy(str_buf , str);
|
||||||
|
er_temp->report_str = str_buf;
|
||||||
|
str_buf += str_len;
|
||||||
|
*str_buf = '\0';
|
||||||
|
er_temp->next = NULL;
|
||||||
|
|
||||||
|
er_next = &er_head;
|
||||||
|
|
||||||
|
while( 1 ) {
|
||||||
|
if( *er_next == NULL ) {
|
||||||
|
*er_next = er_temp;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
er_next = &((*er_next)->next);
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL Error_Report_Printf(const char *fmt, ...)
|
||||||
|
{
|
||||||
|
#define STR_BUF_LEN 200
|
||||||
|
char str_buf[STR_BUF_LEN];
|
||||||
|
int ret;
|
||||||
|
va_list vlist;
|
||||||
|
va_start(vlist, fmt);
|
||||||
|
ret = STD_TVSNPrintf(str_buf, STR_BUF_LEN, fmt, vlist);
|
||||||
|
va_end(vlist);
|
||||||
|
OS_TPrintf( "%s len = %d\n",__FUNCTION__,ret);
|
||||||
|
// return ret;
|
||||||
|
return Error_Report_Add(str_buf);
|
||||||
|
}
|
||||||
22
build/tools/sctools/common/src/error_report.h
Normal file
22
build/tools/sctools/common/src/error_report.h
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#ifndef _ERROR_REPORT_H_
|
||||||
|
#define _ERROR_REPORT_H_
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void Error_Report_Init(void);
|
||||||
|
void Error_Report_End(void);
|
||||||
|
|
||||||
|
BOOL Error_Report_Add(char *str);
|
||||||
|
BOOL Error_Report_Printf(const char *fmt, ...);
|
||||||
|
|
||||||
|
BOOL Error_Report_Display(TEXT_CTRL *tc);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* _ERROR_REPORT_H_ */
|
||||||
@ -142,6 +142,7 @@ BOOL MiyaRestoreTWLSettings(const char *path)
|
|||||||
s32 readSize;
|
s32 readSize;
|
||||||
LCFGTWLSettingsData cfg_data;
|
LCFGTWLSettingsData cfg_data;
|
||||||
LCFGReadResult retval;
|
LCFGReadResult retval;
|
||||||
|
LCFGTWLTPCalibData tp_cal_data;
|
||||||
|
|
||||||
retval = LCFGi_THW_ReadSecureInfo();
|
retval = LCFGi_THW_ReadSecureInfo();
|
||||||
if( retval != LCFG_TSF_READ_RESULT_SUCCEEDED ) {
|
if( retval != LCFG_TSF_READ_RESULT_SUCCEEDED ) {
|
||||||
@ -151,9 +152,13 @@ BOOL MiyaRestoreTWLSettings(const char *path)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if( FALSE == ReadTWLSettings( &cfg_data ) ) {
|
if( FALSE == ReadTWLSettings( &cfg_data ) ) {
|
||||||
mprintf("Failed read cfg file 2.\n" );
|
mprintf("Failed read TWLSettings 2.\n" );
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* とりあえず別でTPキャリブレーションデータだけ置いとく */
|
||||||
|
LCFG_TSD_GetTPCalibration( &tp_cal_data );
|
||||||
|
|
||||||
|
|
||||||
FS_InitFile(&f);
|
FS_InitFile(&f);
|
||||||
bSuccess = FS_OpenFileEx(&f, path, FS_FILEMODE_R);
|
bSuccess = FS_OpenFileEx(&f, path, FS_FILEMODE_R);
|
||||||
@ -162,11 +167,9 @@ BOOL MiyaRestoreTWLSettings(const char *path)
|
|||||||
mprintf("Failed open file 2 - HWNormal Info.:%d\n", fsResult );
|
mprintf("Failed open file 2 - HWNormal Info.:%d\n", fsResult );
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
readSize = FS_ReadFile(&f, (void *)&cfg_data, (s32)sizeof(LCFGTWLSettingsData) );
|
|
||||||
#else
|
|
||||||
readSize = my_fs_crypto_read(&f, (void *)&cfg_data, (s32)sizeof(LCFGTWLSettingsData) );
|
readSize = my_fs_crypto_read(&f, (void *)&cfg_data, (s32)sizeof(LCFGTWLSettingsData) );
|
||||||
#endif
|
|
||||||
|
|
||||||
if( readSize != sizeof(LCFGTWLSettingsData) ) {
|
if( readSize != sizeof(LCFGTWLSettingsData) ) {
|
||||||
fsResult = FS_GetArchiveResultCode(path);
|
fsResult = FS_GetArchiveResultCode(path);
|
||||||
@ -181,6 +184,9 @@ BOOL MiyaRestoreTWLSettings(const char *path)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* さっき置いといたTPキャリブレーションデータを上書き */
|
||||||
|
STD_CopyMemory( (void *)&cfg_data.tp, (void *)&tp_cal_data ,sizeof(LCFGTWLTPCalibData) );
|
||||||
|
|
||||||
/* ŽÀ<C5BD>Û‚É<E2809A>‘‚«<E2809A>o‚µ */
|
/* ŽÀ<C5BD>Û‚É<E2809A>‘‚«<E2809A>o‚µ */
|
||||||
if( FALSE == WriteTWLSettings( &cfg_data ) ) {
|
if( FALSE == WriteTWLSettings( &cfg_data ) ) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -205,11 +211,6 @@ BOOL MiyaReadHWSecureInfo( LCFGTWLHWSecureInfo *Info )
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
c:/twlsdk/include/twl/lcfg/common/TWLHWInfo.h
|
|
||||||
#define LCFGi_GetHWN() ( &s_hwInfoN )
|
|
||||||
*/
|
|
||||||
|
|
||||||
STD_CopyMemory( (void *)Info, (void *)LCFGi_GetHWS() , sizeof(LCFGTWLHWSecureInfo) );
|
STD_CopyMemory( (void *)Info, (void *)LCFGi_GetHWS() , sizeof(LCFGTWLHWSecureInfo) );
|
||||||
|
|
||||||
OS_TPrintf( "HW Secure Info read succeeded.\n" );
|
OS_TPrintf( "HW Secure Info read succeeded.\n" );
|
||||||
|
|||||||
@ -43,6 +43,88 @@ BOOL MiyaReadHWSecureInfo( LCFGTWLHWSecureInfo *Info );
|
|||||||
BOOL MiyaReadHWNormalInfo_From_SD(const char *path, LCFGTWLHWNormalInfo *info);
|
BOOL MiyaReadHWNormalInfo_From_SD(const char *path, LCFGTWLHWNormalInfo *info);
|
||||||
|
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
typedef struct LCFGTWLHWNormalInfo
|
||||||
|
{
|
||||||
|
u8 rtcAdjust; // RTC調整値
|
||||||
|
u8 rsv[ 3 ];
|
||||||
|
u8 movableUniqueID[ LCFG_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN ]; // 移行可能なユニークID
|
||||||
|
} LCFGTWLHWNormalInfo; // 20byte
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct LCFGTWLHWSecureInfo
|
||||||
|
{
|
||||||
|
u32 validLanguageBitmap; // 本体で有効な言語コードをビット列で表現
|
||||||
|
struct {
|
||||||
|
u8 forceDisableWireless :1;
|
||||||
|
u8 :7;
|
||||||
|
}flags;
|
||||||
|
u8 pad[ 3 ];
|
||||||
|
u8 region; // リージョン
|
||||||
|
u8 serialNo[ LCFG_TWL_HWINFO_SERIALNO_LEN_MAX ]; // シリアルNo.(終端付きASCII文字列)
|
||||||
|
//-------------------------------------------------------------
|
||||||
|
// [TODO:]ランチャーでここまでの24bytesをSystemSharedにコピー。
|
||||||
|
//-------------------------------------------------------------
|
||||||
|
u8 launcherTitleID_Lo[ 4 ]; // NANDファームがリージョンによって異なる可能性のあるランチャーのTitleIDを識別するために使用
|
||||||
|
} LCFGTWLHWSecureInfo; // 28bytes
|
||||||
|
|
||||||
|
|
||||||
|
static inline void LCFG_TSD_GetTPCalibration( LCFGTWLTPCalibData *pDst )
|
||||||
|
{
|
||||||
|
MI_CpuCopy8( &LCFGi_GetTSD()->tp, pDst, sizeof(LCFGTWLTPCalibData) );
|
||||||
|
}
|
||||||
|
|
||||||
|
// タッチパネルキャリブレーションデータのセット。
|
||||||
|
static inline void LCFG_TSD_SetTPCalibration( const LCFGTWLTPCalibData *pTPCalib )
|
||||||
|
{
|
||||||
|
MI_CpuCopy16( pTPCalib, &LCFGi_GetTSD()->tp, sizeof(LCFGTWLTPCalibData) );
|
||||||
|
// MI_CpuCopy16( pTPCalib, &LCFGi_GetTSD_OS()->tp, sizeof(LCFGTWLTPCalibData) );
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef struct LCFGTWLSettingsData
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
u32 isFinishedInitialSetting : 1; // 初回設定終了?
|
||||||
|
u32 isFinishedInitialSetting_Launcher : 1; // ランチャーの初回設定終了?
|
||||||
|
u32 isSetLanguage : 1; // 言語コード設定済み?
|
||||||
|
u32 isAvailableWireless : 1; // 無線モジュールのRFユニットの有効化/無効化
|
||||||
|
u32 isBrokenTWLSettings : 1; // フラッシュ壊れシーケンス中?
|
||||||
|
u32 rsv : 19; // 予約
|
||||||
|
u32 isAgreeEULAFlagList : 8; // EULA同意フラグリスト(最下位ビットしか使用していない)
|
||||||
|
// WiFi設定は別データなので、ここに設定済みフラグは用意しない。
|
||||||
|
};
|
||||||
|
u32 raw;
|
||||||
|
} flags;
|
||||||
|
u8 rsv[ 1 ]; // 予約
|
||||||
|
u8 country; // 国コード
|
||||||
|
u8 language; // 言語(NTRとの違いは、データサイズ8bit)
|
||||||
|
u8 rtcLastSetYear; // RTCの前回設定年
|
||||||
|
s64 rtcOffset; // RTC設定時のオフセット値(ユーザーがRTC設定を変更する度にその値に応じて増減します。)
|
||||||
|
// 16bytes ここまでのパラメータサイズ
|
||||||
|
u8 agreeEulaVersion[ EULA_VERSION_LIST_NUM ]; // 8bytes 同意したEULAのバージョン
|
||||||
|
u8 pad[2];
|
||||||
|
LCFGTWLAlarm alarm; // 6bytes アラーム
|
||||||
|
LCFGTWLLauncherStatus launcherStatus; // 16bytes ランチャーステータス情報
|
||||||
|
LCFGTWLTPCalibData tp; // 20bytes タッチパネルキャリブレーションデータ
|
||||||
|
LCFGTWLOwnerInfo owner; // 80bytes オーナー情報
|
||||||
|
LCFGTWLParentalControl parental; // 148bytes ペアレンタルコントロール情報
|
||||||
|
} LCFGTWLSettingsData; // 296bytes
|
||||||
|
|
||||||
|
|
||||||
|
#define LCFG_TWL_FLAG_SET_LANGUAGE ( 1 << LCFG_TWL_FLAG_SET_LANGUAGE_SHIFT )
|
||||||
|
#define LCFG_TWL_FLAG_SET_DATE_TIME ( 1 << LCFG_TWL_FLAG_SET_DATE_TIME_SHIFT )
|
||||||
|
#define LCFG_TWL_FLAG_SET_COUNTRY ( 1 << LCFG_TWL_FLAG_SET_COUNTRY_SHIFT )
|
||||||
|
#define LCFG_TWL_FLAG_SET_FACE_PHOTO ( 1 << LCFG_TWL_FLAG_SET_FACE_PHOTO_SHIFT )
|
||||||
|
#define LCFG_TWL_FLAG_SET_NICKNAME ( 1 << LCFG_TWL_FLAG_SET_NICKNAME_SHIFT )
|
||||||
|
#define LCFG_TWL_FLAG_SET_COMMENT ( 1 << LCFG_TWL_FLAG_SET_COMMENT_SHIFT )
|
||||||
|
#define LCFG_TWL_FLAG_SET_BIRTHDAY ( 1 << LCFG_TWL_FLAG_SET_BIRTHDAY_SHIFT )
|
||||||
|
#define LCFG_TWL_FLAG_SET_USER_COLOR ( 1 << LCFG_TWL_FLAG_SET_USER_COLOR_SHIFT )
|
||||||
|
#define LCFG_TWL_FLAG_SET_TP
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,15 @@
|
|||||||
#ifndef _LOGPRINT_
|
#ifndef _LOGPRINT_
|
||||||
#define _LOGPRINT_
|
#define _LOGPRINT_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
void miya_log_fprintf(FSFile *fd, const char *fmt, ...);
|
void miya_log_fprintf(FSFile *fd, const char *fmt, ...);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif /* _LOGPRINT_ */
|
#endif /* _LOGPRINT_ */
|
||||||
|
|||||||
@ -19,6 +19,8 @@ static void miya_mcu_free_reg_pxi_callback(PXIFifoTag tag, u32 data, BOOL err)
|
|||||||
#pragma unused(err)
|
#pragma unused(err)
|
||||||
switch( my_mcu_command ) {
|
switch( my_mcu_command ) {
|
||||||
|
|
||||||
|
case MIYA_MCU_COMMAND_SET_FREE_REG:
|
||||||
|
break;
|
||||||
case MIYA_MCU_COMMAND_GET_FREE_REG:
|
case MIYA_MCU_COMMAND_GET_FREE_REG:
|
||||||
miya_mcu_free_register = (u8)(0xff & data);
|
miya_mcu_free_register = (u8)(0xff & data);
|
||||||
break;
|
break;
|
||||||
@ -63,6 +65,17 @@ static void miya_mcu_get_free_reg(void)
|
|||||||
miya_mcu_send_pxi_data(MIYA_MCU_COMMAND_GET_FREE_REG);
|
miya_mcu_send_pxi_data(MIYA_MCU_COMMAND_GET_FREE_REG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// miya_mcu_set_free_reg( u8 number, u8 value );
|
||||||
|
|
||||||
|
static void miya_mcu_set_free_reg( u8 value )
|
||||||
|
{
|
||||||
|
u32 data;
|
||||||
|
data = MIYA_MCU_COMMAND_SET_FREE_REG;
|
||||||
|
data |= ((u32)value << 4);
|
||||||
|
miya_mcu_send_pxi_data(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void miya_mcu_get_volume(void)
|
static void miya_mcu_get_volume(void)
|
||||||
{
|
{
|
||||||
miya_mcu_send_pxi_data(MIYA_MCU_COMMAND_GET_VOLUME);
|
miya_mcu_send_pxi_data(MIYA_MCU_COMMAND_GET_VOLUME);
|
||||||
@ -91,6 +104,25 @@ static void miya_mcu_set_brightness(u8 brightness)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
u8 MCU_GetFreeRegister( void )
|
||||||
|
{
|
||||||
|
OSMessage message;
|
||||||
|
miya_mcu_get_free_reg();
|
||||||
|
if( TRUE == OS_ReceiveMessage(&MyMesgQueue, &message, OS_MESSAGE_BLOCK) ) {
|
||||||
|
}
|
||||||
|
return miya_mcu_free_register;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL MCU_SetFreeRegister( u8 value )
|
||||||
|
{
|
||||||
|
OSMessage message;
|
||||||
|
miya_mcu_set_free_reg( value );
|
||||||
|
if( TRUE == OS_ReceiveMessage(&MyMesgQueue, &message, OS_MESSAGE_BLOCK) ) {
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
u8 MCU_GetFreeReg( void )
|
u8 MCU_GetFreeReg( void )
|
||||||
{
|
{
|
||||||
OSMessage message;
|
OSMessage message;
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
#define MIYA_MCU_COMMAND_GET_BRIGHTNESS 3
|
#define MIYA_MCU_COMMAND_GET_BRIGHTNESS 3
|
||||||
#define MIYA_MCU_COMMAND_SET_VOLUME 4
|
#define MIYA_MCU_COMMAND_SET_VOLUME 4
|
||||||
#define MIYA_MCU_COMMAND_SET_BRIGHTNESS 5
|
#define MIYA_MCU_COMMAND_SET_BRIGHTNESS 5
|
||||||
|
#define MIYA_MCU_COMMAND_SET_FREE_REG 6
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@ -15,6 +15,8 @@ extern "C" {
|
|||||||
|
|
||||||
void MIYA_MCU_Init(void);
|
void MIYA_MCU_Init(void);
|
||||||
u8 MCU_GetFreeReg( void );
|
u8 MCU_GetFreeReg( void );
|
||||||
|
u8 MCU_GetFreeRegister( void );
|
||||||
|
BOOL MCU_SetFreeRegister( u8 value );
|
||||||
BOOL MCU_SetBackLightBrightness( u8 brightness );
|
BOOL MCU_SetBackLightBrightness( u8 brightness );
|
||||||
BOOL MCU_SetVolume( u8 vol );
|
BOOL MCU_SetVolume( u8 vol );
|
||||||
u8 MCU_GetBackLightBrightness( void );
|
u8 MCU_GetBackLightBrightness( void );
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -22,8 +22,6 @@ s32 my_fs_crypto_read(FSFile *f, void *ptr, s32 size);
|
|||||||
|
|
||||||
int find_title_save_data(MY_DIR_ENTRY_LIST **headp, const char *path_dst,
|
int find_title_save_data(MY_DIR_ENTRY_LIST **headp, const char *path_dst,
|
||||||
const char *path_src, int *save_dir_info, char *log_file_name , int level);
|
const char *path_src, int *save_dir_info, char *log_file_name , int level);
|
||||||
int find_copy( MY_DIR_ENTRY_LIST **headp, const char *path_dst, const char *path_src,
|
|
||||||
char *extension, int max_level, int *save_info, char *log_file_name , int level);
|
|
||||||
int copy_r( MY_DIR_ENTRY_LIST **headp, const char *path_dst, const char *path_src, char *log_file_name, int level );
|
int copy_r( MY_DIR_ENTRY_LIST **headp, const char *path_dst, const char *path_src, char *log_file_name, int level );
|
||||||
int get_title_id(MY_DIR_ENTRY_LIST **headp, const char *path_src,
|
int get_title_id(MY_DIR_ENTRY_LIST **headp, const char *path_src,
|
||||||
int *save_parent_dir_info_flag, char *log_file_name, int level );
|
int *save_parent_dir_info_flag, char *log_file_name, int level );
|
||||||
@ -32,25 +30,38 @@ void PrintDirEntryListForward( MY_DIR_ENTRY_LIST *head, FSFile *log_fd );
|
|||||||
void PrintDirEntryListBackward( MY_DIR_ENTRY_LIST *head, FSFile *log_fd );
|
void PrintDirEntryListBackward( MY_DIR_ENTRY_LIST *head, FSFile *log_fd );
|
||||||
void PrintSrcDirEntryListBackward( MY_DIR_ENTRY_LIST *head, FSFile *log_fd);
|
void PrintSrcDirEntryListBackward( MY_DIR_ENTRY_LIST *head, FSFile *log_fd);
|
||||||
|
|
||||||
int SaveDirEntryList( MY_DIR_ENTRY_LIST *head , char *path );
|
BOOL SaveDirEntryList( MY_DIR_ENTRY_LIST *head , char *path, int *list_count, int *error_count, char *log_file_name);
|
||||||
BOOL RestoreDirEntryList( char *path, char *log_file_name);
|
BOOL RestoreDirEntryList( char *path , char *log_file_name, int *list_count, int *error_count);
|
||||||
|
BOOL RestoreDirEntryListSystemBackupOnly( char *path , char *log_file_name, int *list_count, int *error_count);
|
||||||
|
|
||||||
|
BOOL GetUserAppTitleList( MY_DIR_ENTRY_LIST *head, u64 **pBuffer, int *size, char *log_file_name);
|
||||||
BOOL ClearDirEntryList( MY_DIR_ENTRY_LIST **headp );
|
BOOL ClearDirEntryList( MY_DIR_ENTRY_LIST **headp );
|
||||||
|
|
||||||
void write_debug_data(void);
|
void write_debug_data(void);
|
||||||
|
|
||||||
BOOL SDCardValidation(void);
|
BOOL SDCardValidation(void);
|
||||||
BOOL TWLCardValidation(void);
|
BOOL TWLCardValidation(void);
|
||||||
BOOL CheckShopRecord(u8 region, FSFile *log_fd);
|
BOOL CheckShopRecord(u8 region, FSFile *log_fd);
|
||||||
BOOL MydataSave(const char *path, void *pData, int size, FSFile *log_fd);
|
//BOOL MydataSave(const char *path, void *pData, int size, FSFile *log_fd);
|
||||||
BOOL MydataLoad(const char *path, void *pBuffer, int size, FSFile *log_fd);
|
//BOOL MydataLoad(const char *path, void *pBuffer, int size, FSFile *log_fd);
|
||||||
|
|
||||||
BOOL MydataLoadDecrypt(const char *path, void *pBuffer, int size, FSFile *log_fd);
|
BOOL MydataLoadDecrypt(const char *path, void *pBuffer, int size, FSFile *log_fd);
|
||||||
BOOL MydataSaveEncrypt(const char *path, void *pData, int size, FSFile *log_fd);
|
BOOL MydataSaveEncrypt(const char *path, void *pData, int size, FSFile *log_fd);
|
||||||
|
|
||||||
void GetDirEntryList( MY_DIR_ENTRY_LIST *head, u64 **pBuffer, int *size);
|
|
||||||
BOOL TitleIDSave(const char *path, u64 *pData, int count, FSFile *log_fd);
|
BOOL TitleIDSave(const char *path, u64 *pData, int count, char *log_file_name);
|
||||||
BOOL TitleIDLoad(const char *path, u64 **pBuffer, int *count, FSFile *log_fd);
|
BOOL TitleIDLoad(const char *path, u64 **pBuffer, int *count, char *log_file_name);
|
||||||
|
|
||||||
BOOL CopyFile(const char *dst_path, const char *src_path, FSFile *log_fd );
|
BOOL CopyFile(const char *dst_path, const char *src_path, FSFile *log_fd );
|
||||||
|
|
||||||
|
void Log_File_Close(FSFile *log_fd);
|
||||||
|
BOOL Log_File_Open(FSFile *log_fd, const char *log_file_name);
|
||||||
|
|
||||||
|
|
||||||
|
void Miya_debug_OFF(void);
|
||||||
|
void Miya_debug_ON(void);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#define MY_DATA_VERSION_MAJOR 0
|
#define MY_DATA_VERSION_MAJOR 0
|
||||||
#define MY_DATA_VERSION_MINOR 2
|
#define MY_DATA_VERSION_MINOR 5
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u8 version_major;
|
u8 version_major;
|
||||||
@ -12,11 +12,19 @@ typedef struct {
|
|||||||
BOOL rtc_time_flag;
|
BOOL rtc_time_flag;
|
||||||
RTCDate rtc_date;
|
RTCDate rtc_date;
|
||||||
RTCTime rtc_time;
|
RTCTime rtc_time;
|
||||||
|
BOOL wireless_lan_param_flag;
|
||||||
|
BOOL user_settings_flag;
|
||||||
BOOL shop_record_flag;
|
BOOL shop_record_flag;
|
||||||
int num_of_user_download_app;
|
int num_of_user_download_app;
|
||||||
int num_of_app_save_data;
|
int num_of_app_save_data;
|
||||||
int num_of_photo_files;
|
int num_of_photo_files;
|
||||||
int num_of_shared2_files;
|
int num_of_shared2_files;
|
||||||
|
|
||||||
|
int num_of_error_user_download_app; /* unused */
|
||||||
|
int num_of_error_app_save_data;
|
||||||
|
int num_of_error_photo_files;
|
||||||
|
int num_of_error_shared2_files;
|
||||||
|
|
||||||
BOOL uniqueid_flag;
|
BOOL uniqueid_flag;
|
||||||
u8 movableUniqueID[ LCFG_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN ]; // 移行可能なユニークID 16byte
|
u8 movableUniqueID[ LCFG_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN ]; // 移行可能なユニークID 16byte
|
||||||
u32 deviceId;
|
u32 deviceId;
|
||||||
|
|||||||
@ -58,6 +58,30 @@ char *MyFile_GetUserSettingsFileName(void)
|
|||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
char *MyFile_GetUserAppTitleListLogFileName(void)
|
||||||
|
{
|
||||||
|
STD_StrCpy( path , path_base );
|
||||||
|
STD_StrCat( path , MY_FILE_NAME_USER_APP_TITLE_LIST_LOG );
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *MyFile_GetNupLogFileName(void)
|
||||||
|
{
|
||||||
|
STD_StrCpy( path , "sdmc:/" );
|
||||||
|
STD_StrCat( path , MY_FILE_NAME_NUP_LOG);
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *MyFile_GetEcDownloadLogFileName(void)
|
||||||
|
{
|
||||||
|
STD_StrCpy( path , path_base );
|
||||||
|
STD_StrCat( path , MY_FILE_NAME_EC_DOWNLOAD_LOG );
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
char *MyFile_GetAppSharedSaveDirName(void)
|
char *MyFile_GetAppSharedSaveDirName(void)
|
||||||
{
|
{
|
||||||
STD_StrCpy( path , path_base );
|
STD_StrCpy( path , path_base );
|
||||||
@ -79,6 +103,14 @@ char *MyFile_GetAppSharedRestoreLogFileName(void)
|
|||||||
return path_log;
|
return path_log;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *MyFile_GetAppSharedSaveLogFileName(void)
|
||||||
|
{
|
||||||
|
STD_StrCpy( path_log , path_base );
|
||||||
|
STD_StrCat( path_log , MY_FILE_NAME_APP_SHARED_SAVE_LOG );
|
||||||
|
return path_log;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
char *MyFile_GetAppSharedListFileName(void)
|
char *MyFile_GetAppSharedListFileName(void)
|
||||||
{
|
{
|
||||||
STD_StrCpy( path , path_base );
|
STD_StrCpy( path , path_base );
|
||||||
@ -107,6 +139,13 @@ char *MyFile_GetPhotoRestoreLogFileName(void)
|
|||||||
return path_log;
|
return path_log;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *MyFile_GetPhotoSaveLogFileName(void)
|
||||||
|
{
|
||||||
|
STD_StrCpy( path_log , path_base );
|
||||||
|
STD_StrCat( path_log , MY_FILE_NAME_PHOTO_SAVE_LOG );
|
||||||
|
return path_log;
|
||||||
|
}
|
||||||
|
|
||||||
char *MyFile_GetPhotoListFileName(void)
|
char *MyFile_GetPhotoListFileName(void)
|
||||||
{
|
{
|
||||||
STD_StrCpy( path , path_base );
|
STD_StrCpy( path , path_base );
|
||||||
@ -114,31 +153,46 @@ char *MyFile_GetPhotoListFileName(void)
|
|||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *MyFile_GetAppDataSaveDirName(void)
|
char *MyFile_GetSaveDataSaveDirName(void)
|
||||||
{
|
{
|
||||||
STD_StrCpy( path , path_base );
|
STD_StrCpy( path , path_base );
|
||||||
STD_StrCat( path , MY_DIR_NAME_TITLE );
|
STD_StrCat( path , MY_DIR_NAME_SAVE_DATA );
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *MyFile_GetAppDataLogFileName(void)
|
char *MyFile_GetSaveDataLogFileName(void)
|
||||||
{
|
{
|
||||||
STD_StrCpy( path_log , path_base );
|
STD_StrCpy( path_log , path_base );
|
||||||
STD_StrCat( path_log , MY_FILE_NAME_TITLE_LOG );
|
STD_StrCat( path_log , MY_FILE_NAME_SAVE_DATA_LOG );
|
||||||
return path_log;
|
return path_log;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *MyFile_GetAppDataRestoreLogFileName(void)
|
char *MyFile_GetSaveDataRestoreLogFileName(void)
|
||||||
{
|
{
|
||||||
STD_StrCpy( path_log , path_base );
|
STD_StrCpy( path_log , path_base );
|
||||||
STD_StrCat( path_log , MY_FILE_NAME_TITLE_RESTORE_LOG );
|
STD_StrCat( path_log , MY_FILE_NAME_SAVE_DATA_RESTORE_LOG );
|
||||||
return path_log;
|
return path_log;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *MyFile_GetAppDataListFileName(void)
|
char *MyFile_GetSaveDataSaveLogFileName(void)
|
||||||
|
{
|
||||||
|
STD_StrCpy( path_log , path_base );
|
||||||
|
STD_StrCat( path_log , MY_FILE_NAME_SAVE_DATA_SAVE_LOG );
|
||||||
|
return path_log;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *MyFile_GetSaveDataListFileName(void)
|
||||||
{
|
{
|
||||||
STD_StrCpy( path , path_base );
|
STD_StrCpy( path , path_base );
|
||||||
STD_StrCat( path , MY_FILE_NAME_TITLE_LIST );
|
STD_StrCat( path , MY_FILE_NAME_SAVE_DATA_LIST );
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
char *MyFile_GetSaveDataListLogFileName(void)
|
||||||
|
{
|
||||||
|
STD_StrCpy( path , path_base );
|
||||||
|
STD_StrCat( path , MY_FILE_NAME_SAVE_DATA_LIST_LOG );
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,6 +210,13 @@ char *MyFile_GetDownloadTitleIDRestoreLogFileName(void)
|
|||||||
return path_log;
|
return path_log;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *MyFile_GetDownloadTitleIDSaveLogFileName(void)
|
||||||
|
{
|
||||||
|
STD_StrCpy( path_log , path_base );
|
||||||
|
STD_StrCat( path_log , MY_FILE_NAME_DOWNLOAD_TITLE_ID_RESTORE_LOG );
|
||||||
|
return path_log;
|
||||||
|
}
|
||||||
|
|
||||||
char *MyFile_GetDownloadTitleIDFileName(void)
|
char *MyFile_GetDownloadTitleIDFileName(void)
|
||||||
{
|
{
|
||||||
STD_StrCpy( path , path_base );
|
STD_StrCpy( path , path_base );
|
||||||
@ -184,4 +245,9 @@ char *MyFile_GetGlobalInformationRestoreFileName(void)
|
|||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *MyFile_GetGlobalInformationSaveFileName(void)
|
||||||
|
{
|
||||||
|
STD_StrCpy( path , path_base );
|
||||||
|
STD_StrCat( path , MY_FILE_NAME_ORG_SAVE_LOG );
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|||||||
@ -2,34 +2,47 @@
|
|||||||
#define _MY_FILE_NAME_H_
|
#define _MY_FILE_NAME_H_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define MY_FILE_NAME_UNIQUE_ID ("twl_unique.dat")
|
#define MY_FILE_NAME_UNIQUE_ID ("twl_unique.dat")
|
||||||
#define MY_FILE_NAME_WIFI_PARAM ("twl_wifi.bin")
|
#define MY_FILE_NAME_WIFI_PARAM ("twl_wifi.bin")
|
||||||
#define MY_FILE_NAME_USER_SETTINGS ("twl_user.dat")
|
#define MY_FILE_NAME_USER_SETTINGS ("twl_user.dat")
|
||||||
|
|
||||||
|
#define MY_FILE_NAME_USER_APP_TITLE_LIST_LOG ("user_app_lst.txt")
|
||||||
|
#define MY_FILE_NAME_NUP_LOG ("nup_log.txt")
|
||||||
|
#define MY_FILE_NAME_EC_DOWNLOAD_LOG ("ecdown.txt")
|
||||||
|
|
||||||
#define MY_DIR_NAME_APP_SHARED ("shared2")
|
#define MY_DIR_NAME_APP_SHARED ("shared2")
|
||||||
#define MY_FILE_NAME_APP_SHARED_LOG ("shared2.txt")
|
#define MY_FILE_NAME_APP_SHARED_LOG ("shared2.txt")
|
||||||
#define MY_FILE_NAME_APP_SHARED_LIST ("shared2.lst")
|
#define MY_FILE_NAME_APP_SHARED_LIST ("shared2.lst")
|
||||||
#define MY_FILE_NAME_APP_SHARED_RESTORE_LOG ("shared2_rst.txt")
|
#define MY_FILE_NAME_APP_SHARED_RESTORE_LOG ("shared2_rst.txt")
|
||||||
|
#define MY_FILE_NAME_APP_SHARED_SAVE_LOG ("shared2_sv.txt")
|
||||||
|
|
||||||
|
|
||||||
#define MY_DIR_NAME_PHOTO ("photo")
|
#define MY_DIR_NAME_PHOTO ("photo")
|
||||||
#define MY_FILE_NAME_PHOTO_LOG ("photo.txt")
|
#define MY_FILE_NAME_PHOTO_LOG ("photo.txt")
|
||||||
#define MY_FILE_NAME_PHOTO_LIST ("photo.lst")
|
#define MY_FILE_NAME_PHOTO_LIST ("photo.lst")
|
||||||
#define MY_FILE_NAME_PHOTO_RESTORE_LOG ("photo_rst.txt")
|
#define MY_FILE_NAME_PHOTO_RESTORE_LOG ("photo_rst.txt")
|
||||||
|
#define MY_FILE_NAME_PHOTO_SAVE_LOG ("photo_sv.txt")
|
||||||
|
|
||||||
#define MY_DIR_NAME_TITLE ("title")
|
#define MY_DIR_NAME_SAVE_DATA ("save")
|
||||||
#define MY_FILE_NAME_TITLE_LOG ("title.txt")
|
|
||||||
#define MY_FILE_NAME_TITLE_LIST ("title.lst")
|
|
||||||
#define MY_FILE_NAME_TITLE_RESTORE_LOG ("title_rst.txt")
|
|
||||||
|
|
||||||
#define MY_DIR_NAME_DOWNLOAD_TITLE_ID ("title")
|
#define MY_FILE_NAME_SAVE_DATA_LIST ("save.lst")
|
||||||
|
#define MY_FILE_NAME_SAVE_DATA_LOG ("save.txt")
|
||||||
|
#define MY_FILE_NAME_SAVE_DATA_LIST_LOG ("save_lst.txt")
|
||||||
|
#define MY_FILE_NAME_SAVE_DATA_RESTORE_LOG ("save_rst.txt")
|
||||||
|
#define MY_FILE_NAME_SAVE_DATA_SAVE_LOG ("save_sv.txt")
|
||||||
|
|
||||||
|
|
||||||
|
#define MY_DIR_NAME_DOWNLOAD_TITLE_ID ("title_id")
|
||||||
#define MY_FILE_NAME_DOWNLOAD_TITLE_ID_DATA ("title_id.dat")
|
#define MY_FILE_NAME_DOWNLOAD_TITLE_ID_DATA ("title_id.dat")
|
||||||
#define MY_FILE_NAME_DOWNLOAD_TITLE_ID_LOG ("title_id.txt" )
|
#define MY_FILE_NAME_DOWNLOAD_TITLE_ID_LOG ("title_id.txt" )
|
||||||
#define MY_FILE_NAME_DOWNLOAD_TITLE_ID_RESTORE_LOG ("title_id_rst.txt" )
|
#define MY_FILE_NAME_DOWNLOAD_TITLE_ID_RESTORE_LOG ("title_id_rst.txt" )
|
||||||
|
#define MY_FILE_NAME_DOWNLOAD_TITLE_ID_SAVE_LOG ("title_id_sv.txt" )
|
||||||
|
|
||||||
#define MY_FILE_NAME_ORG_DATA ("personal.dat")
|
#define MY_FILE_NAME_ORG_DATA ("personal.dat")
|
||||||
#define MY_FILE_NAME_ORG_LOG ("personal.txt")
|
#define MY_FILE_NAME_ORG_LOG ("personal.txt")
|
||||||
#define MY_FILE_NAME_ORG_RESTORE_LOG ("personal_rst.txt")
|
#define MY_FILE_NAME_ORG_RESTORE_LOG ("personal_rst.txt")
|
||||||
|
#define MY_FILE_NAME_ORG_SAVE_LOG ("personal_sv.txt")
|
||||||
|
|
||||||
|
|
||||||
#define MY_FILE_NAME_PRODUCT_LOG "product.log"
|
#define MY_FILE_NAME_PRODUCT_LOG "product.log"
|
||||||
@ -53,29 +66,38 @@ char *MyFile_GetUniqueIDFileName(void);
|
|||||||
char *MyFile_GetWifiParamFileName(void);
|
char *MyFile_GetWifiParamFileName(void);
|
||||||
char *MyFile_GetUserSettingsFileName(void);
|
char *MyFile_GetUserSettingsFileName(void);
|
||||||
|
|
||||||
|
char *MyFile_GetUserAppTitleListLogFileName(void);
|
||||||
|
char *MyFile_GetEcDownloadLogFileName(void);
|
||||||
|
char *MyFile_GetNupLogFileName(void);
|
||||||
|
|
||||||
char *MyFile_GetAppSharedSaveDirName(void);
|
char *MyFile_GetAppSharedSaveDirName(void);
|
||||||
char *MyFile_GetAppSharedLogFileName(void);
|
char *MyFile_GetAppSharedLogFileName(void);
|
||||||
char *MyFile_GetAppSharedListFileName(void);
|
char *MyFile_GetAppSharedListFileName(void);
|
||||||
char *MyFile_GetAppSharedRestoreLogFileName(void);
|
char *MyFile_GetAppSharedRestoreLogFileName(void);
|
||||||
|
char *MyFile_GetAppSharedSaveLogFileName(void);
|
||||||
|
|
||||||
char *MyFile_GetPhotoListFileName(void);
|
char *MyFile_GetPhotoListFileName(void);
|
||||||
char *MyFile_GetPhotoSaveDirName(void);
|
char *MyFile_GetPhotoSaveDirName(void);
|
||||||
char *MyFile_GetPhotoLogFileName(void);
|
char *MyFile_GetPhotoLogFileName(void);
|
||||||
char *MyFile_GetPhotoRestoreLogFileName(void);
|
char *MyFile_GetPhotoRestoreLogFileName(void);
|
||||||
|
char *MyFile_GetPhotoSaveLogFileName(void);
|
||||||
|
|
||||||
char *MyFile_GetAppDataSaveDirName(void);
|
char *MyFile_GetSaveDataSaveDirName(void);
|
||||||
char *MyFile_GetAppDataLogFileName(void);
|
char *MyFile_GetSaveDataLogFileName(void);
|
||||||
char *MyFile_GetAppDataListFileName(void);
|
char *MyFile_GetSaveDataListFileName(void);
|
||||||
char *MyFile_GetAppDataRestoreLogFileName(void);
|
char *MyFile_GetSaveDataListLogFileName(void);
|
||||||
|
char *MyFile_GetSaveDataRestoreLogFileName(void);
|
||||||
|
char *MyFile_GetSaveDataSaveLogFileName(void);
|
||||||
|
|
||||||
char *MyFile_GetDownloadTitleIDLogFileName(void);
|
char *MyFile_GetDownloadTitleIDLogFileName(void);
|
||||||
char *MyFile_GetDownloadTitleIDFileName(void);
|
char *MyFile_GetDownloadTitleIDFileName(void);
|
||||||
char *MyFile_GetDownloadTitleIDRestoreLogFileName(void);
|
char *MyFile_GetDownloadTitleIDRestoreLogFileName(void);
|
||||||
|
char *MyFile_GetDownloadTitleIDSaveLogFileName(void);
|
||||||
|
|
||||||
char *MyFile_GetGlobalInformationFileName(void);
|
char *MyFile_GetGlobalInformationFileName(void);
|
||||||
char *MyFile_GetGlobalInformationRestoreFileName(void);
|
char *MyFile_GetGlobalInformationRestoreFileName(void);
|
||||||
char *MyFile_GetGlobalInformationLogFileName(void);
|
char *MyFile_GetGlobalInformationLogFileName(void);
|
||||||
|
char *MyFile_GetGlobalInformationSaveFileName(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,16 +37,18 @@ static void* myAlloc_SOCL(u32 size);
|
|||||||
static void myFree_SOCL(void* ptr);
|
static void myFree_SOCL(void* ptr);
|
||||||
#endif // SDK_TWL
|
#endif // SDK_TWL
|
||||||
|
|
||||||
static void ncStartWiFi(void);
|
static int ncStartWiFi(void);
|
||||||
static void ncFinishWiFi(void);
|
static void ncFinishWiFi(void);
|
||||||
static void ncStartInet(void);
|
|
||||||
static void ncFinishInet(void);
|
|
||||||
|
|
||||||
static WcmControlApInfo apInfo;
|
static WcmControlApInfo apInfo;
|
||||||
static s32 previousAddr = 0;
|
static s32 previousAddr = 0;
|
||||||
static u8 g_deviceId = WCM_DEVICEID_DEFAULT;
|
static u8 g_deviceId = WCM_DEVICEID_DEFAULT;
|
||||||
static BOOL g_started = FALSE;
|
static BOOL g_started = FALSE;
|
||||||
|
|
||||||
|
|
||||||
|
static int nc_error_code = 0;
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name : NcGlobalInit
|
Name : NcGlobalInit
|
||||||
Description :
|
Description :
|
||||||
@ -93,9 +95,11 @@ typedef struct
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void ncStartWiFi(void)
|
static int ncStartWiFi(void)
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
|
int timeout_counter;
|
||||||
|
|
||||||
if (previousAddr != 0)
|
if (previousAddr != 0)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@ -152,14 +156,32 @@ static void ncStartWiFi(void)
|
|||||||
{
|
{
|
||||||
OS_TPrintf("SOC_Startup failed (%d)", result);
|
OS_TPrintf("SOC_Startup failed (%d)", result);
|
||||||
mprintf("SOC_Startup failed (%d)", result);
|
mprintf("SOC_Startup failed (%d)", result);
|
||||||
return;
|
return -2;
|
||||||
}
|
}
|
||||||
g_started = TRUE;
|
g_started = TRUE;
|
||||||
OS_TPrintf("DHCP....\n");
|
OS_TPrintf("DHCP....\n");
|
||||||
|
|
||||||
|
timeout_counter = 0;
|
||||||
|
|
||||||
while (SOC_GetHostID() == 0)
|
while (SOC_GetHostID() == 0)
|
||||||
{
|
{
|
||||||
OS_Sleep(100);
|
s32 err_code = SOC_GetConfigError(NULL);
|
||||||
|
if( err_code == SOC_IP_ERR_DHCP_TIMEOUT ) {
|
||||||
|
mprintf("%s -dhcp timeout\n",__FUNCTION__);
|
||||||
|
return NC_ERROR_TIMEOUT;
|
||||||
|
}
|
||||||
|
else if(err_code == SOC_IP_ERR_LINK_DOWN ) {
|
||||||
|
mprintf("%s -link down\n",__FUNCTION__);
|
||||||
|
return NC_ERROR_LINKDOWN;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
OS_Sleep(100);
|
||||||
|
timeout_counter++;
|
||||||
|
if( timeout_counter > (60 * 1000 / 100) ) {
|
||||||
|
mprintf("%s -timeout\n",__FUNCTION__);
|
||||||
|
return NC_ERROR_TIMEOUT;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
OS_TPrintf("IP addr = %3d.%3d.%3d.%3d\n", CPS_CV_IPv4(CPSMyIp));
|
OS_TPrintf("IP addr = %3d.%3d.%3d.%3d\n", CPS_CV_IPv4(CPSMyIp));
|
||||||
@ -167,6 +189,7 @@ static void ncStartWiFi(void)
|
|||||||
OS_TPrintf("GW addr = %3d.%3d.%3d.%3d\n", CPS_CV_IPv4(CPSGatewayIp));
|
OS_TPrintf("GW addr = %3d.%3d.%3d.%3d\n", CPS_CV_IPv4(CPSGatewayIp));
|
||||||
OS_TPrintf("DNS[0] = %3d.%3d.%3d.%3d\n", CPS_CV_IPv4(CPSDnsIp[0]));
|
OS_TPrintf("DNS[0] = %3d.%3d.%3d.%3d\n", CPS_CV_IPv4(CPSDnsIp[0]));
|
||||||
OS_TPrintf("DNS[1] = %3d.%3d.%3d.%3d\n", CPS_CV_IPv4(CPSDnsIp[1]));
|
OS_TPrintf("DNS[1] = %3d.%3d.%3d.%3d\n", CPS_CV_IPv4(CPSDnsIp[1]));
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ncFinishWiFi(void)
|
static void ncFinishWiFi(void)
|
||||||
@ -187,62 +210,73 @@ static void ncFinishWiFi(void)
|
|||||||
Arguments : apClass - SitDefsに定義されているアクセスポイントのクラス名
|
Arguments : apClass - SitDefsに定義されているアクセスポイントのクラス名
|
||||||
Returns :
|
Returns :
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
void NcStart(const char* apClass)
|
int NcStart(const char* apClass)
|
||||||
{
|
{
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
s32 wcm_phase;
|
s32 wcm_phase;
|
||||||
int len;
|
int len;
|
||||||
u8 key_bin_buf[MAX_KEY_BIN_BUF];
|
u8 key_bin_buf[MAX_KEY_BIN_BUF];
|
||||||
|
int timeout_counter;
|
||||||
|
|
||||||
SiteDefs_Init();
|
SiteDefs_Init();
|
||||||
|
|
||||||
if( TRUE == GetKeyModeStr() ) {
|
if( TRUE == GetKeyModeStr() ) {
|
||||||
if( FALSE == ENV_SetBinary("WiFi.LAN.1.AP.1.WEP.KEY", (void *)GetWlanKEYSTR()) ) {
|
if( FALSE == ENV_SetBinary("WiFi.LAN.1.AP.1.WEP.KEY", (void *)GetWlanKEYSTR()) ) {
|
||||||
OS_TPrintf("Error %s %d\n", __FUNCTION__,__LINE__);
|
OS_TPrintf("Error %s %d\n", __FUNCTION__,__LINE__);
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
STD_MemSet((void *)key_bin_buf, 0, MAX_KEY_BIN_BUF );
|
|
||||||
len = GetWlanKEYBIN(key_bin_buf);
|
|
||||||
if( len ) {
|
|
||||||
if( FALSE == ENV_SetBinary2("WiFi.LAN.1.AP.1.WEP.KEY", (void *)key_bin_buf, (u32)len) ) {
|
|
||||||
OS_TPrintf("Error %s %d\n", __FUNCTION__,__LINE__);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( FALSE == ENV_SetString("WiFi.LAN.1.AP.1.ESSID", GetWlanSSID()) ) {
|
|
||||||
OS_TPrintf("Error %s %d\n", __FUNCTION__,__LINE__);
|
|
||||||
}
|
|
||||||
|
|
||||||
if( FALSE == ENV_SetU8("WiFi.LAN.1.AP.1.WEP.MODE", (u8)GetWlanMode() ) ) {
|
|
||||||
OS_TPrintf("Error %s %d\n", __FUNCTION__,__LINE__);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!InitWcmApInfo(&apInfo, apClass))
|
|
||||||
{
|
|
||||||
mprintf("Invalid AP Class....");
|
|
||||||
OS_TPrintf("Invalid AP Class....");
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
while (1) {
|
else {
|
||||||
wcm_phase = WCM_GetPhase();
|
STD_MemSet((void *)key_bin_buf, 0, MAX_KEY_BIN_BUF );
|
||||||
if( wcm_phase == WCM_PHASE_NULL) {
|
len = GetWlanKEYBIN(key_bin_buf);
|
||||||
break;
|
if( len ) {
|
||||||
|
if( FALSE == ENV_SetBinary2("WiFi.LAN.1.AP.1.WEP.KEY", (void *)key_bin_buf, (u32)len) ) {
|
||||||
|
OS_TPrintf("Error %s %d\n", __FUNCTION__,__LINE__);
|
||||||
}
|
}
|
||||||
// OS_TPrintf("%s %d phase = %d\n", __FUNCTION__,__LINE__,wcm_phase);
|
|
||||||
OS_Sleep(100);
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
InitWcmControlByApInfoEx(&apInfo, g_deviceId);
|
if( FALSE == ENV_SetString("WiFi.LAN.1.AP.1.ESSID", GetWlanSSID()) ) {
|
||||||
|
OS_TPrintf("Error %s %d\n", __FUNCTION__,__LINE__);
|
||||||
|
}
|
||||||
|
|
||||||
OS_TPrintf("LINK UP....\n");
|
if( FALSE == ENV_SetU8("WiFi.LAN.1.AP.1.WEP.MODE", (u8)GetWlanMode() ) ) {
|
||||||
mprintf("-LINK UP");
|
OS_TPrintf("Error %s %d\n", __FUNCTION__,__LINE__);
|
||||||
while ( 1 ) {
|
}
|
||||||
wcm_phase = WCM_GetPhase();
|
|
||||||
if( wcm_phase == WCM_PHASE_DCF ) {
|
if (!InitWcmApInfo(&apInfo, apClass)) {
|
||||||
break;
|
mprintf("Invalid AP Class....");
|
||||||
}
|
OS_TPrintf("Invalid AP Class....");
|
||||||
|
return NC_ERROR_INVALID_AP_CLASS;
|
||||||
|
}
|
||||||
|
|
||||||
|
timeout_counter = 0;
|
||||||
|
while (1) {
|
||||||
|
wcm_phase = WCM_GetPhase();
|
||||||
|
if( wcm_phase == WCM_PHASE_NULL) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
timeout_counter++;
|
||||||
|
if( timeout_counter > (60 * 1000 / 100) ) {
|
||||||
|
mprintf("%s -timeout\n",__FUNCTION__);
|
||||||
|
return NC_ERROR_TIMEOUT;
|
||||||
|
}
|
||||||
|
OS_Sleep(100);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
InitWcmControlByApInfoEx(&apInfo, g_deviceId);
|
||||||
|
|
||||||
|
OS_TPrintf("LINK UP....\n");
|
||||||
|
mprintf("-LINK UP");
|
||||||
|
|
||||||
|
timeout_counter = 0;
|
||||||
|
|
||||||
|
|
||||||
|
while ( 1 ) {
|
||||||
|
wcm_phase = WCM_GetPhase();
|
||||||
|
if( wcm_phase == WCM_PHASE_DCF ) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
#if 0
|
#if 0
|
||||||
#define WCM_PHASE_NULL 0 // 初期化前
|
#define WCM_PHASE_NULL 0 // 初期化前
|
||||||
#define WCM_PHASE_WAIT 1 // 初期化直後の状態( 要求待ち )
|
#define WCM_PHASE_WAIT 1 // 初期化直後の状態( 要求待ち )
|
||||||
@ -260,47 +294,42 @@ void NcStart(const char* apClass)
|
|||||||
#define WCM_PHASE_TERMINATING 13 // WCM ライブラリの強制停止シーケンス中
|
#define WCM_PHASE_TERMINATING 13 // WCM ライブラリの強制停止シーケンス中
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if 0
|
switch( counter ) {
|
||||||
|
case 0:
|
||||||
mprintf("\r-LINK UP. ");
|
mprintf("\r-LINK UP. ");
|
||||||
for( i = 0 ; i < counter ; i++ ) {
|
break;
|
||||||
m_putchar(tc[0], '.');
|
case 1:
|
||||||
}
|
mprintf("\r-LINK UP.. ");
|
||||||
for( ; i < 6 ; i++ ) {
|
break;
|
||||||
m_putchar(tc[0], ' ');
|
case 2:
|
||||||
}
|
mprintf("\r-LINK UP... ");
|
||||||
i %= 6;
|
break;
|
||||||
#else
|
case 3:
|
||||||
switch( counter ) {
|
mprintf("\r-LINK UP.... ");
|
||||||
case 0:
|
break;
|
||||||
mprintf("\r-LINK UP. ");
|
case 5:
|
||||||
break;
|
mprintf("\r-LINK UP..... ");
|
||||||
case 1:
|
break;
|
||||||
mprintf("\r-LINK UP.. ");
|
case 6:
|
||||||
break;
|
mprintf("\r-LINK UP......");
|
||||||
case 2:
|
counter = -1;
|
||||||
mprintf("\r-LINK UP... ");
|
break;
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
mprintf("\r-LINK UP.... ");
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
mprintf("\r-LINK UP..... ");
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
mprintf("\r-LINK UP......");
|
|
||||||
counter = -1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
OS_Sleep(200);
|
|
||||||
counter++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
OS_TPrintf("connected\n");
|
timeout_counter++;
|
||||||
mprintf(" connected\n");
|
if( timeout_counter > (60 * 1000 / 200) ) {
|
||||||
|
mprintf("%s -timeout\n",__FUNCTION__);
|
||||||
|
return NC_ERROR_TIMEOUT;
|
||||||
|
}
|
||||||
|
OS_Sleep(200);
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
|
||||||
ncStartWiFi();
|
OS_TPrintf("connected\n");
|
||||||
|
mprintf(" connected\n");
|
||||||
|
|
||||||
|
return ncStartWiFi();
|
||||||
|
// return 0; /* 0 means success */
|
||||||
}
|
}
|
||||||
|
|
||||||
void NcFinish()
|
void NcFinish()
|
||||||
|
|||||||
@ -18,6 +18,11 @@
|
|||||||
#ifndef NITROWIFI_DEMOS_NETCONNECT_H_
|
#ifndef NITROWIFI_DEMOS_NETCONNECT_H_
|
||||||
#define NITROWIFI_DEMOS_NETCONNECT_H_
|
#define NITROWIFI_DEMOS_NETCONNECT_H_
|
||||||
|
|
||||||
|
|
||||||
|
#define NC_ERROR_TIMEOUT 1
|
||||||
|
#define NC_ERROR_INVALID_AP_CLASS 2
|
||||||
|
#define NC_ERROR_LINKDOWN 3
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
@ -25,7 +30,7 @@ extern "C"
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
void NcGlobalInit(void);
|
void NcGlobalInit(void);
|
||||||
void NcStart(const char* apClass);
|
int NcStart(const char* apClass);
|
||||||
void NcFinish(void);
|
void NcFinish(void);
|
||||||
void NcSetDevice(u8 deviceId);
|
void NcSetDevice(u8 deviceId);
|
||||||
void* NcAlloc(u32 name, s32 size);
|
void* NcAlloc(u32 name, s32 size);
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
#include "text.h"
|
#include "text.h"
|
||||||
|
|
||||||
#define TAB_SIZE 8
|
#define TAB_SIZE 8
|
||||||
|
#define Y_LINE_VIRTUAL_MAX (Y_LINE_MAX*10)
|
||||||
/*****************************************************/
|
/*****************************************************/
|
||||||
|
|
||||||
static LINE_BUF *lb_free_ptr;
|
static LINE_BUF *lb_free_ptr;
|
||||||
@ -125,7 +126,8 @@ static void init_text_buf(TEXT_BUF *tb)
|
|||||||
tb->num_y = &y_size;
|
tb->num_y = &y_size;
|
||||||
tb->num_x = &x_size;
|
tb->num_x = &x_size;
|
||||||
tb->virtual_x = LINE_BUF_X_SIZE - X_LINE_MAX - 1;
|
tb->virtual_x = LINE_BUF_X_SIZE - X_LINE_MAX - 1;
|
||||||
tb->virtual_y = Y_LINE_MAX * 4;
|
// tb->virtual_y = Y_LINE_MAX * 4;
|
||||||
|
tb->virtual_y = Y_LINE_VIRTUAL_MAX;
|
||||||
tb->start = tb->cur = alloc_line_buf();
|
tb->start = tb->cur = alloc_line_buf();
|
||||||
tb->display_offset_y = 0;
|
tb->display_offset_y = 0;
|
||||||
tb->display_offset_x = 0;
|
tb->display_offset_x = 0;
|
||||||
|
|||||||
@ -24,7 +24,7 @@ SRCDIR = ../common/src ./src
|
|||||||
|
|
||||||
SRCS = main.c mfiler.c key.c font.c text.c mprintf.c logprintf.c \
|
SRCS = main.c mfiler.c key.c font.c text.c mprintf.c logprintf.c \
|
||||||
gfx.c hwi.c mynvram.c my_fs_util.c \
|
gfx.c hwi.c mynvram.c my_fs_util.c \
|
||||||
hatamotolib.cpp miya_mcu.c \
|
hatamotolib.cpp miya_mcu.c error_report.c \
|
||||||
sitedefs.c wcm_control.c netconnect.c mywlan.c \
|
sitedefs.c wcm_control.c netconnect.c mywlan.c \
|
||||||
mynuc.c nuc_error_msg.c stream.c myfilename.c menu_version.c
|
mynuc.c nuc_error_msg.c stream.c myfilename.c menu_version.c
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
#include "mprintf.h"
|
#include "mprintf.h"
|
||||||
#include "logprintf.h"
|
#include "logprintf.h"
|
||||||
|
|
||||||
|
#include "my_fs_util.h"
|
||||||
|
|
||||||
#ifdef SDK_DEBUG
|
#ifdef SDK_DEBUG
|
||||||
#define ECDL_LOG(msg) OS_TPrintf("----\nECDL-LOG: %s\n----\n", msg);
|
#define ECDL_LOG(msg) OS_TPrintf("----\nECDL-LOG: %s\n----\n", msg);
|
||||||
@ -32,6 +32,11 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
static BOOL log_active = FALSE;
|
||||||
|
static FSFile *log_fd;
|
||||||
|
static FSFile log_fd_real;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void *Alloc(size_t size)
|
static void *Alloc(size_t size)
|
||||||
{
|
{
|
||||||
@ -39,6 +44,7 @@ static void *Alloc(size_t size)
|
|||||||
void* p = OS_Alloc(size);
|
void* p = OS_Alloc(size);
|
||||||
if( p == NULL ) {
|
if( p == NULL ) {
|
||||||
OS_TPrintf("Alloc error %s %d\n",__FUNCTION__,__LINE__);
|
OS_TPrintf("Alloc error %s %d\n",__FUNCTION__,__LINE__);
|
||||||
|
mprintf("Alloc error %s %d\n",__FUNCTION__,__LINE__);
|
||||||
}
|
}
|
||||||
OS_RestoreInterrupts(old);
|
OS_RestoreInterrupts(old);
|
||||||
return p;
|
return p;
|
||||||
@ -55,8 +61,21 @@ static void Free(void* ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void* AllocForNHTTP(u32 size, int align) { SDK_ASSERT(align <= 32);(void)align; return Alloc(size); }
|
static void* AllocForNHTTP(u32 size, int align)
|
||||||
static void* AllocForEC (u32 size, int align) { SDK_ASSERT(align <= 32);(void)align; return Alloc(size); }
|
{
|
||||||
|
if(align <= 32) {
|
||||||
|
return Alloc(size);
|
||||||
|
}
|
||||||
|
return Alloc(size);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void* AllocForEC(u32 size, int align)
|
||||||
|
{
|
||||||
|
if(align <= 32) {
|
||||||
|
return Alloc(size);
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static void* AllocForNSSL (u32 size) { return Alloc(size); }
|
static void* AllocForNSSL (u32 size) { return Alloc(size); }
|
||||||
static void* AllocForNAM (u32 size) { return Alloc(size); }
|
static void* AllocForNAM (u32 size) { return Alloc(size); }
|
||||||
@ -80,17 +99,6 @@ static void* ReallocForNSSL(void* p, u32 size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void PrintBytes(const void* pv, u32 size)
|
|
||||||
{
|
|
||||||
const u8* p = reinterpret_cast<const u8*>(pv);
|
|
||||||
|
|
||||||
for( u32 i = 0; i < size; i++ )
|
|
||||||
{
|
|
||||||
OS_TPrintf("%02X", p[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
struct StringMap
|
struct StringMap
|
||||||
{
|
{
|
||||||
int value;
|
int value;
|
||||||
@ -169,129 +177,27 @@ GetOSTWLRegionString(u8 x)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SetupUserInfo(void)
|
BOOL SetupVerData(void)
|
||||||
{
|
{
|
||||||
BOOL bSuccess;
|
BOOL bSuccess;
|
||||||
BOOL bModified = FALSE;
|
|
||||||
void* pWork;
|
|
||||||
|
|
||||||
// LCFG_ReadTWLSettings を行う前に LCFG_ReadHWSecureInfo が必要
|
|
||||||
{
|
|
||||||
bSuccess = LCFG_ReadHWSecureInfo();
|
|
||||||
SDK_ASSERT(bSuccess);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 設定の読み込み
|
|
||||||
{
|
|
||||||
pWork = Alloc(LCFG_READ_TEMP);
|
|
||||||
SDK_POINTER_ASSERT(pWork);
|
|
||||||
|
|
||||||
bSuccess = LCFG_ReadTWLSettings(reinterpret_cast<u8 (*)[LCFG_READ_TEMP]>(pWork));
|
|
||||||
SDK_ASSERT(bSuccess);
|
|
||||||
|
|
||||||
Free(pWork);
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// ニックネームが空なら適当に設定
|
|
||||||
if( *LCFG_TSD_GetNicknamePtr() == L'\0' )
|
|
||||||
{
|
|
||||||
LCFG_TSD_SetNickname(reinterpret_cast<const u16*>(L"ecdl"));
|
|
||||||
bModified = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 国が選択されていないなら適当に設定
|
|
||||||
if( LCFG_TSD_GetCountry() == LCFG_TWL_COUNTRY_UNDEFINED )
|
|
||||||
{
|
|
||||||
LCFG_TSD_SetCountry(LCFG_TWL_COUNTRY_JAPAN);
|
|
||||||
bModified = TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 設定が変更されているなら書き出す
|
|
||||||
if( bModified )
|
|
||||||
{
|
|
||||||
pWork = Alloc(LCFG_WRITE_TEMP);
|
|
||||||
SDK_POINTER_ASSERT(pWork);
|
|
||||||
|
|
||||||
bSuccess = LCFG_WriteTWLSettings(reinterpret_cast<u8 (*)[LCFG_WRITE_TEMP]>(pWork));
|
|
||||||
SDK_ASSERT(bSuccess);
|
|
||||||
|
|
||||||
Free(pWork);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetupVerData(void)
|
|
||||||
{
|
|
||||||
BOOL bSuccess;
|
|
||||||
|
|
||||||
void* pWork = Alloc(NA_VERSION_DATA_WORK_SIZE);
|
void* pWork = Alloc(NA_VERSION_DATA_WORK_SIZE);
|
||||||
SDK_POINTER_ASSERT(pWork);
|
if( pWork == NULL ) {
|
||||||
|
miya_log_fprintf(log_fd, "%s Error memory alloc\n", __FUNCTION__);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
bSuccess = NA_LoadVersionDataArchive(pWork, NA_VERSION_DATA_WORK_SIZE);
|
bSuccess = NA_LoadVersionDataArchive(pWork, NA_VERSION_DATA_WORK_SIZE);
|
||||||
|
return bSuccess;
|
||||||
SDK_ASSERT(bSuccess);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void PrintDeviceInfo(void)
|
|
||||||
{
|
|
||||||
ESId deviceId;
|
|
||||||
u8 region;
|
|
||||||
u32 launcherInitialCode;
|
|
||||||
const u8* pSerial;
|
|
||||||
const u8* pMovable;
|
|
||||||
u32 movableLen1;
|
|
||||||
u32 movableLen2;
|
|
||||||
u64 fuseId;
|
|
||||||
char bmsDeviceId[32];
|
|
||||||
|
|
||||||
LCFG_ReadHWNormalInfo();
|
|
||||||
LCFG_ReadHWSecureInfo();
|
|
||||||
|
|
||||||
// region
|
|
||||||
region = LCFG_THW_GetRegion();
|
|
||||||
|
|
||||||
// launcher initial code
|
|
||||||
LCFG_THW_GetLauncherTitleID_Lo(reinterpret_cast<u8*>(&launcherInitialCode));
|
|
||||||
|
|
||||||
// ES Device ID
|
|
||||||
ES_GetDeviceId(&deviceId);
|
|
||||||
snprintf(bmsDeviceId, sizeof(bmsDeviceId), "%lld", ((0x3ull << 32) | deviceId));
|
|
||||||
|
|
||||||
// serial
|
|
||||||
pSerial = LCFG_THW_GetSerialNoPtr();
|
|
||||||
|
|
||||||
// movable id
|
|
||||||
pMovable = LCFG_THW_GetMovableUniqueIDPtr();
|
|
||||||
movableLen1 = LCFG_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN / 2;
|
|
||||||
movableLen2 = LCFG_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN - movableLen1;
|
|
||||||
|
|
||||||
// fuse id
|
|
||||||
fuseId = SCFG_ReadFuseData();
|
|
||||||
|
|
||||||
OS_TPrintf("Region: %-10s %08X\n", GetOSTWLRegionString(region), launcherInitialCode);
|
|
||||||
OS_TPrintf("DeviceID: %08X %u\n", deviceId, deviceId);
|
|
||||||
OS_TPrintf(" %s\n", bmsDeviceId);
|
|
||||||
OS_TPrintf("Serial: %s\n", pSerial);
|
|
||||||
OS_TPrintf("MovableID: "); PrintBytes(pMovable, movableLen1); OS_TPrintf("\n");
|
|
||||||
OS_TPrintf(" "); PrintBytes(pMovable + movableLen1, movableLen2); OS_TPrintf("\n");
|
|
||||||
OS_TPrintf("FuseID: %08X%08X\n", static_cast<u32>(fuseId >> 32), static_cast<u32>(fuseId));
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetupTitlesDataFile(const NAMTitleId* pTitleIds, u32 numTitleIds)
|
void SetupTitlesDataFile(const NAMTitleId* pTitleIds, u32 numTitleIds)
|
||||||
{
|
{
|
||||||
NAMTitleId tid;
|
NAMTitleId tid;
|
||||||
|
|
||||||
// OS_TPrintf("%s %d num=%d\n",__FUNCTION__,__LINE__,numTitleIds);
|
|
||||||
|
|
||||||
for( u32 i = 0; i < numTitleIds; i++ )
|
for( u32 i = 0; i < numTitleIds; i++ )
|
||||||
{
|
{
|
||||||
tid = pTitleIds[i];
|
tid = pTitleIds[i];
|
||||||
// OS_TPrintf("%s %d 0x%016X\n",__FUNCTION__,__LINE__,(u64)tid);
|
|
||||||
NAM_SetupTitleDataFile(tid);
|
NAM_SetupTitleDataFile(tid);
|
||||||
//OS_TPrintf("%s %d\n",__FUNCTION__,__LINE__);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -308,6 +214,8 @@ void DeleteECDirectory(void)
|
|||||||
|
|
||||||
void SetupShopTitleId(void)
|
void SetupShopTitleId(void)
|
||||||
{
|
{
|
||||||
|
// はたもとくんに確認->ショップのオールリージョンでOK
|
||||||
|
// *(u64 *)(HW_TWL_ROM_HEADER_BUF + 0x230) = 0x00030015 48-4E-46-41-ull;
|
||||||
*(u64 *)(HW_TWL_ROM_HEADER_BUF + 0x230) = 0x00030015484E4641ull;
|
*(u64 *)(HW_TWL_ROM_HEADER_BUF + 0x230) = 0x00030015484E4641ull;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -334,7 +242,8 @@ BOOL SetupNHTTP(void)
|
|||||||
|
|
||||||
if (rv != NHTTP_ERROR_NONE)
|
if (rv != NHTTP_ERROR_NONE)
|
||||||
{
|
{
|
||||||
OS_TPrintf("Failed to start NHTTP, rv=%d\n", rv);
|
miya_log_fprintf(log_fd, "Failed to start NHTTP, rv=%d\n", rv);
|
||||||
|
mprintf("Failed to start NHTTP, rv=%d\n", rv);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -386,7 +295,8 @@ LoadCert(void** ppCert, u32* pSize, const char* name)
|
|||||||
bSuccess = FS_OpenFile(&f, path);
|
bSuccess = FS_OpenFile(&f, path);
|
||||||
if( ! bSuccess )
|
if( ! bSuccess )
|
||||||
{
|
{
|
||||||
OS_TPrintf("Cannot open %s\n", path);
|
miya_log_fprintf(log_fd, "Cannot open %s\n", path);
|
||||||
|
mprintf("Cannot open %s\n", path);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -394,14 +304,16 @@ LoadCert(void** ppCert, u32* pSize, const char* name)
|
|||||||
pCert = OS_Alloc(certSize);
|
pCert = OS_Alloc(certSize);
|
||||||
if ( pCert == NULL )
|
if ( pCert == NULL )
|
||||||
{
|
{
|
||||||
OS_TPrintf("Cannot allocate work memroy\n");
|
miya_log_fprintf(log_fd, "Cannot allocate work memroy\n");
|
||||||
|
mprintf("Cannot allocate work memroy\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
readSize = FS_ReadFile(&f, pCert, static_cast<s32>(certSize));
|
readSize = FS_ReadFile(&f, pCert, static_cast<s32>(certSize));
|
||||||
if( readSize != certSize )
|
if( readSize != certSize )
|
||||||
{
|
{
|
||||||
OS_TPrintf("fail to read file\n");
|
miya_log_fprintf(log_fd, "%s fail to read file\n", __FUNCTION__);
|
||||||
|
mprintf("fail to read file\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -410,7 +322,8 @@ LoadCert(void** ppCert, u32* pSize, const char* name)
|
|||||||
result = NA_DecodeVersionData(pCert, certSize, pCert, certSize);
|
result = NA_DecodeVersionData(pCert, certSize, pCert, certSize);
|
||||||
if( result <= 0 )
|
if( result <= 0 )
|
||||||
{
|
{
|
||||||
OS_TPrintf("fail to decode version info %d\n", result);
|
miya_log_fprintf(log_fd, "%s fail to decode version info %d\n",__FUNCTION__,result);
|
||||||
|
mprintf("fail to decode version info %d\n", result);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -442,8 +355,8 @@ BOOL SetupEC(void)
|
|||||||
//#define EC_LOG_FINEST 6
|
//#define EC_LOG_FINEST 6
|
||||||
|
|
||||||
// logLevel = EC_LOG_FINEST;
|
// logLevel = EC_LOG_FINEST;
|
||||||
logLevel = EC_LOG_FINE;
|
// logLevel = EC_LOG_FINE;
|
||||||
// logLevel = EC_LOG_NONE;
|
logLevel = EC_LOG_WARN;
|
||||||
|
|
||||||
LoadCert(&pClientCert, &clientCertSize, ".twl-nup-cert.der");
|
LoadCert(&pClientCert, &clientCertSize, ".twl-nup-cert.der");
|
||||||
LoadCert(&pClientKey, &clientKeySize, ".twl-nup-prvkey.der");
|
LoadCert(&pClientKey, &clientKeySize, ".twl-nup-prvkey.der");
|
||||||
@ -466,7 +379,8 @@ BOOL SetupEC(void)
|
|||||||
rv = EC_Init(initArgs, nInitArgs);
|
rv = EC_Init(initArgs, nInitArgs);
|
||||||
// SDK_ASSERTMSG(rv == EC_ERROR_OK, "Failed to initialize EC, rv=%d\n", rv);
|
// SDK_ASSERTMSG(rv == EC_ERROR_OK, "Failed to initialize EC, rv=%d\n", rv);
|
||||||
if( rv != EC_ERROR_OK ) {
|
if( rv != EC_ERROR_OK ) {
|
||||||
OS_TPrintf("Failed to initialize EC, rv=%d\n", rv);
|
miya_log_fprintf(log_fd, "%s Failed to initialize EC, rv=%d\n",__FUNCTION__, rv);
|
||||||
|
mprintf("Failed to initialize EC, rv=%d\n", rv);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -475,7 +389,8 @@ BOOL SetupEC(void)
|
|||||||
"https://cas.t.shop.nintendowifi.net/cas/services/CatalogingSOAP" );
|
"https://cas.t.shop.nintendowifi.net/cas/services/CatalogingSOAP" );
|
||||||
// SDK_ASSERTMSG(rv == EC_ERROR_OK, "Failed to EC_SetWebSvcUrls, rv=%d\n", rv);
|
// SDK_ASSERTMSG(rv == EC_ERROR_OK, "Failed to EC_SetWebSvcUrls, rv=%d\n", rv);
|
||||||
if( rv != EC_ERROR_OK ) {
|
if( rv != EC_ERROR_OK ) {
|
||||||
OS_TPrintf("Failed to EC_SetWebSvcUrls, rv=%d\n", rv);
|
miya_log_fprintf(log_fd, "%s Failed to EC_SetWebSvcUrls, rv=%d\n", __FUNCTION__, rv);
|
||||||
|
mprintf("Failed to EC_SetWebSvcUrls, rv=%d\n", rv);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -483,7 +398,8 @@ BOOL SetupEC(void)
|
|||||||
"http://ccs.t.shop.nintendowifi.net/ccs/download" );
|
"http://ccs.t.shop.nintendowifi.net/ccs/download" );
|
||||||
// SDK_ASSERTMSG(rv == EC_ERROR_OK, "Failed to EC_SetContentUrls, rv=%d\n", rv);
|
// SDK_ASSERTMSG(rv == EC_ERROR_OK, "Failed to EC_SetContentUrls, rv=%d\n", rv);
|
||||||
if( rv != EC_ERROR_OK ) {
|
if( rv != EC_ERROR_OK ) {
|
||||||
OS_TPrintf("Failed to EC_SetContentUrls, rv=%d\n", rv);
|
miya_log_fprintf(log_fd, "%s Failed to EC_SetContentUrls, rv=%d\n",__FUNCTION__, rv);
|
||||||
|
mprintf("Failed to EC_SetContentUrls, rv=%d\n", rv);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -499,7 +415,8 @@ BOOL WaitEC(ECOpId opId)
|
|||||||
|
|
||||||
if( opId < 0 )
|
if( opId < 0 )
|
||||||
{
|
{
|
||||||
OS_TPrintf("error %d %s\n", opId, GetECErrorString(opId));
|
miya_log_fprintf(log_fd, "%s WaitEC error %d %s\n", __FUNCTION__,opId, GetECErrorString(opId));
|
||||||
|
mprintf("WaitEC error %d %s\n", opId, GetECErrorString(opId));
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -512,9 +429,10 @@ BOOL WaitEC(ECOpId opId)
|
|||||||
{
|
{
|
||||||
if( result == EC_ERROR_NOT_ACTIVE )
|
if( result == EC_ERROR_NOT_ACTIVE )
|
||||||
{
|
{
|
||||||
OS_TPrintf("opId=%d\n", opId);
|
miya_log_fprintf(log_fd, "%s opId=%d\n", __FUNCTION__, opId);
|
||||||
}
|
}
|
||||||
OS_TPrintf("Failed to EC_GetProgress, result=%d %s\n", result, GetECErrorString(result));
|
miya_log_fprintf(log_fd, "%s Failed to EC_GetProgress, result=%d %s\n",
|
||||||
|
__FUNCTION__, result, GetECErrorString(result));
|
||||||
mprintf("EC_GetProgress failed %d\n %s\n", result, GetECErrorString(result));
|
mprintf("EC_GetProgress failed %d\n %s\n", result, GetECErrorString(result));
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@ -556,14 +474,17 @@ static char CheckRegistration()
|
|||||||
ECError ecError;
|
ECError ecError;
|
||||||
ECDeviceInfo di;
|
ECDeviceInfo di;
|
||||||
|
|
||||||
ECDL_LOG("check registeration");
|
//ECDL_LOG("check registeration");
|
||||||
progress = EC_CheckRegistration();
|
progress = EC_CheckRegistration();
|
||||||
if( FALSE == WaitEC(progress) ) {
|
if( FALSE == WaitEC(progress) ) {
|
||||||
return '\0'; // ”÷–<E28093>E<EFBFBD>E
|
return '\0'; // ”÷–<E28093>E<EFBFBD>E
|
||||||
}
|
}
|
||||||
|
|
||||||
ecError = EC_GetDeviceInfo(&di);
|
ecError = EC_GetDeviceInfo(&di);
|
||||||
SDK_ASSERT( ecError == EC_ERROR_OK );
|
// SDK_ASSERT( ecError == EC_ERROR_OK );
|
||||||
|
if( ecError != EC_ERROR_OK ) {
|
||||||
|
return '\0'; // 微妙・・
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef SDK_DEBUG
|
#ifdef SDK_DEBUG
|
||||||
#define ECDL_DI_FMT "%-30s"
|
#define ECDL_DI_FMT "%-30s"
|
||||||
@ -607,22 +528,24 @@ static BOOL GetChallenge(char* challenge)
|
|||||||
s32 progress;
|
s32 progress;
|
||||||
ECError ecError;
|
ECError ecError;
|
||||||
|
|
||||||
ECDL_LOG("get challenge");
|
//ECDL_LOG("get challenge");
|
||||||
progress = EC_SendChallengeReq();
|
progress = EC_SendChallengeReq();
|
||||||
if( FALSE == WaitEC(progress) ) {
|
if( FALSE == WaitEC(progress) ) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
ecError = EC_GetChallengeResp(challenge);
|
ecError = EC_GetChallengeResp(challenge);
|
||||||
SDK_ASSERT( ecError == EC_ERROR_OK );
|
if( ecError == EC_ERROR_OK ) {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL SyncRegistration(const char* challenge)
|
static BOOL SyncRegistration(const char* challenge)
|
||||||
{
|
{
|
||||||
s32 progress;
|
s32 progress;
|
||||||
|
|
||||||
ECDL_LOG("sync registration");
|
// ECDL_LOG("sync registration");
|
||||||
progress = EC_SyncRegistration(challenge);
|
progress = EC_SyncRegistration(challenge);
|
||||||
if( FALSE == WaitEC(progress) ) {
|
if( FALSE == WaitEC(progress) ) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -634,7 +557,7 @@ static BOOL Register(const char* challenge)
|
|||||||
{
|
{
|
||||||
s32 progress;
|
s32 progress;
|
||||||
|
|
||||||
ECDL_LOG("register");
|
// ECDL_LOG("register");
|
||||||
progress = EC_Register(challenge, NULL, NULL);
|
progress = EC_Register(challenge, NULL, NULL);
|
||||||
if( FALSE == WaitEC(progress) ) {
|
if( FALSE == WaitEC(progress) ) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -646,7 +569,7 @@ static BOOL Transfer(const char* challenge)
|
|||||||
{
|
{
|
||||||
s32 progress;
|
s32 progress;
|
||||||
|
|
||||||
ECDL_LOG("transfer");
|
// ECDL_LOG("transfer");
|
||||||
progress = EC_Transfer(challenge);
|
progress = EC_Transfer(challenge);
|
||||||
if( FALSE == WaitEC(progress) ) {
|
if( FALSE == WaitEC(progress) ) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -658,7 +581,7 @@ static BOOL SyncTickets()
|
|||||||
{
|
{
|
||||||
s32 progress;
|
s32 progress;
|
||||||
|
|
||||||
ECDL_LOG("sync tickets");
|
// ECDL_LOG("sync tickets");
|
||||||
progress = EC_SyncTickets(EC_SYNC_TYPE_IMPORT_ALL);
|
progress = EC_SyncTickets(EC_SYNC_TYPE_IMPORT_ALL);
|
||||||
if( FALSE == WaitEC(progress) ) {
|
if( FALSE == WaitEC(progress) ) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -666,133 +589,211 @@ static BOOL SyncTickets()
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int a_to_int(char c)
|
||||||
|
{
|
||||||
|
if( ('a' <= c) && (c <= 'f') ) {
|
||||||
|
return (int)( c - 'a' + 10 );
|
||||||
|
}
|
||||||
|
else if( ('A' <= c) && (c <= 'F') ) {
|
||||||
|
return (int)( c - 'A' + 10 );
|
||||||
|
}
|
||||||
|
else if( ('0' <= c) && (c <= '9') ) {
|
||||||
|
return (int)( c - '0' );
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static BOOL Tid_To_GameCode(u64 tid, char *gcode)
|
||||||
|
{
|
||||||
|
u32 code;
|
||||||
|
char *str;
|
||||||
|
OS_TPrintf("tid = %016X\n",tid);
|
||||||
|
str = gcode;
|
||||||
|
code = (u32)(tid & 0xffffffff);
|
||||||
|
*str++ = (char)((code >> 24) & 0xff);
|
||||||
|
*str++ = (char)((code >> 16) & 0xff);
|
||||||
|
*str++ = (char)((code >> 8) & 0xff);
|
||||||
|
*str++ = (char)(code & 0xff);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static BOOL DownloadTitles(const NAMTitleId* pTitleIds, u32 numTitleIds)
|
static BOOL DownloadTitles(const NAMTitleId* pTitleIds, u32 numTitleIds)
|
||||||
{
|
{
|
||||||
s32 progress;
|
s32 progress;
|
||||||
|
NAMTitleId tid;
|
||||||
|
BOOL ret_flag = TRUE;
|
||||||
|
// ECDL_LOG("download");
|
||||||
|
char game_code_buf[5];
|
||||||
|
|
||||||
ECDL_LOG("download");
|
for( u32 i = 0; i < numTitleIds; i++ ) {
|
||||||
for( u32 i = 0; i < numTitleIds; i++ )
|
tid = pTitleIds[i];
|
||||||
{
|
|
||||||
NAMTitleId tid = pTitleIds[i];
|
|
||||||
progress = EC_DownloadTitle(tid, EC_DT_UPDATE_REQUIRED_CONTENTS);
|
progress = EC_DownloadTitle(tid, EC_DT_UPDATE_REQUIRED_CONTENTS);
|
||||||
|
// mprintf("-check registration.. ");
|
||||||
|
(void)Tid_To_GameCode((u64)tid, game_code_buf);
|
||||||
|
game_code_buf[4] = '\0';
|
||||||
|
mprintf(" downloading.. [%s] ", game_code_buf);
|
||||||
if( FALSE == WaitEC(progress) ) {
|
if( FALSE == WaitEC(progress) ) {
|
||||||
return FALSE;
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
|
mprintf("NG.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
miya_log_fprintf(log_fd, " %s download NG.\n",game_code_buf);
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
|
mprintf("OK.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
miya_log_fprintf(log_fd, " %s download OK.\n",game_code_buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return ret_flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL ECDownload(const NAMTitleId* pTitleIds, u32 numTitleIds)
|
BOOL ECDownload(const NAMTitleId* pTitleIds, u32 numTitleIds)
|
||||||
{
|
{
|
||||||
char challenge[EC_CHALLENGE_BUF_SIZE];
|
char challenge[EC_CHALLENGE_BUF_SIZE];
|
||||||
char status;
|
char status;
|
||||||
|
BOOL ret_flag;
|
||||||
|
|
||||||
// mprintf("-CheckRegistration..\n");
|
mprintf("-check registration.. ");
|
||||||
|
miya_log_fprintf(log_fd, "-check registration...");
|
||||||
status = CheckRegistration();
|
status = CheckRegistration();
|
||||||
// U unregistered
|
// U unregistered
|
||||||
// R registered
|
// R registered
|
||||||
// P pending
|
// P pending
|
||||||
// T transfered
|
// T transfered
|
||||||
#if 0
|
if( status == '\0' ) {
|
||||||
SDK_ASSERTMSG(status != 'U', "acount not transfered yet.");
|
miya_log_fprintf(log_fd, "NG.\n");
|
||||||
SDK_ASSERTMSG(status != 'R', "already registered. please delete acount.");
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
SDK_ASSERTMSG( (status == 'P') || (status == 'T'), "invalid registration status '%c'", status );
|
mprintf("NG.\n");
|
||||||
#else
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
if( status == 'U') {
|
mprintf(" my error.\n");
|
||||||
|
miya_log_fprintf(log_fd, " my error.\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
else if( status == 'U') {
|
||||||
|
miya_log_fprintf(log_fd, "NG.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
|
mprintf("NG.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
mprintf(" acount not transfered yet.\n");
|
mprintf(" acount not transfered yet.\n");
|
||||||
|
miya_log_fprintf(log_fd, " acount not transfered yet.\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if( status == 'R') {
|
else if( status == 'R') {
|
||||||
|
miya_log_fprintf(log_fd, "NG.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
|
mprintf("NG.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
mprintf(" already registered. please delete acount.\n");
|
mprintf(" already registered. please delete acount.\n");
|
||||||
|
miya_log_fprintf(log_fd, " already registered. please delete acount.\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if( (status != 'P') && (status != 'T') ) {
|
else if( (status != 'P') && (status != 'T') ) {
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
|
mprintf("NG.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
mprintf(" invalid registration status '%c'\n", status );
|
mprintf(" invalid registration status '%c'\n", status );
|
||||||
|
miya_log_fprintf(log_fd, " invalid registration status '%c'\n", status );
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
// mprintf(" succeeded.");
|
else {
|
||||||
#endif
|
miya_log_fprintf(log_fd, "OK.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
|
mprintf("OK.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
}
|
||||||
|
|
||||||
|
miya_log_fprintf(log_fd, "-get challenge1..");
|
||||||
mprintf("-get challenge1 ");
|
mprintf("-get challenge1 ");
|
||||||
if( FALSE == GetChallenge(challenge) ) {
|
if( FALSE == GetChallenge(challenge) ) {
|
||||||
|
miya_log_fprintf(log_fd, "NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
mprintf("NG.\n");
|
mprintf("NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
miya_log_fprintf(log_fd, "OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
mprintf("OK.\n");
|
mprintf("OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
miya_log_fprintf(log_fd, "-transfer.. ");
|
||||||
mprintf("-transfer ");
|
mprintf("-transfer ");
|
||||||
if( FALSE == Transfer(challenge) ) {
|
if( FALSE == Transfer(challenge) ) {
|
||||||
|
miya_log_fprintf(log_fd, "NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
mprintf("NG.\n");
|
mprintf("NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
miya_log_fprintf(log_fd, "OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
mprintf("OK.\n");
|
mprintf("OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
miya_log_fprintf(log_fd, "-get challenge.. ");
|
||||||
mprintf("-get challenge2 ");
|
mprintf("-get challenge2 ");
|
||||||
if( FALSE == GetChallenge(challenge) ) {
|
if( FALSE == GetChallenge(challenge) ) {
|
||||||
|
miya_log_fprintf(log_fd, "NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
mprintf("NG.\n");
|
mprintf("NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
miya_log_fprintf(log_fd, "OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
mprintf("OK.\n");
|
mprintf("OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
miya_log_fprintf(log_fd, "-sync registration..");
|
||||||
mprintf("-sync registration ");
|
mprintf("-sync registration ");
|
||||||
if( FALSE == SyncRegistration(challenge) ) {
|
if( FALSE == SyncRegistration(challenge) ) {
|
||||||
|
miya_log_fprintf(log_fd, "NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
mprintf("NG.\n");
|
mprintf("NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
miya_log_fprintf(log_fd, "OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
mprintf("OK.\n");
|
mprintf("OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
miya_log_fprintf(log_fd, "-sync tickets..");
|
||||||
mprintf("-sync tickets ");
|
mprintf("-sync tickets ");
|
||||||
if( FALSE == SyncTickets() ) {
|
if( FALSE == SyncTickets() ) {
|
||||||
|
miya_log_fprintf(log_fd, "NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
mprintf("NG.\n");
|
mprintf("NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
miya_log_fprintf(log_fd, "OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
mprintf("OK.\n");
|
mprintf("OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
}
|
}
|
||||||
|
|
||||||
mprintf("-download titles ");
|
// ここでアプリをダウンロードしている
|
||||||
if( FALSE == DownloadTitles(pTitleIds, numTitleIds) ) {
|
miya_log_fprintf(log_fd, "-download titles\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
mprintf("-download titles\n");
|
||||||
mprintf("NG.\n");
|
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
|
||||||
mprintf("OK.\n");
|
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
ret_flag = DownloadTitles(pTitleIds, numTitleIds);
|
||||||
|
|
||||||
|
return ret_flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -800,32 +801,36 @@ BOOL KPSClient()
|
|||||||
{
|
{
|
||||||
s32 progress;
|
s32 progress;
|
||||||
|
|
||||||
OS_TPrintf("generate key pair\n");
|
miya_log_fprintf(log_fd, "-generate key pair ..");
|
||||||
mprintf("-generate key pair ");
|
mprintf("-generate key pair ");
|
||||||
progress = EC_GenerateKeyPair();
|
progress = EC_GenerateKeyPair();
|
||||||
if( FALSE == WaitEC(progress) ) {
|
if( FALSE == WaitEC(progress) ) {
|
||||||
|
miya_log_fprintf(log_fd, "NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
mprintf("NG.\n");
|
mprintf("NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
miya_log_fprintf(log_fd, "OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
mprintf("OK.\n");
|
mprintf("OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
OS_TPrintf("confirm key pair\n");
|
miya_log_fprintf(log_fd, "-confirm key pair .. ");
|
||||||
mprintf("-confirm key pair ");
|
mprintf("-confirm key pair ");
|
||||||
progress = EC_ConfirmKeyPair();
|
progress = EC_ConfirmKeyPair();
|
||||||
if( FALSE == WaitEC(progress) ) {
|
if( FALSE == WaitEC(progress) ) {
|
||||||
|
miya_log_fprintf(log_fd, "NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
mprintf("NG.\n");
|
mprintf("NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
miya_log_fprintf(log_fd, "OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
mprintf("OK.\n");
|
mprintf("OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
@ -836,3 +841,22 @@ BOOL KPSClient()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FSFile *hatamotolib_log_start(char *log_file_name )
|
||||||
|
{
|
||||||
|
log_fd = &log_fd_real;
|
||||||
|
log_active = Log_File_Open( log_fd, log_file_name );
|
||||||
|
if( !log_active ) {
|
||||||
|
log_fd = NULL;
|
||||||
|
}
|
||||||
|
miya_log_fprintf(log_fd, "%s START\n", __FUNCTION__);
|
||||||
|
return log_fd;
|
||||||
|
}
|
||||||
|
|
||||||
|
void hatamotolib_log_end(void)
|
||||||
|
{
|
||||||
|
miya_log_fprintf(log_fd, "%s END\n\n", __FUNCTION__);
|
||||||
|
if( log_active ) {
|
||||||
|
Log_File_Close(log_fd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,14 +8,15 @@ extern "C" {
|
|||||||
void PrintDeviceInfo(void);
|
void PrintDeviceInfo(void);
|
||||||
void SetupShopTitleId(void);
|
void SetupShopTitleId(void);
|
||||||
void SetupUserInfo(void);
|
void SetupUserInfo(void);
|
||||||
void SetupVerData(void);
|
BOOL SetupVerData(void);
|
||||||
void SetupNSSL(void);
|
void SetupNSSL(void);
|
||||||
BOOL SetupNHTTP(void);
|
BOOL SetupNHTTP(void);
|
||||||
BOOL SetupEC(void);
|
BOOL SetupEC(void);
|
||||||
void DeleteECDirectory(void);
|
void DeleteECDirectory(void);
|
||||||
void SetupTitlesDataFile(const NAMTitleId* pTitleIds, u32 numTitleIds);
|
void SetupTitlesDataFile(const NAMTitleId* pTitleIds, u32 numTitleIds);
|
||||||
|
FSFile *hatamotolib_log_start(char *log_file_name );
|
||||||
|
void hatamotolib_log_end(void);
|
||||||
|
|
||||||
BOOL hatamotolib_main(u64 *title_id_buf, u32 num_title);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -173,6 +173,10 @@ int MFILER_ReadDir(MY_ENTRY_LIST **headp, const char *path_src)
|
|||||||
}
|
}
|
||||||
else if( STD_StrCmp(entry_src.longname, "..") == 0 ) {
|
else if( STD_StrCmp(entry_src.longname, "..") == 0 ) {
|
||||||
}
|
}
|
||||||
|
else if( STD_StrCmp(entry_src.longname, "wlan_cfg.txt") == 0 ) {
|
||||||
|
}
|
||||||
|
else if( STD_StrCmp(entry_src.longname, "nup_log.txt") == 0 ) {
|
||||||
|
}
|
||||||
else if( entry_src.attributes & FS_ATTRIBUTE_DOS_VOLUME ) {
|
else if( entry_src.attributes & FS_ATTRIBUTE_DOS_VOLUME ) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@ -11,9 +11,17 @@
|
|||||||
|
|
||||||
#include "text.h"
|
#include "text.h"
|
||||||
#include "mprintf.h"
|
#include "mprintf.h"
|
||||||
|
#include "logprintf.h"
|
||||||
|
#include "my_fs_util.h"
|
||||||
|
|
||||||
#define STRING_ANIM_CNT 20
|
#define STRING_ANIM_CNT 20
|
||||||
|
|
||||||
|
|
||||||
|
static BOOL log_active = FALSE;
|
||||||
|
static FSFile *log_fd;
|
||||||
|
static FSFile log_fd_real;
|
||||||
|
|
||||||
|
|
||||||
static volatile NetConnectState NetConnect = NET_CONNECT_NONE;
|
static volatile NetConnectState NetConnect = NET_CONNECT_NONE;
|
||||||
|
|
||||||
// state管理
|
// state管理
|
||||||
@ -59,7 +67,10 @@ static void *alloc(u32 size, int align)
|
|||||||
(void)OS_RestoreInterrupts( old );
|
(void)OS_RestoreInterrupts( old );
|
||||||
|
|
||||||
end:
|
end:
|
||||||
SDK_ASSERT(((u32)ptr & (align - 1)) == 0);
|
// SDK_ASSERT(((u32)ptr & (align - 1)) == 0);
|
||||||
|
if( ((u32)ptr & (align - 1)) != 0 ) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
return (void *) ptr;
|
return (void *) ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -73,6 +84,7 @@ static void free(void *p)
|
|||||||
Name: InitNupLib
|
Name: InitNupLib
|
||||||
Description: NUCライブラリを開始します。
|
Description: NUCライブラリを開始します。
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
BOOL InitNupLib()
|
BOOL InitNupLib()
|
||||||
{
|
{
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
@ -88,8 +100,10 @@ BOOL InitNupLib()
|
|||||||
|
|
||||||
if (ret == FALSE) {
|
if (ret == FALSE) {
|
||||||
// NUC_Init() failed, error code=34416
|
// NUC_Init() failed, error code=34416
|
||||||
OS_TPrintf("NUC_Init() failed, error code=%d\n", NUC_GetLastError());
|
miya_log_fprintf(log_fd, "NUC_Init() failed, error code=%d\n", NUC_GetLastError());
|
||||||
OS_TPrintf(" error type:%s\n", error_msg[ NUC_GetErrorType(NUC_GetLastError())] );
|
miya_log_fprintf(log_fd, " error type:%s\n", error_msg[ NUC_GetErrorType(NUC_GetLastError())] );
|
||||||
|
mprintf("NUC_Init() failed, error code=%d\n", NUC_GetLastError());
|
||||||
|
mprintf(" error type:%s\n", error_msg[ NUC_GetErrorType(NUC_GetLastError())] );
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -106,7 +120,8 @@ BOOL StartNupCheck(void)
|
|||||||
ret = NUC_CheckAsync(TitleIds, &TitleIdNum);
|
ret = NUC_CheckAsync(TitleIds, &TitleIdNum);
|
||||||
if (ret == FALSE)
|
if (ret == FALSE)
|
||||||
{
|
{
|
||||||
OS_TPrintf("NUC_CheckAsync() failed, error code=%d\n", NUC_GetLastError());
|
miya_log_fprintf(log_fd, "NUC_CheckAsync() failed, error code=%d\n", NUC_GetLastError());
|
||||||
|
mprintf("NUC_CheckAsync() failed, error code=%d\n", NUC_GetLastError());
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -126,7 +141,7 @@ NucStatus ProgressNupCheck(void)
|
|||||||
if (status == NUC_STATUS_ERROR)
|
if (status == NUC_STATUS_ERROR)
|
||||||
{
|
{
|
||||||
// NUC_GetProgress() failed in checking, error code=34303
|
// NUC_GetProgress() failed in checking, error code=34303
|
||||||
OS_TPrintf("NUC_GetProgress() failed in checking, error code=%d\n", NUC_GetLastError());
|
miya_log_fprintf(log_fd, "NUC_GetProgress() failed in checking, error code=%d\n", NUC_GetLastError());
|
||||||
mprintf("NUC_GetProgress() failed in checking\n error code=%d\n", NUC_GetLastError());
|
mprintf("NUC_GetProgress() failed in checking\n error code=%d\n", NUC_GetLastError());
|
||||||
}
|
}
|
||||||
if (TestState.count++ % STRING_ANIM_CNT == 0)
|
if (TestState.count++ % STRING_ANIM_CNT == 0)
|
||||||
@ -154,7 +169,8 @@ BOOL StartNupDownload(void)
|
|||||||
|
|
||||||
if (ret == FALSE)
|
if (ret == FALSE)
|
||||||
{
|
{
|
||||||
OS_TPrintf("NUP_DownloadAsync() failed, error code=%d\n", NUC_GetLastError());
|
miya_log_fprintf(log_fd, "NUP_DownloadAsync() failed, error code=%d\n", NUC_GetLastError());
|
||||||
|
mprintf("NUP_DownloadAsync() failed, error code=%d\n", NUC_GetLastError());
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -173,7 +189,7 @@ NucStatus ProgressNupDownload(void)
|
|||||||
if (status == NUC_STATUS_ERROR)
|
if (status == NUC_STATUS_ERROR)
|
||||||
{ // エラー発生
|
{ // エラー発生
|
||||||
// NUC_GetProgress() failed in checking, error code=34303
|
// NUC_GetProgress() failed in checking, error code=34303
|
||||||
OS_TPrintf("NUC_GetProgress() failed in download, error code=%d\n", NUC_GetLastError());
|
miya_log_fprintf(log_fd, "NUC_GetProgress() failed in download, error code=%d\n", NUC_GetLastError());
|
||||||
mprintf("\nNUC_GetProgress() failed\n in download\n error code=%d\n", NUC_GetLastError());
|
mprintf("\nNUC_GetProgress() failed\n in download\n error code=%d\n", NUC_GetLastError());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,7 +215,8 @@ BOOL CleanNupLib(void)
|
|||||||
BOOL ret = NUC_Cleanup(TitleIds, TitleIdNum);
|
BOOL ret = NUC_Cleanup(TitleIds, TitleIdNum);
|
||||||
if (ret == FALSE)
|
if (ret == FALSE)
|
||||||
{
|
{
|
||||||
OS_TPrintf("NUP_CleanUp() failed, error code=%d\n", NUC_GetLastError());
|
miya_log_fprintf(log_fd, "NUP_CleanUp() failed, error code=%d\n", NUC_GetLastError());
|
||||||
|
mprintf( "NUP_CleanUp() failed, error code=%d\n", NUC_GetLastError());
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -225,23 +242,20 @@ void ProgressNetConnect(void)
|
|||||||
|
|
||||||
void ShowErrorMsg(int error_code)
|
void ShowErrorMsg(int error_code)
|
||||||
{
|
{
|
||||||
|
|
||||||
mprintf("Error Occurred ");
|
|
||||||
|
|
||||||
if (error_code > 0) {
|
if (error_code > 0) {
|
||||||
mprintf("Error Code:%d", error_code);
|
mprintf("Error Code:%d", error_code);
|
||||||
mprintf("%s", GetPublicMsg(error_code));
|
mprintf(" %s\n", GetPublicMsg(error_code));
|
||||||
mprintf("%s", GetPrivateMsg(error_code));
|
mprintf(" %s\n", GetPrivateMsg(error_code));
|
||||||
|
|
||||||
OS_TPrintf( "Error Code:%d\n", error_code);
|
miya_log_fprintf(log_fd, "Error Code:%d\n", error_code);
|
||||||
OS_TPrintf( "%s\n", GetPublicMsg(error_code));
|
miya_log_fprintf(log_fd, "%s\n", GetPublicMsg(error_code));
|
||||||
OS_TPrintf( "%s\n", GetPrivateMsg(error_code));
|
miya_log_fprintf(log_fd, "%s\n", GetPrivateMsg(error_code));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OS_TPrintf( "%s\n", "Network Error occurred.\nTry again later.");
|
miya_log_fprintf(log_fd, "%s\n", "Network Error occurred.\nTry again later.");
|
||||||
// ネットワークエラー時の表示メッセージ(暫定)
|
// ネットワークエラー時の表示メッセージ(暫定)
|
||||||
mprintf( "%s", "Network Error occurred.\nTry again later.");
|
mprintf( "%s", "Network Error occurred.\nTry again later.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -259,6 +273,7 @@ BOOL my_numc_proc(void)
|
|||||||
switch ( TestState.state ) {
|
switch ( TestState.state ) {
|
||||||
case PHASE_NUP_BREAK:
|
case PHASE_NUP_BREAK:
|
||||||
mprintf("NUP Initialize\n");
|
mprintf("NUP Initialize\n");
|
||||||
|
miya_log_fprintf(log_fd, "NUP Initialize\n");
|
||||||
ret = InitNupLib();
|
ret = InitNupLib();
|
||||||
if (ret == FALSE)
|
if (ret == FALSE)
|
||||||
{ // エラー発生
|
{ // エラー発生
|
||||||
@ -273,6 +288,7 @@ BOOL my_numc_proc(void)
|
|||||||
|
|
||||||
case PHASE_NUP_READY: // 更新情報の取得を開始します。
|
case PHASE_NUP_READY: // 更新情報の取得を開始します。
|
||||||
mprintf("NUP Check\n");
|
mprintf("NUP Check\n");
|
||||||
|
miya_log_fprintf(log_fd, "NUP Check\n");
|
||||||
ret = StartNupCheck();
|
ret = StartNupCheck();
|
||||||
if (ret == FALSE)
|
if (ret == FALSE)
|
||||||
{ // エラー発生
|
{ // エラー発生
|
||||||
@ -290,17 +306,19 @@ BOOL my_numc_proc(void)
|
|||||||
if (status == NUC_STATUS_ERROR)
|
if (status == NUC_STATUS_ERROR)
|
||||||
{ // エラー発生
|
{ // エラー発生
|
||||||
mprintf("\n");
|
mprintf("\n");
|
||||||
|
miya_log_fprintf(log_fd, "\n");
|
||||||
ChangeState(PHASE_NUP_CLEANUP);
|
ChangeState(PHASE_NUP_CLEANUP);
|
||||||
error_code = NUC_GetLastError();
|
error_code = NUC_GetLastError();
|
||||||
}
|
}
|
||||||
else if (status == NUC_STATUS_COMPLETED)
|
else if (status == NUC_STATUS_COMPLETED)
|
||||||
{ // 更新リスト 取得終了
|
{ // 更新リスト 取得終了
|
||||||
mprintf("\n");
|
mprintf("\n");
|
||||||
|
miya_log_fprintf(log_fd, "\n");
|
||||||
if (TitleIdNum > 0 )
|
if (TitleIdNum > 0 )
|
||||||
{ // ダウンロードへ
|
{ // ダウンロードへ
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < TitleIdNum; i++) {
|
for (i = 0; i < TitleIdNum; i++) {
|
||||||
OS_TPrintf("DL list:%3d:0x%llx\n", i, TitleIds[i]);
|
miya_log_fprintf(log_fd, "DL list:%3d:0x%llx\n", i, TitleIds[i]);
|
||||||
mprintf("DL list:%3d:0x%llx\n", i, TitleIds[i]);
|
mprintf("DL list:%3d:0x%llx\n", i, TitleIds[i]);
|
||||||
}
|
}
|
||||||
ChangeState(PHASE_NUP_DOWNLOAD);
|
ChangeState(PHASE_NUP_DOWNLOAD);
|
||||||
@ -308,6 +326,7 @@ BOOL my_numc_proc(void)
|
|||||||
else
|
else
|
||||||
{ // 更新すべきものがない
|
{ // 更新すべきものがない
|
||||||
mprintf("No title to update\n");
|
mprintf("No title to update\n");
|
||||||
|
miya_log_fprintf(log_fd, "No title to update\n");
|
||||||
ChangeState(PHASE_NUP_CLEANUP);
|
ChangeState(PHASE_NUP_CLEANUP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -315,6 +334,7 @@ BOOL my_numc_proc(void)
|
|||||||
|
|
||||||
case PHASE_NUP_DOWNLOAD: // ダウンロードを開始します。
|
case PHASE_NUP_DOWNLOAD: // ダウンロードを開始します。
|
||||||
mprintf("NUP Download\n");
|
mprintf("NUP Download\n");
|
||||||
|
miya_log_fprintf(log_fd, "NUP Download\n");
|
||||||
ret = StartNupDownload();
|
ret = StartNupDownload();
|
||||||
if (ret == FALSE)
|
if (ret == FALSE)
|
||||||
{ // エラー発生
|
{ // エラー発生
|
||||||
@ -332,21 +352,22 @@ BOOL my_numc_proc(void)
|
|||||||
if (status == NUC_STATUS_ERROR)
|
if (status == NUC_STATUS_ERROR)
|
||||||
{ // エラー発生
|
{ // エラー発生
|
||||||
mprintf("\n");
|
mprintf("\n");
|
||||||
|
miya_log_fprintf(log_fd, "\n");
|
||||||
ChangeState(PHASE_NUP_CLEANUP);
|
ChangeState(PHASE_NUP_CLEANUP);
|
||||||
error_code = NUC_GetLastError();
|
error_code = NUC_GetLastError();
|
||||||
}
|
}
|
||||||
else if (status == NUC_STATUS_COMPLETED)
|
else if (status == NUC_STATUS_COMPLETED)
|
||||||
{ // ダウンロード完了
|
{ // ダウンロード完了
|
||||||
mprintf("\n");
|
mprintf("\n");
|
||||||
|
miya_log_fprintf(log_fd, "\n");
|
||||||
ChangeState(PHASE_NUP_CLEANUP);
|
ChangeState(PHASE_NUP_CLEANUP);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PHASE_NUP_CLEANUP: // NUPライブラリのクリーンアップ
|
case PHASE_NUP_CLEANUP: // NUPライブラリのクリーンアップ
|
||||||
mprintf("NUP Cleanup\n");
|
mprintf("NUP Cleanup\n");
|
||||||
|
miya_log_fprintf(log_fd, "NUP Cleanup\n");
|
||||||
ret = CleanNupLib();
|
ret = CleanNupLib();
|
||||||
OS_TPrintf("%s %d\n",__FUNCTION__,__LINE__);
|
|
||||||
|
|
||||||
if (ret == FALSE && error_code == 0)
|
if (ret == FALSE && error_code == 0)
|
||||||
{ // 他でエラーが起こっていない場合のみ上書きします。
|
{ // 他でエラーが起こっていない場合のみ上書きします。
|
||||||
error_code = NUC_GetLastError();
|
error_code = NUC_GetLastError();
|
||||||
@ -358,11 +379,11 @@ BOOL my_numc_proc(void)
|
|||||||
case PHASE_FINISHED: // ネットワークアップデートが正常終了しました。
|
case PHASE_FINISHED: // ネットワークアップデートが正常終了しました。
|
||||||
if( error_code == 0 ) {
|
if( error_code == 0 ) {
|
||||||
if (TitleIdNum > 0) {
|
if (TitleIdNum > 0) {
|
||||||
OS_TPrintf("%d file is updated\n", TitleIdNum);
|
miya_log_fprintf(log_fd, "%d file is updated\n", TitleIdNum);
|
||||||
mprintf("%d file is updated\n", TitleIdNum);
|
mprintf("%d file is updated\n", TitleIdNum);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
OS_TPrintf("Nothing is updated\n");
|
miya_log_fprintf(log_fd, "Nothing is updated\n");
|
||||||
mprintf("Nothing is updated\n");
|
mprintf("Nothing is updated\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -388,3 +409,21 @@ BOOL my_numc_proc(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FSFile *my_nuc_log_start(char *log_file_name )
|
||||||
|
{
|
||||||
|
log_fd = &log_fd_real;
|
||||||
|
log_active = Log_File_Open( log_fd, log_file_name );
|
||||||
|
if( !log_active ) {
|
||||||
|
log_fd = NULL;
|
||||||
|
}
|
||||||
|
miya_log_fprintf(log_fd, "%s START\n", __FUNCTION__);
|
||||||
|
return log_fd;
|
||||||
|
}
|
||||||
|
|
||||||
|
void my_nuc_log_end(void)
|
||||||
|
{
|
||||||
|
miya_log_fprintf(log_fd, "%s END\n\n", __FUNCTION__);
|
||||||
|
if( log_active ) {
|
||||||
|
Log_File_Close(log_fd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -47,6 +47,9 @@ BOOL CleanNupLib(void);
|
|||||||
void ProgressNetConnect(void);
|
void ProgressNetConnect(void);
|
||||||
void ShowErrorMsg(int error_code);
|
void ShowErrorMsg(int error_code);
|
||||||
BOOL my_numc_proc(void);
|
BOOL my_numc_proc(void);
|
||||||
|
FSFile *my_nuc_log_start(char *log_file_name );
|
||||||
|
void my_nuc_log_end(void);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,7 +23,7 @@ TWL_ARCHGEN := LIMITED
|
|||||||
SRCDIR = ../common/src ./src
|
SRCDIR = ../common/src ./src
|
||||||
|
|
||||||
SRCS = main.c key.c font.c text.c mprintf.c logprintf.c \
|
SRCS = main.c key.c font.c text.c mprintf.c logprintf.c \
|
||||||
gfx.c hwi.c mynvram.c my_fs_util.c miya_mcu.c \
|
gfx.c hwi.c mynvram.c my_fs_util.c miya_mcu.c error_report.c \
|
||||||
sitedefs.c wcm_control.c netconnect.c mywlan.c \
|
sitedefs.c wcm_control.c netconnect.c mywlan.c \
|
||||||
stream.c myfilename.c menu_version.c
|
stream.c myfilename.c menu_version.c
|
||||||
|
|
||||||
|
|||||||
@ -33,6 +33,7 @@
|
|||||||
#include "mydata.h"
|
#include "mydata.h"
|
||||||
#include "nuc.h"
|
#include "nuc.h"
|
||||||
#include "miya_mcu.h"
|
#include "miya_mcu.h"
|
||||||
|
#include "error_report.h"
|
||||||
|
|
||||||
#include "myfilename.h"
|
#include "myfilename.h"
|
||||||
#include "menu_version.h"
|
#include "menu_version.h"
|
||||||
@ -43,6 +44,7 @@
|
|||||||
static BOOL completed_flag = FALSE;
|
static BOOL completed_flag = FALSE;
|
||||||
static FSEventHook sSDHook;
|
static FSEventHook sSDHook;
|
||||||
static BOOL sd_card_flag = FALSE;
|
static BOOL sd_card_flag = FALSE;
|
||||||
|
static int miya_debug_level = 0;
|
||||||
|
|
||||||
|
|
||||||
static void SDEvents(void *userdata, FSEvent event, void *arg)
|
static void SDEvents(void *userdata, FSEvent event, void *arg)
|
||||||
@ -130,11 +132,13 @@ static BOOL SDBackupToSDCard2(void)
|
|||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
mprintf("OK.\n");
|
mprintf("OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
mydata.wireless_lan_param_flag = TRUE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
mprintf("NG.\n");
|
mprintf("NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
mydata.wireless_lan_param_flag = FALSE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -149,11 +153,13 @@ static BOOL SDBackupToSDCard3(void)
|
|||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
mprintf("OK.\n");
|
mprintf("OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
mydata.user_settings_flag = TRUE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
mprintf("NG.\n");
|
mprintf("NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
mydata.user_settings_flag = FALSE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -163,66 +169,137 @@ static BOOL SDBackupToSDCard4(void)
|
|||||||
{
|
{
|
||||||
MY_DIR_ENTRY_LIST *dir_entry_list_head = NULL;
|
MY_DIR_ENTRY_LIST *dir_entry_list_head = NULL;
|
||||||
int save_dir_info = 0;
|
int save_dir_info = 0;
|
||||||
|
BOOL ret_flag = TRUE;
|
||||||
|
int list_count;
|
||||||
|
int error_count;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
nand:/shared2ディレクトリまわりの保存
|
nand:/shared2ディレクトリまわりの保存
|
||||||
内容はアプリケーション共有ファイル
|
内容はアプリケーション共有ファイル
|
||||||
nand:/shared2/*
|
nand:/shared2/*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Error_Report_Init();
|
||||||
|
|
||||||
|
|
||||||
mprintf("App. shared files backup ");
|
mprintf("App. shared files backup ");
|
||||||
if( 0 == copy_r( &dir_entry_list_head, MyFile_GetAppSharedSaveDirName() ,
|
if( 0 == copy_r( &dir_entry_list_head, MyFile_GetAppSharedSaveDirName() ,
|
||||||
"nand:/shared2" , MyFile_GetAppSharedLogFileName(), 0) ) {
|
"nand:/shared2" , MyFile_GetAppSharedLogFileName(), 0) ) {
|
||||||
|
|
||||||
// PrintDirEntryListBackward( dir_entry_list_head, NULL );
|
// PrintDirEntryListBackward( dir_entry_list_head, NULL );
|
||||||
mydata.num_of_shared2_files = SaveDirEntryList( dir_entry_list_head, MyFile_GetAppSharedListFileName() );
|
if( TRUE == SaveDirEntryList( dir_entry_list_head, MyFile_GetAppSharedListFileName(),
|
||||||
m_set_palette(tc[0], 0x2); /* green */
|
&list_count, &error_count, MyFile_GetAppSharedSaveLogFileName()) ) {
|
||||||
mprintf("OK.\n");
|
mydata.num_of_shared2_files = list_count;
|
||||||
m_set_palette(tc[0], 0xF); /* white */
|
mydata.num_of_error_shared2_files = error_count;
|
||||||
|
|
||||||
|
if( error_count == 0 ) {
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
|
mprintf("OK.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mydata.num_of_shared2_files = -1; /* failed */
|
||||||
|
mydata.num_of_error_shared2_files = -1;
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
mydata.num_of_shared2_files = -1; /* failed */
|
||||||
|
mydata.num_of_error_shared2_files = -1;
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ret_flag == FALSE ) {
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
mprintf("NG.\n");
|
mprintf("NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
return FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
(void)ClearDirEntryList( &dir_entry_list_head );
|
(void)ClearDirEntryList( &dir_entry_list_head );
|
||||||
return TRUE;
|
if( TRUE == Error_Report_Display(tc[0]) ) {
|
||||||
|
mprintf("\n");
|
||||||
|
}
|
||||||
|
Error_Report_End();
|
||||||
|
|
||||||
|
return ret_flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static BOOL SDBackupToSDCard5(void)
|
static BOOL SDBackupToSDCard5(void)
|
||||||
{
|
{
|
||||||
MY_DIR_ENTRY_LIST *dir_entry_list_head = NULL;
|
MY_DIR_ENTRY_LIST *dir_entry_list_head = NULL;
|
||||||
int save_dir_info = 0;
|
int save_dir_info = 0;
|
||||||
|
BOOL ret_flag = TRUE;
|
||||||
|
int list_count;
|
||||||
|
int error_count;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
nand2:/photoディレクトリまわりの保存
|
nand2:/photoディレクトリまわりの保存
|
||||||
内容は写真長のJPEGファイル
|
内容は写真長のJPEGファイル
|
||||||
nand2:/photo/*.*
|
nand2:/photo/*.*
|
||||||
*/
|
*/
|
||||||
|
Error_Report_Init();
|
||||||
|
|
||||||
mprintf("Photo files backup ");
|
mprintf("Photo files backup ");
|
||||||
if( 0 == copy_r( &dir_entry_list_head, MyFile_GetPhotoSaveDirName() ,
|
if( 0 == copy_r( &dir_entry_list_head, MyFile_GetPhotoSaveDirName() ,
|
||||||
"nand2:/photo" , MyFile_GetPhotoLogFileName(),0 ) ) {
|
"nand2:/photo" , MyFile_GetPhotoLogFileName(),0 ) ) {
|
||||||
|
|
||||||
// PrintDirEntryListBackward( dir_entry_list_head, NULL );
|
// PrintDirEntryListBackward( dir_entry_list_head, NULL );
|
||||||
mydata.num_of_photo_files = SaveDirEntryList( dir_entry_list_head, MyFile_GetPhotoListFileName() );
|
if( TRUE == SaveDirEntryList( dir_entry_list_head, MyFile_GetPhotoListFileName(),
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
&list_count, &error_count, MyFile_GetPhotoSaveLogFileName() ) ) {
|
||||||
mprintf("OK.\n");
|
mydata.num_of_photo_files = list_count;
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
mydata.num_of_error_photo_files = error_count;
|
||||||
|
if( error_count > 0 ) {
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mydata.num_of_photo_files = -1; /* failed */
|
||||||
|
mydata.num_of_error_photo_files = -1; /* failed */
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
mydata.num_of_photo_files = -1; /* failed */
|
||||||
|
mydata.num_of_error_photo_files = -1; /* failed */
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ret_flag == FALSE ) {
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
mprintf("NG.\n");
|
mprintf("NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
return FALSE;
|
}
|
||||||
|
else {
|
||||||
|
m_set_palette(tc[0], 0x2); /* green */
|
||||||
|
mprintf("OK.\n");
|
||||||
|
m_set_palette(tc[0], 0xF); /* white */
|
||||||
|
|
||||||
}
|
}
|
||||||
(void)ClearDirEntryList( &dir_entry_list_head );
|
(void)ClearDirEntryList( &dir_entry_list_head );
|
||||||
|
if( TRUE == Error_Report_Display(tc[0]) ) {
|
||||||
|
mprintf("\n");
|
||||||
|
}
|
||||||
|
Error_Report_End();
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
|
return ret_flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL SDBackupToSDCard6(void)
|
static BOOL SDBackupToSDCard6(void)
|
||||||
{
|
{
|
||||||
MY_DIR_ENTRY_LIST *dir_entry_list_head = NULL;
|
MY_DIR_ENTRY_LIST *dir_entry_list_head = NULL;
|
||||||
int save_dir_info = 0;
|
int save_dir_info = 0;
|
||||||
|
BOOL ret_flag = TRUE;
|
||||||
|
|
||||||
|
int list_count;
|
||||||
|
int error_count;
|
||||||
|
|
||||||
|
|
||||||
|
Error_Report_Init();
|
||||||
|
|
||||||
/* nand:/ticketはチケット同期?でうまいこと合わせてくれるんでバックアップ不要 */
|
/* nand:/ticketはチケット同期?でうまいこと合わせてくれるんでバックアップ不要 */
|
||||||
|
|
||||||
@ -232,10 +309,34 @@ static BOOL SDBackupToSDCard6(void)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
mprintf("App. save data backup ");
|
mprintf("App. save data backup ");
|
||||||
if( 0 == find_title_save_data( &dir_entry_list_head, MyFile_GetAppDataSaveDirName(), "nand:/title",
|
if( 0 == find_title_save_data( &dir_entry_list_head, MyFile_GetSaveDataSaveDirName(), "nand:/title",
|
||||||
&save_dir_info, MyFile_GetAppDataLogFileName(),0 ) ) {
|
&save_dir_info, MyFile_GetSaveDataLogFileName(),0 ) ) {
|
||||||
// PrintDirEntryListBackward( dir_entry_list_head, NULL );
|
// PrintDirEntryListBackward( dir_entry_list_head, NULL );
|
||||||
mydata.num_of_app_save_data = SaveDirEntryList( dir_entry_list_head , MyFile_GetAppDataListFileName() );
|
// mydata.num_of_app_save_data = SaveDirEntryList( dir_entry_list_head ,
|
||||||
|
// mydata.num_of_app_save_data =
|
||||||
|
|
||||||
|
|
||||||
|
if( TRUE == SaveDirEntryList( dir_entry_list_head , MyFile_GetSaveDataListFileName(),
|
||||||
|
&list_count, &error_count, MyFile_GetSaveDataSaveLogFileName() ) ) {
|
||||||
|
mydata.num_of_app_save_data = list_count;
|
||||||
|
mydata.num_of_error_app_save_data = error_count;
|
||||||
|
if( error_count > 0 ) {
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mydata.num_of_app_save_data = -1;
|
||||||
|
mydata.num_of_error_app_save_data = -1;
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mydata.num_of_app_save_data = -1;
|
||||||
|
mydata.num_of_error_app_save_data = -1;
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ret_flag == TRUE ) {
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
mprintf("OK.\n");
|
mprintf("OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
@ -244,12 +345,17 @@ static BOOL SDBackupToSDCard6(void)
|
|||||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
mprintf("NG.\n");
|
mprintf("NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
return FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
(void)ClearDirEntryList( &dir_entry_list_head );
|
(void)ClearDirEntryList( &dir_entry_list_head );
|
||||||
|
|
||||||
return TRUE;
|
if( TRUE == Error_Report_Display(tc[0]) ) {
|
||||||
|
mprintf("\n");
|
||||||
|
}
|
||||||
|
Error_Report_End();
|
||||||
|
|
||||||
|
return ret_flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL SDBackupToSDCard7(void)
|
static BOOL SDBackupToSDCard7(void)
|
||||||
@ -285,51 +391,58 @@ static BOOL SDBackupToSDCard7(void)
|
|||||||
|
|
|
|
||||||
システムアプリはダウンロード対象外
|
システムアプリはダウンロード対象外
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Error_Report_Init();
|
||||||
|
|
||||||
OS_TPrintf("User title list backup \n");
|
OS_TPrintf("User title list backup \n");
|
||||||
mprintf("User title list backup ");
|
mprintf("User title list backup ");
|
||||||
if( 0 == get_title_id( &dir_entry_list_head, "nand:/title", &save_dir_info,
|
if( 0 == get_title_id( &dir_entry_list_head, "nand:/title", &save_dir_info,
|
||||||
MyFile_GetDownloadTitleIDLogFileName(), 0 ) ) {
|
MyFile_GetDownloadTitleIDLogFileName(), 0 ) ) {
|
||||||
|
|
||||||
GetDirEntryList( dir_entry_list_head, &pBuffer, &count);
|
flag = GetUserAppTitleList( dir_entry_list_head, &pBuffer, &count,
|
||||||
|
MyFile_GetUserAppTitleListLogFileName()) ;
|
||||||
|
|
||||||
ptr = pBuffer;
|
if( TRUE == flag ) {
|
||||||
mydata.num_of_user_download_app = count;
|
ptr = pBuffer;
|
||||||
|
mydata.num_of_user_download_app = count;
|
||||||
|
mydata.num_of_error_user_download_app = 0;
|
||||||
|
|
||||||
if( ptr != NULL && count != 0 ) {
|
if( ptr != NULL && count != 0 ) {
|
||||||
for( j = 0 ; j < count ; j++ ) {
|
for( j = 0 ; j < count ; j++ ) {
|
||||||
OS_TPrintf("No. %d 0x%016llx\n",j,*ptr);
|
OS_TPrintf("No. %d 0x%016llx\n",j,*ptr);
|
||||||
mfprintf(tc[2],"No. %d 0x%016llx\n",j,*ptr);
|
mfprintf(tc[2],"No. %d 0x%016llx\n",j,*ptr);
|
||||||
ptr++;
|
ptr++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
PrintSrcDirEntryListBackward( dir_entry_list_head, NULL );
|
|
||||||
|
|
||||||
if( TRUE == TitleIDSave( MyFile_GetDownloadTitleIDFileName(), pBuffer, count, NULL) ) {
|
// PrintSrcDirEntryListBackward( dir_entry_list_head, NULL );
|
||||||
//MyFile_GetDownloadTitleIDLogFileName()
|
flag = TitleIDSave( MyFile_GetDownloadTitleIDFileName(),
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
pBuffer, count, MyFile_GetDownloadTitleIDSaveLogFileName());
|
||||||
mprintf("OK.\n");
|
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
|
||||||
mprintf("NG.(save ids)\n");
|
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
|
||||||
flag = FALSE;
|
|
||||||
// return FALSE;
|
|
||||||
}
|
}
|
||||||
if( pBuffer ) {
|
if( pBuffer ) {
|
||||||
OS_Free(pBuffer);
|
OS_Free(pBuffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( flag == TRUE ) {
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
|
mprintf("OK.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
m_set_palette(tc[0], 0x1); /* red */
|
m_set_palette(tc[0], 0x1); /* red */
|
||||||
mprintf("NG.(get ids)\n");
|
mprintf("NG.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
flag = FALSE;
|
mydata.num_of_user_download_app = -1; /* failed */
|
||||||
// return FALSE;
|
mydata.num_of_error_user_download_app = -1;
|
||||||
}
|
}
|
||||||
(void)ClearDirEntryList( &dir_entry_list_head );
|
(void)ClearDirEntryList( &dir_entry_list_head );
|
||||||
|
|
||||||
|
if( TRUE == Error_Report_Display(tc[0]) ) {
|
||||||
|
mprintf("\n");
|
||||||
|
}
|
||||||
|
Error_Report_End();
|
||||||
|
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -338,7 +451,6 @@ static BOOL SDBackupToSDCard8(void)
|
|||||||
RTCDate rtc_date;
|
RTCDate rtc_date;
|
||||||
RTCTime rtc_time;
|
RTCTime rtc_time;
|
||||||
|
|
||||||
|
|
||||||
/* オリジナルのデータのバックアップ */
|
/* オリジナルのデータのバックアップ */
|
||||||
if( RTC_RESULT_SUCCESS != RTC_GetDate( &rtc_date ) ) {
|
if( RTC_RESULT_SUCCESS != RTC_GetDate( &rtc_date ) ) {
|
||||||
mprintf("rtc read date error.\n");
|
mprintf("rtc read date error.\n");
|
||||||
@ -361,6 +473,7 @@ static BOOL SDBackupToSDCard8(void)
|
|||||||
LCFG_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN );
|
LCFG_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN );
|
||||||
|
|
||||||
mprintf("Personal data backup ");
|
mprintf("Personal data backup ");
|
||||||
|
/* こいつはフラグを立てられない、セーブできない。あたりまえ */
|
||||||
if( TRUE == MydataSaveEncrypt( MyFile_GetGlobalInformationFileName(), (void *)&mydata, sizeof(MyData), NULL) ) {
|
if( TRUE == MydataSaveEncrypt( MyFile_GetGlobalInformationFileName(), (void *)&mydata, sizeof(MyData), NULL) ) {
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
mprintf("OK.\n");
|
mprintf("OK.\n");
|
||||||
@ -659,12 +772,14 @@ void TwlMain(void)
|
|||||||
mydata.volume = (s32)MCU_GetVolume();
|
mydata.volume = (s32)MCU_GetVolume();
|
||||||
mydata.backlight_brightness = (s32)MCU_GetBackLightBrightness();
|
mydata.backlight_brightness = (s32)MCU_GetBackLightBrightness();
|
||||||
|
|
||||||
|
|
||||||
|
#if 0 /* いらないらしい */
|
||||||
OS_TPrintf("vol = %d\n",mydata.volume );
|
OS_TPrintf("vol = %d\n",mydata.volume );
|
||||||
OS_TPrintf("bright = %d\n", mydata.backlight_brightness);
|
OS_TPrintf("bright = %d\n", mydata.backlight_brightness);
|
||||||
|
|
||||||
MCU_SetVolume( (u8)31 );
|
MCU_SetVolume( (u8)31 );
|
||||||
MCU_SetBackLightBrightness( (u8)4 );
|
MCU_SetBackLightBrightness( (u8)4 );
|
||||||
|
#endif
|
||||||
|
|
||||||
// static inline BOOL MCU_SetVolume( u8 volume )
|
// static inline BOOL MCU_SetVolume( u8 volume )
|
||||||
// static inline BOOL MCU_SetBackLightBrightness( u8 brightness )
|
// static inline BOOL MCU_SetBackLightBrightness( u8 brightness )
|
||||||
@ -740,7 +855,7 @@ void TwlMain(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else if ( keyData & PAD_BUTTON_A ) {
|
else if ( keyData & (PAD_BUTTON_A | PAD_BUTTON_START) ) {
|
||||||
/* ユーザーデータ吸出しモード */
|
/* ユーザーデータ吸出しモード */
|
||||||
if(completed_flag == FALSE ) {
|
if(completed_flag == FALSE ) {
|
||||||
if( sd_card_flag == TRUE ) {
|
if( sd_card_flag == TRUE ) {
|
||||||
@ -757,9 +872,22 @@ void TwlMain(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( keyData & PAD_BUTTON_B ) {
|
else if ( keyData & PAD_BUTTON_B ) {
|
||||||
|
miya_debug_level++;
|
||||||
|
miya_debug_level &= 1;
|
||||||
|
if( miya_debug_level ) {
|
||||||
|
Miya_debug_ON();
|
||||||
|
mprintf("debug ON\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Miya_debug_OFF();
|
||||||
|
mprintf("debug OFF\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
|
/* スタートボタンはAボタンと同じ扱い */
|
||||||
else if ( keyData & PAD_BUTTON_START ) {
|
else if ( keyData & PAD_BUTTON_START ) {
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
else if ( keyData & PAD_BUTTON_SELECT ) {
|
else if ( keyData & PAD_BUTTON_SELECT ) {
|
||||||
}
|
}
|
||||||
else if ( keyData & PAD_BUTTON_X ) {
|
else if ( keyData & PAD_BUTTON_X ) {
|
||||||
|
|||||||
@ -81,10 +81,13 @@ static s32 CheckCorrectNCD(NVRAMConfig* ncdsp);
|
|||||||
static void VBlankIntr(void);
|
static void VBlankIntr(void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define MIYA_MCU_FREE_REG_NO 1
|
#define MIYA_MCU_FREE_REG_NO 1
|
||||||
|
|
||||||
|
#if 0
|
||||||
#define MIYA_MCU_FREE_REG_CODE 0x55
|
#define MIYA_MCU_FREE_REG_CODE 0x55
|
||||||
static u8 miya_mcu_free_register = 0x66;
|
static u8 miya_mcu_free_register = 0x66;
|
||||||
|
#endif
|
||||||
|
|
||||||
static void miya_mcu_free_reg_send_pxi_data(u32 data)
|
static void miya_mcu_free_reg_send_pxi_data(u32 data)
|
||||||
{
|
{
|
||||||
@ -98,6 +101,7 @@ static void miya_mcu_free_reg_send_pxi_data(u32 data)
|
|||||||
#define MIYA_MCU_COMMAND_GET_BRIGHTNESS 3
|
#define MIYA_MCU_COMMAND_GET_BRIGHTNESS 3
|
||||||
#define MIYA_MCU_COMMAND_SET_VOLUME 4
|
#define MIYA_MCU_COMMAND_SET_VOLUME 4
|
||||||
#define MIYA_MCU_COMMAND_SET_BRIGHTNESS 5
|
#define MIYA_MCU_COMMAND_SET_BRIGHTNESS 5
|
||||||
|
#define MIYA_MCU_COMMAND_SET_FREE_REG 6
|
||||||
|
|
||||||
static void miya_mcu_free_reg_pxi_callback(PXIFifoTag tag, u32 data, BOOL err)
|
static void miya_mcu_free_reg_pxi_callback(PXIFifoTag tag, u32 data, BOOL err)
|
||||||
{
|
{
|
||||||
@ -106,8 +110,12 @@ static void miya_mcu_free_reg_pxi_callback(PXIFifoTag tag, u32 data, BOOL err)
|
|||||||
|
|
||||||
switch( (data & 0xf) ) {
|
switch( (data & 0xf) ) {
|
||||||
case MIYA_MCU_COMMAND_GET_FREE_REG:
|
case MIYA_MCU_COMMAND_GET_FREE_REG:
|
||||||
miya_mcu_free_reg_send_pxi_data( (u32)miya_mcu_free_register );
|
miya_mcu_free_reg_send_pxi_data((u32)MCU_GetFreeRegister((u8)MIYA_MCU_FREE_REG_NO ));
|
||||||
break;
|
break;
|
||||||
|
case MIYA_MCU_COMMAND_SET_FREE_REG:
|
||||||
|
miya_mcu_free_reg_send_pxi_data( (u32)MCU_SetFreeRegister((u8)MIYA_MCU_FREE_REG_NO , (u8)((data >> 4) & 0xff)) );
|
||||||
|
break;
|
||||||
|
|
||||||
case MIYA_MCU_COMMAND_GET_VOLUME:
|
case MIYA_MCU_COMMAND_GET_VOLUME:
|
||||||
miya_mcu_free_reg_send_pxi_data( (u32)MCU_GetVolume() );
|
miya_mcu_free_reg_send_pxi_data( (u32)MCU_GetVolume() );
|
||||||
break;
|
break;
|
||||||
@ -117,15 +125,15 @@ static void miya_mcu_free_reg_pxi_callback(PXIFifoTag tag, u32 data, BOOL err)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case MIYA_MCU_COMMAND_SET_VOLUME:
|
case MIYA_MCU_COMMAND_SET_VOLUME:
|
||||||
miya_mcu_free_reg_send_pxi_data( (u32)MCU_SetVolume( (u8)((data >> 4) & 0xf)) );
|
miya_mcu_free_reg_send_pxi_data( (u32)MCU_SetVolume( (u8)((data >> 4) & 0xff)) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MIYA_MCU_COMMAND_SET_BRIGHTNESS:
|
case MIYA_MCU_COMMAND_SET_BRIGHTNESS:
|
||||||
miya_mcu_free_reg_send_pxi_data( (u32)MCU_SetBackLightBrightness( (u8)((data >> 4) & 0xf) ));
|
miya_mcu_free_reg_send_pxi_data( (u32)MCU_SetBackLightBrightness( (u8)((data >> 4) & 0xff) ));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
miya_mcu_free_reg_send_pxi_data( (u32)miya_mcu_free_register );
|
miya_mcu_free_reg_send_pxi_data( (u32)0xffffffff );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -183,10 +191,6 @@ TwlSpMain(void)
|
|||||||
SPI_Init(THREAD_PRIO_SPI);
|
SPI_Init(THREAD_PRIO_SPI);
|
||||||
|
|
||||||
|
|
||||||
miya_mcu_free_register = MCU_GetFreeRegister( (u8)MIYA_MCU_FREE_REG_NO );
|
|
||||||
|
|
||||||
(void)MCU_SetFreeRegister( (u8)MIYA_MCU_FREE_REG_NO , (u8)MIYA_MCU_FREE_REG_CODE );
|
|
||||||
|
|
||||||
PXI_SetFifoRecvCallback(PXI_FIFO_TAG_USER_0, miya_mcu_free_reg_pxi_callback);
|
PXI_SetFifoRecvCallback(PXI_FIFO_TAG_USER_0, miya_mcu_free_reg_pxi_callback);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user