mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
・TwlSDKリビジョン2547でビルドが通るよう修正。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@237 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
20d3856cb6
commit
7bddb5032a
4
Makefile
4
Makefile
@ -22,11 +22,13 @@ include $(TWLIPL_ROOT)/build/buildtools/commondefs
|
||||
#----------------------------------------------------------------------------
|
||||
export TWL_ARCHGEN = ALL
|
||||
|
||||
SUBDIRS = $(TWLSDK_ROOT)/add-ins/NitroWireless \
|
||||
SUBDIRS = \
|
||||
$(TWLSDK_ROOT)/add-ins/NitroWireless \
|
||||
$(TWLSDK_ROOT)/build/libraries/ese \
|
||||
$(TWLSDK_ROOT)/build/libraries/nam \
|
||||
$(TWLSDK_ROOT)/build/libraries/reboot \
|
||||
$(TWLSDK_ROOT)/build/libraries/aes \
|
||||
$(TWLSDK_ROOT)/build/libraries/spi \
|
||||
$(TWLSDK_ROOT)/build/components/racoon.TWL \
|
||||
$(TWLSYSTEM_ROOT) \
|
||||
build
|
||||
|
||||
@ -28,6 +28,8 @@ SUBDIRS = \
|
||||
$(TWLSDK_ROOT)/build/libraries/nam \
|
||||
$(TWLSDK_ROOT)/build/libraries/reboot \
|
||||
$(TWLSDK_ROOT)/build/libraries/aes \
|
||||
$(TWLSDK_ROOT)/build/libraries/rtc \
|
||||
$(TWLSDK_ROOT)/build/libraries/spi \
|
||||
$(TWLSDK_ROOT)/build/components/racoon.TWL \
|
||||
$(TWLSYSTEM_ROOT) \
|
||||
build/libraries_sysmenu\
|
||||
|
||||
@ -40,13 +40,24 @@ CRT0_O = crt0.LTD.TWL.o
|
||||
include $(TWLIPL_ROOT)/build/buildtools/commondefs
|
||||
include $(TWLSDK_ROOT)/build/libraries/reboot/commondefs.reboot
|
||||
|
||||
ifdef TWLSDK_NOCRYPTO
|
||||
CCFLAGS += -DSDK_NOCRYPTO
|
||||
endif
|
||||
|
||||
ifndef TWLSDK_NOCRYPTO
|
||||
MAKELCF_FLAGS += -DUSE_CRYPTO_LIBS='libaes_sp.TWL$(CODEGEN).a'
|
||||
endif
|
||||
|
||||
#MACRO_FLAGS += -DSDK_ARM7COMP_LTD
|
||||
|
||||
MAKELCF_FLAGS += -DADDRESS_LTDWRAM='0x037c0000' \
|
||||
-DADDRESS_FLXMAIN='0x02280000' \
|
||||
-DADDRESS_BOOTCORE='0x0380f000' \
|
||||
-DCRT0_O='$(CRT0_O)'
|
||||
MAKELCF_FLAGS += -DISDBG_LIBS='$(ISDBG_LIBS)'
|
||||
|
||||
MAKELCF_FLAGS += -DISDBG_LIBS_TWL='$(if $(ISDBG_LIBS_TWL),$(ISDBG_LIBS_TWL),libstubsistd_sp$(TWL_LIBSUFFIX).a)' \
|
||||
-DISDBG_LIBS_NITRO='libstubsisd_sp$(TWL_LIBSUFFIX).a'
|
||||
|
||||
|
||||
#--------------------------------
|
||||
# install target
|
||||
@ -60,6 +71,7 @@ INSTALL_TARGETS = $(BINDIR)/$(TARGET_NAME).tef \
|
||||
INSTALL_DIR = $(TWL_INSTALL_COMPONENTSDIR)/$(TARGET_NAME)/$(TWL_BUILDTYPE)
|
||||
|
||||
LINCLUDES = $(ROOT)/build/libraries/spi/ARM7/include
|
||||
LLIBRARIES += libwl_sp.TWL.LTD.a
|
||||
LDEPENDS_NEF = $(TWL_LIBS) $(LLIBRARIES)
|
||||
|
||||
do-build: $(TARGETS)
|
||||
|
||||
@ -53,24 +53,76 @@ Autoload WRAM
|
||||
libcdc_sp.TWL$(CODEGEN).a \
|
||||
libtpex_sp.TWL$(CODEGEN).a \
|
||||
libmicex_sp.TWL$(CODEGEN).a \
|
||||
libnvram_sp.TWL$(CODEGEN).a \
|
||||
librtc_sp.TWL$(CODEGEN).a \
|
||||
libwvr_sp.TWL$(CODEGEN).a \
|
||||
libaes_sp.TWL$(CODEGEN).a \
|
||||
libboot_sp.TWL$(CODEGEN).a \
|
||||
libreboot_sp.TWL$(CODEGEN).a \
|
||||
libcardboot_sp.TWL$(CODEGEN).a \
|
||||
$(USE_CRYPTO_LIBS) \
|
||||
$(ISDBG_LIBS)
|
||||
|
||||
Library libsdio_hcd_twl.TWL$(CODEGEN).a \
|
||||
libsdio_busdriver.TWL$(CODEGEN).a \
|
||||
libsdio_lib.TWL$(CODEGEN).a \
|
||||
libARM7athdrv.TWL$(CODEGEN).a
|
||||
|
||||
Object * (.etable)
|
||||
Object * (.wram)
|
||||
Object * (.ltdwram)
|
||||
Object $(OBJDIR)/main.o
|
||||
|
||||
#####
|
||||
# Sub-routines in WL library , that should be on WRAM.
|
||||
# in TaskMan.o
|
||||
Object OBJECT( MainTaskRoutine , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( AddTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( DeleteTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( LowestIdleTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( ExecuteMessage , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
# in BufMan.o
|
||||
Object OBJECT( NewHeapBuf , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( DeleteHeapBuf , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( AllocateHeapBuf , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( ReleaseHeapBuf , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( MoveHeapBuf , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( AddHeapBuf , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( GetHeapBufNextAdrs , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
# in WlCmdIf.o
|
||||
Object OBJECT( RequestCmdTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( SendMessageToWmDirect , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
# in WlNic.o
|
||||
Object OBJECT( WStart , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WStop , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WSetStaState , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
# in WlIntr.o
|
||||
Object OBJECT( WlIntr , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WlIntrPreTbtt , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WlIntrTbtt , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WlIntrActEnd , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
# Object OBJECT( WlIntrAckCntOvf , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WlIntrCntOvf , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WlIntrTxErr , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WlIntrRxCntup , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WlIntrTxEnd , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WlIntrRxEnd , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WlIntrMpEnd , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WlIntrStartTx , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WlIntrStartRx , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( SetParentTbttTxq , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( MacBugTxMp , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( AdjustRingPointer , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( CheckKeyTxEnd , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
# in WlIntrTask.o
|
||||
Object OBJECT( WlIntrTxBeaconTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WlIntrTxEndTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WlIntrRxEndTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WlIntrMpEndTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( SetParentTbttTxqTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( TakeoutRxFrame , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
# in TxCtrl.o
|
||||
Object OBJECT( InitTxCtrl , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
# in RxCtrl.o
|
||||
Object OBJECT( InitRxCtrl , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
# in WaitLoop.o
|
||||
Object OBJECT( WaitLoop_Rxpe , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WaitLoop_Waitus , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WaitLoop_ClrAid , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WaitLoop_BbpAccess , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
Object OBJECT( WaitLoop_RfAccess , libwl_sp.TWL$(CODEGEN).a ) (.text)
|
||||
|
||||
}
|
||||
|
||||
#--------
|
||||
@ -79,6 +131,19 @@ Ltdautoload LTDMAIN
|
||||
After $(TARGET_NAME)
|
||||
|
||||
Object * (.ltdmain)
|
||||
Library libfatfs_sp.TWL$(CODEGEN).a
|
||||
Library librompatch_sp.TWL$(CODEGEN).a
|
||||
Library libnvram_sp.TWL$(CODEGEN).a
|
||||
Library librtc_sp.TWL$(CODEGEN).a
|
||||
Library librompatch_sp.TWL$(CODEGEN).a \
|
||||
libwm_sp.TWL$(CODEGEN).a \
|
||||
libnwm_sp.TWL$(CODEGEN).a \
|
||||
libwvr_sp.TWL$(CODEGEN).a \
|
||||
libwl_sp.TWL$(CODEGEN).a \
|
||||
libboot_sp.TWL$(CODEGEN).a \
|
||||
libreboot_sp.TWL$(CODEGEN).a \
|
||||
libcardboot_sp.TWL$(CODEGEN).a \
|
||||
|
||||
Library libfatfs_sp.TWL$(CODEGEN).a \
|
||||
$(USE_CRYPTO_LIBS)
|
||||
Library $(ISDBG_LIBS_TWL)
|
||||
Library $(ISDBG_LIBS_NITRO)
|
||||
}
|
||||
|
||||
@ -39,10 +39,13 @@
|
||||
|
||||
#include <sysmenu/card/common/blowfish.h>
|
||||
#include <sysmenu/card/common/Card.h>
|
||||
#include "nvram_sp.h"
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
定数定義
|
||||
*---------------------------------------------------------------------------*/
|
||||
/* [TODO] Work around. Should be defined in wm_sp.h */
|
||||
#define WM_WL_HEAP_SIZE 0x2100
|
||||
|
||||
/* Priorities of each threads */
|
||||
#define THREAD_PRIO_SPI 2
|
||||
@ -52,6 +55,16 @@
|
||||
#define THREAD_PRIO_FS 15
|
||||
/* OS_THREAD_LAUNCHER_PRIORITY 16 */
|
||||
|
||||
/* [TODO] 以下は New WM 側に移行するほうが好ましい? */
|
||||
#define NWM_DMANO 3
|
||||
#define THREAD_PRIO_NWM_COMMMAND 6
|
||||
#define THREAD_PRIO_NWM_EVENT 4
|
||||
#define THREAD_PRIO_NWM_SDIO 5
|
||||
#define THREAD_PRIO_NWM_WPA 7
|
||||
|
||||
// ROM 内登録エリアの拡張言語コード
|
||||
#define ROMHEADER_FOR_CHINA_BIT 0x80
|
||||
#define ROMHEADER_FOR_KOREA_BIT 0x40
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
内部関数定義
|
||||
@ -60,8 +73,10 @@ static void ReadResetParameter( void );
|
||||
static void PrintDebugInfo(void);
|
||||
static OSHeapHandle InitializeAllocateSystem(void);
|
||||
static void InitializeFatfs(void);
|
||||
static void InitializeNwm(void);
|
||||
static void InitializeCdc(void);
|
||||
static void DummyThread(void* arg);
|
||||
static void ReadUserInfo(void);
|
||||
static void VBlankIntr(void);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
@ -89,11 +104,14 @@ TwlSpMain(void)
|
||||
// OS 初期化
|
||||
OS_Init();
|
||||
PrintDebugInfo();
|
||||
|
||||
|
||||
// NVRAM からユーザー情報読み出し
|
||||
ReadUserInfo();
|
||||
|
||||
// Cold/Hotスタート判定
|
||||
ReadResetParameter();
|
||||
SYSMi_GetWork()->isARM9Start = TRUE; // ※HW_RED_RESERVEDはNANDファームでクリアしておいて欲しい
|
||||
|
||||
ReadResetParameter();
|
||||
SYSMi_GetWork()->isARM9Start = TRUE; // ※HW_RED_RESERVEDはNANDファームでクリアしておいて欲しい
|
||||
|
||||
// ヒープ領域設定
|
||||
{
|
||||
void *wram = OS_GetWramSubPrivArenaHi();
|
||||
@ -122,7 +140,10 @@ TwlSpMain(void)
|
||||
if (OS_IsRunOnTwl() == TRUE)
|
||||
{
|
||||
InitializeFatfs(); // FATFS 初期化
|
||||
InitializeNwm(); // NWM 初期化
|
||||
#ifndef SDK_NOCRYPTO
|
||||
AES_Init(); // AES 初期化
|
||||
#endif
|
||||
}
|
||||
|
||||
if (OSi_IsCodecTwlMode() == TRUE)
|
||||
@ -142,6 +163,9 @@ TwlSpMain(void)
|
||||
// RTC 初期化
|
||||
RTC_Init(THREAD_PRIO_RTC);
|
||||
|
||||
// 旧無線初期化
|
||||
WVR_Begin(heapHandle);
|
||||
|
||||
// SPI 初期化
|
||||
SPI_Init(THREAD_PRIO_SPI);
|
||||
|
||||
@ -244,6 +268,41 @@ InitializeFatfs(void)
|
||||
}
|
||||
#include <twl/ltdwram_end.h>
|
||||
|
||||
#include <twl/ltdwram_begin.h>
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: InitializeNwm
|
||||
Description: NWMライブラリを初期化する。
|
||||
Arguments: None.
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
static void
|
||||
InitializeNwm(void)
|
||||
{
|
||||
NwmspInit nwmInit;
|
||||
|
||||
OSHeapHandle heapHandle;
|
||||
void* Lo = (void*)OS_GetSubPrivArenaLo();
|
||||
void* Hi = (void*)OS_GetSubPrivArenaHi();
|
||||
heapHandle = OS_CreateHeap(OS_ARENA_MAIN_SUBPRIV, Lo, Hi);
|
||||
|
||||
/* [TODO] 確保したヒープ領域が新無線一式が必要としているメモリ量以上かのチェックが必要 */
|
||||
|
||||
nwmInit.dmaNo = NWM_DMANO;
|
||||
nwmInit.cmdPrio = THREAD_PRIO_NWM_COMMMAND;
|
||||
nwmInit.evtPrio = THREAD_PRIO_NWM_EVENT;
|
||||
nwmInit.sdioPrio = THREAD_PRIO_NWM_SDIO;
|
||||
nwmInit.drvHeap.id = OS_ARENA_MAIN_SUBPRIV; /* [TODO] */
|
||||
nwmInit.drvHeap.handle = heapHandle;
|
||||
#ifdef WPA_BUILT_IN /* WPA が組み込まれる場合、以下のメンバが追加される */
|
||||
nwmInit.wpaPrio = THREAD_PRIO_NWM_WPA;
|
||||
nwmInit.wpaHeap.id = OS_ARENA_MAIN_SUBPRIV; /* [TODO] */
|
||||
nwmInit.wpaHeap.handle = heapHandle;
|
||||
#endif
|
||||
NWMSP_Init(&nwmInit);
|
||||
|
||||
}
|
||||
#include <twl/ltdwram_end.h>
|
||||
|
||||
#include <twl/ltdwram_begin.h>
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: InitializeCdc
|
||||
@ -265,6 +324,7 @@ InitializeCdc(void)
|
||||
|
||||
// CODEC 初期化
|
||||
CDC_Init();
|
||||
CDC_InitMic();
|
||||
// CDCi_DumpRegisters();
|
||||
|
||||
// ダミースレッド破棄
|
||||
@ -441,9 +501,69 @@ InitializeAllocateSystem(void)
|
||||
// カレントヒープに設定
|
||||
(void)OS_SetCurrentHeap(OS_ARENA_WRAM_SUBPRIV, hh);
|
||||
|
||||
// ヒープサイズの確認
|
||||
{
|
||||
u32 heapSize;
|
||||
|
||||
heapSize = (u32)OS_CheckHeap(OS_ARENA_WRAM_SUBPRIV, hh);
|
||||
if (WM_WL_HEAP_SIZE > heapSize)
|
||||
{
|
||||
OS_Panic("Insufficient heap size. (0x%x < 0x%x)\n", heapSize, WM_WL_HEAP_SIZE);
|
||||
}
|
||||
OS_TPrintf("ARM7: WRAM heap size is %d\n", heapSize);
|
||||
}
|
||||
|
||||
return hh;
|
||||
}
|
||||
|
||||
#ifdef WM_PRECALC_ALLOWEDCHANNEL
|
||||
extern u16 WMSP_GetAllowedChannel(u16 bitField);
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: ReadUserInfo
|
||||
|
||||
Description: NVRAMからユーザー情報を読み出し、共有領域に展開する。
|
||||
ミラーリングされているバッファが両方壊れている場合は、
|
||||
共有領域のユーザー情報格納場所をクリアする。
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
static void ReadUserInfo(void)
|
||||
{
|
||||
u8 *p;
|
||||
|
||||
// 無線MACアドレスをユーザー情報の後ろに展開
|
||||
{
|
||||
u8 wMac[6];
|
||||
|
||||
// NVRAMからMACアドレスを読み出し
|
||||
NVRAM_ReadDataBytes(NVRAM_CONFIG_MACADDRESS_ADDRESS, 6, wMac);
|
||||
// 展開先アドレスを計算
|
||||
p = (u8 *)((u32)p + ((sizeof(NVRAMConfig) + 3) & ~0x00000003));
|
||||
// 共有領域に展開
|
||||
MI_CpuCopy8(wMac, p, 6);
|
||||
}
|
||||
|
||||
#ifdef WM_PRECALC_ALLOWEDCHANNEL
|
||||
// 使用可能チャンネルから使用許可チャンネルを計算
|
||||
{
|
||||
u16 enableChannel;
|
||||
u16 allowedChannel;
|
||||
|
||||
// 使用可能チャンネルを読み出し
|
||||
NVRAM_ReadDataBytes(NVRAM_CONFIG_ENABLECHANNEL_ADDRESS, 2, (u8 *)(&enableChannel));
|
||||
// 使用許可チャンネルを計算
|
||||
allowedChannel = WMSP_GetAllowedChannel((u16)(enableChannel >> 1));
|
||||
// 展開先アドレスを計算(MACアドレスの後ろの2バイト)
|
||||
p = (u8 *)((u32)p + 6);
|
||||
// 共有領域に展開
|
||||
*((u16 *)p) = allowedChannel;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: VBlankIntr
|
||||
|
||||
@ -409,7 +409,7 @@ TitleProperty *LauncherMain( TitleProperty *pTitleList )
|
||||
|
||||
if( (pad.trg & PAD_BUTTON_START) || up_bl_trg ) {
|
||||
brightness = TSD_GetBacklightBrightness() + 1;
|
||||
if( brightness > BACKLIGHT_LEVEL_MAX ) {
|
||||
if( brightness > TWL_BACKLIGHT_LEVEL_MAX ) {
|
||||
brightness = 0;
|
||||
}
|
||||
SYSM_SetBackLightBrightness( (u8)brightness );
|
||||
@ -417,7 +417,7 @@ TitleProperty *LauncherMain( TitleProperty *pTitleList )
|
||||
if( ( pad.trg & PAD_BUTTON_SELECT) || dw_bl_trg ) {
|
||||
brightness = TSD_GetBacklightBrightness() - 1;
|
||||
if( brightness < 0 ) {
|
||||
brightness = BACKLIGHT_LEVEL_MAX;
|
||||
brightness = TWL_BACKLIGHT_LEVEL_MAX;
|
||||
}
|
||||
SYSM_SetBackLightBrightness( (u8)brightness );
|
||||
}
|
||||
|
||||
@ -38,6 +38,7 @@ extern "C" {
|
||||
#define TWL_COMMENT_LENGTH NTR_COMMENT_LENGTH // コメント長
|
||||
#define TWL_COMMENT_BUFFERSIZE ( ( TWL_COMMENT_LENGTH + 1 ) * 2 ) // コメントバッファサイズ
|
||||
#define TWL_FAVORITE_COLOR_MAX_NUM NTR_FAVORITE_COLOR_MAX_NUM // 好きな色の最大数
|
||||
#define TWL_BACKLIGHT_LEVEL_MAX 22 // TWLバックライト最大輝度レベル
|
||||
#define TSD_TEMP_BUFFER_SIZE ( sizeof(TSDStore) * 2 ) // TSD_ReadTWLSettingsで必要なTempBufferサイズ
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user