・下記のAPIをSYSMからUTLライブラリに移動。

・ペアレンタルコントロールのマスターキー関係
 ・スリープ
・下記のAPIをSYSMから削除。
 ・バックライト輝度制御。
 ・無線LED制御。
・ランチャーの無線LED制御をPMi_SetWirelessLEDに変更。
・本体設定で、UTL_SetBacklightBrightnessを使用したバックライト輝度変更を追加。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1457 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2008-05-22 02:43:45 +00:00
parent ab733f5d99
commit d83aca47fe
16 changed files with 74 additions and 472 deletions

View File

@ -37,7 +37,6 @@ SRCS = sysmenu_lib.c \
../common/src/pxi.c \
../common/src/mountInfo.c \
../common/src/decryptAES.c \
../common/src/masterkey.c \
$(REVISION_SRC)

View File

@ -24,16 +24,8 @@
// define data-----------------------------------------------------------------
// extern data-----------------------------------------------------------------
// function's prototype-------------------------------------------------------
#ifdef SDK_FINALROM
u32 PM_SendUtilityCommandAsync(u32 number, u16 parameter, u16* retValue, PMCallback callback, void *arg);
u32 PM_SendUtilityCommand(u32 number, u16 parameter, u16* retValue);
u32 PMi_WriteRegister(u16 registerAddr, u16 data);
u32 PMi_WriteRegisterAsync(u16 registerAddr, u16 data, PMCallback callback, void *arg);
#endif // SDK_FINALROM
// global variable-------------------------------------------------------------
// static variable-------------------------------------------------------------
static u8 s_brightness;
// const data------------------------------------------------------------------
// ============================================================================
@ -42,102 +34,6 @@ static u8 s_brightness;
//
// ============================================================================
// 輝度取得で呼ぶSYSM_ReadMcuRegisterAsyncのコールバック
static OSThreadQueue s_callback_queue;
static SYSMMcuResult s_callback_result;
static void MCUCallBack( SYSMMcuResult result, void *arg )
{
#pragma unused(arg)
s_callback_result = result;
OS_WakeupThread( &s_callback_queue );
}
// バックライト輝度取得
u8 SYSM_GetBackLightBlightness( void )
{
u8 brightness;
#ifdef SDK_SUPPORT_PMIC_2
if ( SYSMi_GetMcuVersion() <= 1 )
{
// X2以前
brightness = s_brightness;
}
else
#endif // SDK_SUPPORT_PMIC_2
{
// X3以降
while( 1 )
{
// BUSYだと失敗するので成功するまでトライ
if ( MCU_RESULT_SUCCESS == SYSM_ReadMcuRegisterAsync( MCU_REG_BL_ADDR, &brightness, MCUCallBack, NULL ) )
{
OS_SleepThread( &s_callback_queue ); // 値が返ってくるまでスリープ
break;
}
}
}
return brightness;
}
// バックライト輝度調整
void SYSM_SetBackLightBrightness( u8 brightness )
{
if( brightness > BACKLIGHT_BRIGHTNESS_MAX ) {
OS_TPrintf( "Backlight brightness over! Change brightenss forcibly : %d -> %d\n", brightness, BACKLIGHT_BRIGHTNESS_MAX );
brightness = BACKLIGHT_BRIGHTNESS_MAX;
}
#ifdef SDK_SUPPORT_PMIC_2
if ( SYSMi_GetMcuVersion() <= 1 )
{
s_brightness = brightness;
( void )PMi_WriteRegister( REG_PMIC_BL_BRT_B_ADDR, (u8)(s_brightness * 2) );
}
else
#endif // SDK_SUPPORT_PMIC_2
{
// X3以降はマイコンに保存するだけ
while( 1 )
{
// BUSYだと失敗するので成功するまでトライ
if ( MCU_RESULT_SUCCESS == SYSM_WriteMcuRegisterAsync( MCU_REG_BL_ADDR, brightness, NULL, NULL ) )
{
break;
}
}
}
}
// ワイヤレスLEDの制御
void SYSMi_SetWirelessLED( BOOL enable )
{
u8 value;
// X3以降
while( 1 )
{
// BUSYだと失敗するので成功するまでトライ
if ( MCU_RESULT_SUCCESS == SYSM_ReadMcuRegisterAsync( MCU_REG_WIFI_ADDR, &value, MCUCallBack, NULL ) )
{
OS_SleepThread( &s_callback_queue ); // 値が返ってくるまでスリープ
break;
}
}
value = (u8)( ( value & ~MCU_REG_WIFI_LED_MASK ) | ( enable ? MCU_REG_WIFI_LED_MASK : 0 ) );
while( 1 )
{
// BUSYだと失敗するので成功するまでトライ
if ( MCU_RESULT_SUCCESS == SYSM_WriteMcuRegisterAsync( MCU_REG_WIFI_ADDR, value, NULL, NULL ) )
{
break;
}
}
}
// RTCクロック補正値をセット
void SYSMi_WriteAdjustRTC( void )
{
@ -175,61 +71,3 @@ void SYSMi_CheckRTC( void )
}
}
// スリープモードへの遷移
void SYSM_GoSleepMode( void )
{
// 蓋閉じ判定
if ( ! PAD_DetectFold() )
{
return;
}
// デバッガ起動時にはスリープに入らない
if ( ! SYSM_IsRunOnDebugger() || (OSi_DetectDebugger() & OS_CONSOLE_TWLDEBUGGER) )
{
// カード抜け無検出設定
// TWLではゲームカードの再ロードが可能なため
// スリープ時のカード抜け検出を無効化
// DS-IPLではゲームカードが起動できなくなるので
// レジューム時のROM-IDチェックでエラーになると
// シャットダウンしていた)
OSIntrMode enable = OS_DisableInterrupts();
reg_MI_MCCNT0 &= ~REG_MI_MCCNT0_I_MASK;
OS_ResetRequestIrqMask( OS_IE_CARD_IREQ );
OS_RestoreInterrupts( enable );
// スリープ遷移
PM_GoSleepMode( PM_TRIGGER_COVER_OPEN |
PM_TRIGGER_RTC_ALARM,
0,
0 );
}
}
#ifdef SDK_FINALROM
/*---------------------------------------------------------------------------*
Name: PMi_WriteRegisterAsync
Description: send write register command to ARM7
Arguments: registerAddr : PMIC register number (0-3)
data : data written to PMIC register
callback : callback function
arg : callback argument
Returns: result of issueing command
PM_RESULT_BUSY : busy
PM_RESULT_SUCCESS : success
*---------------------------------------------------------------------------*/
u32 PMi_WriteRegisterAsync(u16 registerAddr, u16 data, PMCallback callback, void *arg)
{
return PM_SendUtilityCommandAsync(PMi_UTIL_WRITEREG, (u16)((registerAddr<<16) | (data&0xff)), NULL, callback, arg);
}
u32 PMi_WriteRegister(u16 registerAddr, u16 data)
{
return PM_SendUtilityCommand(PMi_UTIL_WRITEREG, (u16)((registerAddr<<16) | (data&0xff)), NULL);
}
#endif // SDK_FINALROM

View File

@ -194,13 +194,13 @@ TitleProperty *SYSM_ReadParameters( void )
// 無線ON/OFFフラグをもとに、LEDを設定する。
//-----------------------------------------------------
{
BOOL enable;
PMWirelessLEDStatus enable;
if( LCFG_THW_IsForceDisableWireless() ) {
enable = FALSE;
enable = PM_WIRELESS_LED_OFF;
}else {
enable = LCFG_TSD_IsAvailableWireless();
enable = LCFG_TSD_IsAvailableWireless() ? PM_WIRELESS_LED_ON : PM_WIRELESS_LED_OFF;
}
SYSMi_SetWirelessLED( enable );
PMi_SetWirelessLED( enable );
}
//-----------------------------------------------------

View File

@ -58,9 +58,6 @@ void SYSMi_SetBootAppMountInfo( TitleProperty *pBootTitle );
// デバイス
//-------------------------------------------------------
// ワイヤレスLED制御
void SYSMi_SetWirelessLED( BOOL enable );
// RTC補正
void SYSMi_WriteAdjustRTC( void );

View File

@ -234,18 +234,6 @@ void SYSMi_PXIFifoRecvCallback( PXIFifoTag tag, u32 data, BOOL err )
switch( cmd )
{
case SYSM_PXI_COMM_BL_BRIGHT:
#ifdef SDK_SUPPORT_PMIC_2
if ( SYSMi_GetMcuVersion() <= 1 )
{
PMi_SetRegister( REG_PMIC_BL_BRT_B_ADDR, (u8)packet.data );
}
else
#endif // SDK_SUPPORT_PMIC_2
{
MCU_WriteRegister( MCU_REG_BL_ADDR, (u8)packet.data );
}
break;
#ifdef DHT_TEST
case SYSM_PXI_COMM_DS_HASH_TABLE:
dht = (void*)(0x2000000 + (packet.data << 8));

View File

@ -26,6 +26,7 @@ TWL_PROC = ARM9
SRCDIR = src
SRCS = util.c \
masterkey.c
TARGET_LIB = libsysmutil$(TWL_LIBSUFFIX).a

View File

@ -1,255 +0,0 @@
/*---------------------------------------------------------------------------*
Project: TwlIPL
File: SYSM_lib.c
Copyright 2007 Nintendo. All rights reserved.
These coded instructions, statements, and computer programs contain
proprietary information of Nintendo of America Inc. and/or Nintendo
Company Ltd., and are protected by Federal copyright law. They may
not be disclosed to third parties or copied or duplicated in any form,
in whole or in part, without the prior written consent of Nintendo.
$Date:: $
$Rev$
$Author$
*---------------------------------------------------------------------------*/
#include <twl.h>
#include <sysmenu.h>
#include <sysmenu/mcu.h>
#include <spi.h>
#include "internal_api.h"
// define data-----------------------------------------------------------------
// extern data-----------------------------------------------------------------
// function's prototype-------------------------------------------------------
#ifdef SDK_FINALROM
u32 PM_SendUtilityCommandAsync(u32 number, u16 parameter, u16* retValue, PMCallback callback, void *arg);
u32 PM_SendUtilityCommand(u32 number, u16 parameter, u16* retValue);
u32 PMi_WriteRegister(u16 registerAddr, u16 data);
u32 PMi_WriteRegisterAsync(u16 registerAddr, u16 data, PMCallback callback, void *arg);
#endif // SDK_FINALROM
// global variable-------------------------------------------------------------
// static variable-------------------------------------------------------------
static u8 s_brightness;
// const data------------------------------------------------------------------
// ============================================================================
//
// デバイス制御
//
// ============================================================================
// 輝度取得で呼ぶSYSM_ReadMcuRegisterAsyncのコールバック
static OSThreadQueue s_callback_queue;
static SYSMMcuResult s_callback_result;
static void MCUCallBack( SYSMMcuResult result, void *arg )
{
#pragma unused(arg)
s_callback_result = result;
OS_WakeupThread( &s_callback_queue );
}
// バックライト輝度取得
u8 SYSM_GetBackLightBlightness( void )
{
u8 brightness;
#ifdef SDK_SUPPORT_PMIC_2
if ( SYSMi_GetMcuVersion() <= 1 )
{
// X2以前
brightness = s_brightness;
}
else
#endif // SDK_SUPPORT_PMIC_2
{
// X3以降
while( 1 )
{
// BUSYだと失敗するので成功するまでトライ
if ( MCU_RESULT_SUCCESS == SYSM_ReadMcuRegisterAsync( MCU_REG_BL_ADDR, &brightness, MCUCallBack, NULL ) )
{
OS_SleepThread( &s_callback_queue ); // 値が返ってくるまでスリープ
break;
}
}
}
return brightness;
}
// バックライト輝度調整
void SYSM_SetBackLightBrightness( u8 brightness )
{
if( brightness > BACKLIGHT_BRIGHTNESS_MAX ) {
OS_TPrintf( "Backlight brightness over! Change brightenss forcibly : %d -> %d\n", brightness, BACKLIGHT_BRIGHTNESS_MAX );
brightness = BACKLIGHT_BRIGHTNESS_MAX;
}
#ifdef SDK_SUPPORT_PMIC_2
if ( SYSMi_GetMcuVersion() <= 1 )
{
s_brightness = brightness;
( void )PMi_WriteRegister( REG_PMIC_BL_BRT_B_ADDR, (u8)(s_brightness * 2) );
}
else
#endif // SDK_SUPPORT_PMIC_2
{
// X3以降はマイコンに保存するだけ
while( 1 )
{
// BUSYだと失敗するので成功するまでトライ
if ( MCU_RESULT_SUCCESS == SYSM_WriteMcuRegisterAsync( MCU_REG_BL_ADDR, brightness, NULL, NULL ) )
{
break;
}
}
}
}
// ワイヤレスLEDの制御
void SYSMi_SetWirelessLED( BOOL enable )
{
u8 value;
// X3以降
while( 1 )
{
// BUSYだと失敗するので成功するまでトライ
if ( MCU_RESULT_SUCCESS == SYSM_ReadMcuRegisterAsync( MCU_REG_WIFI_ADDR, &value, MCUCallBack, NULL ) )
{
OS_SleepThread( &s_callback_queue ); // 値が返ってくるまでスリープ
break;
}
}
value = (u8)( ( value & ~MCU_REG_WIFI_LED_MASK ) | ( enable ? MCU_REG_WIFI_LED_MASK : 0 ) );
while( 1 )
{
// BUSYだと失敗するので成功するまでトライ
if ( MCU_RESULT_SUCCESS == SYSM_WriteMcuRegisterAsync( MCU_REG_WIFI_ADDR, value, NULL, NULL ) )
{
break;
}
}
}
// タッチパネルキャリブレーション
void SYSM_CaribrateTP( void )
{
LCFGTWLTPCalibData store;
TPCalibrateParam calibParam;
// 本体設定データからキャリブレーション情報を取得
LCFG_TSD_GetTPCalibration( &store );
// TPキャリブレーション
( void )TP_CalcCalibrateParam( &calibParam, // タッチパネル初期化
store.data.raw_x1, store.data.raw_y1, (u16)store.data.dx1, (u16)store.data.dy1,
store.data.raw_x2, store.data.raw_y2, (u16)store.data.dx2, (u16)store.data.dy2 );
TP_SetCalibrateParam( &calibParam );
OS_TPrintf("TP_calib: %4d %4d %4d %4d %4d %4d\n",
store.data.raw_x1, store.data.raw_y1, (u16)store.data.dx1, (u16)store.data.dy1,
store.data.raw_x2, store.data.raw_y2, (u16)store.data.dx2, (u16)store.data.dy2 );
}
// RTCクロック補正値をセット
void SYSMi_WriteAdjustRTC( void )
{
RTCRawAdjust raw;
raw.adjust = LCFG_THW_GetRTCAdjust();
( void )RTCi_SetRegAdjust( &raw );
}
// 起動時のRTCチェック
void SYSMi_CheckRTC( void )
{
RTCDate date;
RTCTime time;
// RTCのリセット or おかしい値を検出した場合は初回起動シーケンスへ。
( void )RTC_GetDateTime( &date, &time );
if( !UTL_CheckRTCDate( &date ) ||
!UTL_CheckRTCTime( &time )
#ifndef __IS_DEBUGGER_BUILD // 青デバッガではRTCの電池がないので、毎回ここにひっかかって設定データが片方クリアされてしまう。これを防ぐスイッチ。
||
SYSMi_GetWork()->flags.common.isResetRTC
#endif
) { // RTCの異常を検出したら、rtc入力フラグrtcOffsetを0にしてNVRAMに書き込み。
OS_TPrintf("\"RTC reset\" or \"Illegal RTC data\" detect!\n");
LCFG_TSD_SetRTCOffset( 0 );
LCFG_TSD_SetRTCLastSetYear( 0 );
{
u8 *pBuffer = SYSM_Alloc( LCFG_WRITE_TEMP );
if( pBuffer != NULL ) {
LCFG_WriteTWLSettings( (u8 (*)[ LCFG_WRITE_TEMP ] )pBuffer );
SYSM_Free( pBuffer );
}
}
}
}
// スリープモードへの遷移
void SYSM_GoSleepMode( void )
{
// 蓋閉じ判定
if ( ! PAD_DetectFold() )
{
return;
}
// デバッガ起動時にはスリープに入らない
if ( ! SYSM_IsRunOnDebugger() || (OSi_DetectDebugger() & OS_CONSOLE_TWLDEBUGGER) )
{
// カード抜け無検出設定
// TWLではゲームカードの再ロードが可能なため
// スリープ時のカード抜け検出を無効化
// DS-IPLではゲームカードが起動できなくなるので
// レジューム時のROM-IDチェックでエラーになると
// シャットダウンしていた)
OSIntrMode enable = OS_DisableInterrupts();
reg_MI_MCCNT0 &= ~REG_MI_MCCNT0_I_MASK;
OS_ResetRequestIrqMask( OS_IE_CARD_IREQ );
OS_RestoreInterrupts( enable );
// スリープ遷移
PM_GoSleepMode( PM_TRIGGER_COVER_OPEN |
PM_TRIGGER_RTC_ALARM,
0,
0 );
}
}
#ifdef SDK_FINALROM
/*---------------------------------------------------------------------------*
Name: PMi_WriteRegisterAsync
Description: send write register command to ARM7
Arguments: registerAddr : PMIC register number (0-3)
data : data written to PMIC register
callback : callback function
arg : callback argument
Returns: result of issueing command
PM_RESULT_BUSY : busy
PM_RESULT_SUCCESS : success
*---------------------------------------------------------------------------*/
u32 PMi_WriteRegisterAsync(u16 registerAddr, u16 data, PMCallback callback, void *arg)
{
return PM_SendUtilityCommandAsync(PMi_UTIL_WRITEREG, (u16)((registerAddr<<16) | (data&0xff)), NULL, callback, arg);
}
u32 PMi_WriteRegister(u16 registerAddr, u16 data)
{
return PM_SendUtilityCommand(PMi_UTIL_WRITEREG, (u16)((registerAddr<<16) | (data&0xff)), NULL);
}
#endif // SDK_FINALROM

View File

@ -72,10 +72,10 @@ u32 CalcMasterkey(const u8 *src)
// マスターキー算出
//
//======================================================================
u32 SYSM_CalcPCTLMasterKey( void )
u32 UTL_CalcPCTLMasterKey( void )
{
u32 masterKey;
u32 inquiryCode = SYSM_CalcPCTLInquiryCode();
u32 inquiryCode = UTL_CalcPCTLInquiryCode();
u8 arg[ 9 ];
RTCDate date;
RTC_Init();
@ -92,7 +92,7 @@ u32 SYSM_CalcPCTLMasterKey( void )
// ペアレンタルコントロール問い合わせ番号算出
//
//======================================================================
u32 SYSM_CalcPCTLInquiryCode( void )
u32 UTL_CalcPCTLInquiryCode( void )
{
int i;
u64 num = 0;

View File

@ -78,6 +78,42 @@ void UTL_CaribrateTP( const LCFGTWLTPCalibData *pCalib )
}
//======================================================================
// スリープ
//======================================================================
// スリープモードへの遷移
void UTL_GoSleepMode( void )
{
// 蓋閉じ判定
if ( ! PAD_DetectFold() )
{
return;
}
// デバッガ起動時にはスリープに入らない
if ( OSi_DetectDebugger() & OS_CONSOLE_TWLDEBUGGER )
{
// カード抜け無検出設定
// TWLではゲームカードの再ロードが可能なため
// スリープ時のカード抜け検出を無効化
// DS-IPLではゲームカードが起動できなくなるので
// レジューム時のROM-IDチェックでエラーになると
// シャットダウンしていた)
OSIntrMode enable = OS_DisableInterrupts();
reg_MI_MCCNT0 &= ~REG_MI_MCCNT0_I_MASK;
OS_ResetRequestIrqMask( OS_IE_CARD_IREQ );
OS_RestoreInterrupts( enable );
// スリープ遷移
PM_GoSleepMode( PM_TRIGGER_COVER_OPEN |
PM_TRIGGER_RTC_ALARM,
0,
0 );
}
}
//======================================================================
// RTCオフセット制御
//======================================================================

View File

@ -780,7 +780,7 @@ static void DrawBackLightSwitch(void)
static int old_brightness = -1;
u8 brightness;
brightness = SYSM_GetBackLightBlightness();
(void)UTL_GetBacklightBrightness( &brightness );
// 1フレーム前の古い値と輝度値が違っていたら描画しなおし
if( old_brightness != brightness )

View File

@ -54,11 +54,6 @@
#define FWHEADER_SIZE 0x100
/*
external functions
*/
extern void SYSMi_SetWirelessLED( BOOL enable );
/*
internal variables
*/
@ -511,7 +506,7 @@ instfirm_error:
// インストール開始すらできなかった時は、FATALエラー
#ifdef SDK_RELEASE
SYSMi_SetWirelessLED( FALSE );
PMi_SetWirelessLED( PM_WIRELESS_LED_OFF );
#endif
s_isFinished = TRUE;
SYSM_SetFatalError( TRUE );
@ -556,7 +551,7 @@ BOOL PollingInstallWlanFirmware( BOOL isStartScanWDS )
// ColdStartの無線ファームロードなら、FATALエラー
SYSM_SetFatalError( TRUE );
#ifdef SDK_RELEASE
SYSMi_SetWirelessLED( FALSE );
PMi_SetWirelessLED( PM_WIRELESS_LED_OFF );
#endif
s_isFinished = TRUE;
}else {

View File

@ -326,8 +326,11 @@ void TwlMain( void )
(void)SND_FlushCommand(SND_COMMAND_NOBLOCK);
#ifndef DISABLE_SLEEP
// スリープモードへの遷移(蓋閉じ判定はデフォルトで行う)
SYSM_GoSleepMode();
// デバッガ動作時はスリープしない
if( !SYSM_IsRunOnDebugger() ) {
// スリープモードへの遷移(蓋閉じ判定はデフォルトで行う)
UTL_GoSleepMode();
}
#endif // DISABLE_SLEEP
}
}

View File

@ -316,6 +316,23 @@ int MachineSettingMain( void )
}
}
// とりあえずバックライト輝度変更をここで確認。
if( pad.trg & PAD_BUTTON_R) {
u8 brightness;
(void)UTL_GetBacklightBrightness( &brightness );
if( ++brightness > BACKLIGHT_BRIGHTNESS_MAX ) {
brightness = BACKLIGHT_BRIGHTNESS_MAX;
}
(void)UTL_SetBacklightBrightness( brightness );
}
if( pad.trg & PAD_BUTTON_L ) {
u8 brightness;
(void)UTL_GetBacklightBrightness( &brightness );
if( --brightness < 0 ) {
brightness = 0;
}
(void)UTL_SetBacklightBrightness( brightness );
}
return 0;
}

View File

@ -34,9 +34,9 @@ extern "C" {
#define SYSMENU_PXI_FIFO_TAG (PXI_MAX_FIFO_TAG - 5)
typedef enum SYSMPXICommand {
SYSM_PXI_COMM_BL_BRIGHT = 0,
SYSM_PXI_COMM_DUMMY = 0,
#ifdef DHT_TEST
SYSM_PXI_COMM_DS_HASH_TABLE = 1,
SYSM_PXI_COMM_DS_HASH_TABLE,
#endif
SYSM_PXI_COMM_NUM

View File

@ -109,31 +109,11 @@ extern void SYSM_StartDecryptAESRegion( ROM_Header_Short *hs ); //
extern BOOL SYSM_InitDecryptAESRegion_W( ROM_Header_Short *hs ); // WRAM経由ファイル読み込みのコールバックで使うAESデクリプト処理の初期化
extern void SYSM_StartDecryptAESRegion_W( const void *wram_addr, const void *orig_addr, u32 size );
// WRAM経由ファイル読み込みのコールバックで使うAESデクリプト処理関数
// デバイス制御
extern void SYSM_CaribrateTP( void ); // タッチパネルキャリブレーション
extern void SYSM_SetBackLightBrightness( u8 brightness ); // バックライトを制御(本体設定データへの値セーブも行う)
extern u8 SYSM_GetBackLightBlightness( void ); // バックライト輝度を取得X2以前とX3以降で挙動に違い
// Nintendoロゴ制御
extern BOOL SYSM_CheckNintendoLogo( u16 *pLogoData ); // Nintendoロゴデータのチェック
extern void SYSM_LoadNintendoLogo2D( u16 *pLogoData, u16 *pDst, int paletteColorIndex ); // NintendoロゴデータをOBJ_2D形式でロードpTempBufferには0x700bytes必要)
extern void SYSM_LoadNintendoLogo1D( u16 *pLogoData, u16 *pDst, int paletteColorIndex ); // NintendoロゴデータをOBJ_1D形式でロード同上
// RTC制御
extern BOOL SYSM_CheckRTCDate( RTCDate *pDate ); // 日付が正常かチェック
extern BOOL SYSM_CheckRTCTime( RTCTime *pTime ); // 時刻が正常かチェック
extern s64 SYSM_CalcRTCOffset( RTCDate *pNewDate, RTCTime *pNewTime ); // RTCオフセット計算とRTCへの日付時刻チェックを行う
extern u32 SYSM_GetDayNum( u32 year, u32 month ); // 指定された年・月の日数を取得する
extern BOOL SYSM_IsLeapYear100( u32 year ); // 指定された年がうるう年か調べる
// スリープモード
extern void SYSM_GoSleepMode( void ); // スリープモードへの遷移
// ペアレンタルコントロール問い合わせ
u32 SYSM_CalcPCTLInquiryCode( void ); // 問い合わせコード(10進8桁)算出
u32 SYSM_CalcPCTLMasterKey( void ); // マスターキー  算出※内部でRTC_GetDateを使用します。
#endif
// 状態チェック

View File

@ -39,6 +39,9 @@ extern u32 UTL_GetBacklightBrightness( u8 *pBrightness ); //
// タッチパネル
extern void UTL_CaribrateTP( const LCFGTWLTPCalibData *pCalib );
// スリープ
extern void UTL_GoSleepMode( void );
// RTC関係
extern BOOL UTL_CheckRTCDate( RTCDate *pDate ); // 日付が正常かチェック
extern BOOL UTL_CheckRTCTime( RTCTime *pTime ); // 時刻が正常かチェック