mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
エラーログのフォーマットを変更してユーザ領域を213byteまで拡張
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2401 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
74837ff6bd
commit
9437150004
@ -28,15 +28,14 @@
|
|||||||
#define ERRORLOG_DIRECTORYPATH "nand:/sys/log"
|
#define ERRORLOG_DIRECTORYPATH "nand:/sys/log"
|
||||||
#define ERRORLOG_FILEPATH "nand:/sys/log/sysmenu.log"
|
#define ERRORLOG_FILEPATH "nand:/sys/log/sysmenu.log"
|
||||||
|
|
||||||
#define ERRORLOG_BAR "===================="
|
#define ERRORLOG_HEADER_SIZE 6
|
||||||
#define ERRORLOG_BAR_LENGTH 20
|
#define ERRORLOG_WRITE_FORMAT_RED1 "\n\n#RED %02u-%02u-%02u[%3s] %02u:%02u:%02u\n"
|
||||||
#define ERRORLOG_WRITE_FORMAT_RED1 ERRORLOG_BAR"\n#RED %02u-%02u-%02u[%3s] %02u:%02u:%02u\n"
|
|
||||||
#define ERRORLOG_WRITE_FORMAT_RED2 "title: %04s ErrorCode: %u\n%s"
|
#define ERRORLOG_WRITE_FORMAT_RED2 "title: %04s ErrorCode: %u\n%s"
|
||||||
#define ERRORLOG_WRITE_FORMAT1 ERRORLOG_BAR"\n#FFT %02u-%02u-%02u[%3s] %02u:%02u:%02u\n"
|
#define ERRORLOG_WRITE_FORMAT1 "\n\n#FFT %02u-%02u-%02u[%3s] %02u:%02u:%02u\n"
|
||||||
#define ERRORLOG_WRITE_FORMAT2 "title: %04s\n%s"
|
#define ERRORLOG_WRITE_FORMAT2 "title: %04s\n%s"
|
||||||
#define ERRORLOG_READ_FORMAT_RED1 ERRORLOG_BAR"\n#RED %d-%d-%d[%3s] %d:%d:%d\n"
|
#define ERRORLOG_READ_FORMAT_RED1 "\n\n#RED %d-%d-%d[%3s] %d:%d:%d\n"
|
||||||
#define ERRORLOG_READ_FORMAT_RED2 "title: %4s ErrorCode: %u\n%*s"
|
#define ERRORLOG_READ_FORMAT_RED2 "title: %4s ErrorCode: %u\n%*s"
|
||||||
#define ERRORLOG_READ_FORMAT1 ERRORLOG_BAR"\n#FFT %d-%d-%d[%3s] %d:%d:%d\n"
|
#define ERRORLOG_READ_FORMAT1 "\n\n#FFT %d-%d-%d[%3s] %d:%d:%d\n"
|
||||||
#define ERRORLOG_READ_FORMAT2 "title: %4s\n%s"
|
#define ERRORLOG_READ_FORMAT2 "title: %4s\n%s"
|
||||||
|
|
||||||
#define ERRORLOG_WRITE_FORMAT ERRORLOG_WRITE_FORMAT1 ERRORLOG_WRITE_FORMAT2
|
#define ERRORLOG_WRITE_FORMAT ERRORLOG_WRITE_FORMAT1 ERRORLOG_WRITE_FORMAT2
|
||||||
@ -46,7 +45,7 @@
|
|||||||
|
|
||||||
#define ERRORLOG_NUM_ARGS 9
|
#define ERRORLOG_NUM_ARGS 9
|
||||||
|
|
||||||
#define ERRORLOG_STR_OFFSET 61
|
#define ERRORLOG_STR_OFFSET 42
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -62,6 +61,7 @@ typedef enum CheckStatus {
|
|||||||
|
|
||||||
ErrorLogWork elWork;
|
ErrorLogWork elWork;
|
||||||
static BOOL isInitialized = FALSE;
|
static BOOL isInitialized = FALSE;
|
||||||
|
|
||||||
/*-- function prototype ----------------------*/
|
/*-- function prototype ----------------------*/
|
||||||
CheckStatus ERRORLOGi_CheckAndCreateDirectory( const char *path );
|
CheckStatus ERRORLOGi_CheckAndCreateDirectory( const char *path );
|
||||||
CheckStatus ERRORLOGi_CheckAndCreateFile( const char *path );
|
CheckStatus ERRORLOGi_CheckAndCreateFile( const char *path );
|
||||||
@ -568,7 +568,7 @@ int ERRORLOGi_ReadEntry( void )
|
|||||||
int numArgs = 0;
|
int numArgs = 0;
|
||||||
|
|
||||||
// 決められたファイルフォーマットからエントリに読み込む
|
// 決められたファイルフォーマットからエントリに読み込む
|
||||||
if( ! STD_StrNCmp( "#RED", &buf[ERRORLOG_BAR_LENGTH + 1], 4 ) )
|
if( ! STD_StrNCmp( "\n\n#RED", buf, ERRORLOG_HEADER_SIZE ) )
|
||||||
{
|
{
|
||||||
// ランチャから書き込まれたエラーの場合
|
// ランチャから書き込まれたエラーの場合
|
||||||
|
|
||||||
@ -589,7 +589,7 @@ int ERRORLOGi_ReadEntry( void )
|
|||||||
elWork.entry[numEntry].titleId = MI_LoadLE32( titlebuf );
|
elWork.entry[numEntry].titleId = MI_LoadLE32( titlebuf );
|
||||||
|
|
||||||
}
|
}
|
||||||
else if( !STD_StrNCmp( "#FFT", &buf[ERRORLOG_BAR_LENGTH + 1], 4 ) )
|
else if( !STD_StrNCmp( "\n\n#FFT", buf, ERRORLOG_HEADER_SIZE ) )
|
||||||
{
|
{
|
||||||
// フリーフォーマットで書き込まれたエラーの場合
|
// フリーフォーマットで書き込まれたエラーの場合
|
||||||
if( elWork.entry[numEntry].errorStr == NULL )
|
if( elWork.entry[numEntry].errorStr == NULL )
|
||||||
@ -635,6 +635,7 @@ int ERRORLOGi_ReadEntry( void )
|
|||||||
|
|
||||||
elWork.entry[numEntry].isBroken = TRUE;
|
elWork.entry[numEntry].isBroken = TRUE;
|
||||||
STD_CopyLStringZeroFill( elWork.entry[numEntry].errorStr, buf, ERRORLOG_BUFSIZE+1 );
|
STD_CopyLStringZeroFill( elWork.entry[numEntry].errorStr, buf, ERRORLOG_BUFSIZE+1 );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
numEntry++;
|
numEntry++;
|
||||||
@ -664,6 +665,7 @@ BOOL ERRORLOGi_SetString( char *buf, ErrorLogEntry *entry )
|
|||||||
if( entry->isBroken )
|
if( entry->isBroken )
|
||||||
{
|
{
|
||||||
STD_CopyLString( buf, entry->errorStr, ERRORLOG_BUFSIZE );
|
STD_CopyLString( buf, entry->errorStr, ERRORLOG_BUFSIZE );
|
||||||
|
buf[ ERRORLOG_BUFSIZE-1 ] = '\n';
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -19,13 +19,13 @@
|
|||||||
SUBDIRS =
|
SUBDIRS =
|
||||||
SUBMAKES = Makefile.0 Makefile.1
|
SUBMAKES = Makefile.0 Makefile.1
|
||||||
|
|
||||||
include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/commondefs
|
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
do-build : $(TARGETS)
|
do-build : $(TARGETS)
|
||||||
|
|
||||||
include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/modulerules
|
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@ -48,16 +48,26 @@ void TwlMain( void )
|
|||||||
|
|
||||||
numEntry = ERRORLOG_GetNum();
|
numEntry = ERRORLOG_GetNum();
|
||||||
OS_TPrintf("API: before numEntry : %d\n", numEntry );
|
OS_TPrintf("API: before numEntry : %d\n", numEntry );
|
||||||
|
ERRORLOG_Write( 0x80000 );
|
||||||
ERRORLOG_Write( (u64)0x0200040051LL );
|
|
||||||
ERRORLOG_Printf( "%d hyoooo nyoronyoro\naboooon dogaaaaaaaan", 2+5 );
|
|
||||||
ERRORLOG_Printf( "this is overflow message!\nthis is overflow message!\nthis is overflow message!\n"
|
ERRORLOG_Printf( "this is overflow message!\nthis is overflow message!\nthis is overflow message!\n"
|
||||||
"this is overflow message!\nthis is overflow message!\nthis is overflow message!\n"
|
"this is overflow message!\nthis is overflow message!\nthis is overflow message!\n"
|
||||||
"this is overflow message!\nthis is overflow message!\nthis is overflow message!\n"
|
"this is overflow message!\nthis is overflow message!\nthis is overflow message!\n"
|
||||||
"this is overflow message!\nthis is overflow message!\nthis is overflow message!\n"
|
"this is overflow message!\nthis is overflow message!\nthis is overflow message!\n"
|
||||||
"this is overflow message!\nthis is overflow message!\nthis is overflow message!\n"
|
"this is overflow message!\nthis is overflow message!\nthis is overflow message!\n"
|
||||||
"this is overflow message!\nthis is overflow message!\nthis is overflow message!\n" );
|
"this is overflow message!\nthis is overflow message!\nthis is overflow message!\n" );
|
||||||
|
|
||||||
|
/*
|
||||||
|
ERRORLOG_Write( (u64)0x77700040051LL );
|
||||||
|
ERRORLOG_Printf( "%d hyoooo nyoronyoro\naboooon dogaaaaaaaan", 2+5 );
|
||||||
|
|
||||||
|
|
||||||
|
ERRORLOG_Printf( "menuRedIplManager.cpp [l.73] RED FATAL 0" );
|
||||||
|
ERRORLOG_Printf( "this is too long long long long long long long long long long long long string.\n"
|
||||||
|
"this is too long long long long long long long long long long long long string.\n"
|
||||||
|
"this is too long long long long long long long long long long long long string.\n"
|
||||||
|
"this is too long long long long long long long long long long long long string.\n" );
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if( numEntry > 2 )
|
if( numEntry > 2 )
|
||||||
{
|
{
|
||||||
|
|||||||
@ -30,7 +30,7 @@ extern "C" {
|
|||||||
// 日付データとかを除いた、自由フォーマットで書き込めるサイズ
|
// 日付データとかを除いた、自由フォーマットで書き込めるサイズ
|
||||||
// このサイズを超えた文字列は切り捨てられます
|
// このサイズを超えた文字列は切り捨てられます
|
||||||
// ERRORLOG_STR_LENGTH = ERRORLOG_BUFSIZE - ERRORLOG_STR_OFFSET - 1
|
// ERRORLOG_STR_LENGTH = ERRORLOG_BUFSIZE - ERRORLOG_STR_OFFSET - 1
|
||||||
#define ERRORLOG_STR_LENGTH 194
|
#define ERRORLOG_STR_LENGTH 213
|
||||||
#define ERRORLOG_SIZE ( 16 * 1024 ) // ファイルは16KBサイズ固定
|
#define ERRORLOG_SIZE ( 16 * 1024 ) // ファイルは16KBサイズ固定
|
||||||
#define ERRORLOG_BUFSIZE 256 // 1エントリあたりのサイズ
|
#define ERRORLOG_BUFSIZE 256 // 1エントリあたりのサイズ
|
||||||
#define ERRORLOG_NUM_ENTRY ( ERRORLOG_SIZE / ERRORLOG_BUFSIZE ) // ログに書き込まれるエントリの最大数
|
#define ERRORLOG_NUM_ENTRY ( ERRORLOG_SIZE / ERRORLOG_BUFSIZE ) // ログに書き込まれるエントリの最大数
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user