osLockByByte->osLockByte.

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_firmware@268 b871894f-2f95-9b40-918c-086798483c85
This commit is contained in:
nakasima 2009-02-09 09:23:02 +00:00
parent 6d5e6e251a
commit 8a92549793
7 changed files with 247 additions and 39 deletions

View File

@ -24,15 +24,15 @@ void _ISTDbgLib_Initialize(void);
void _ISTDbgLib_AllocateEmualtor(void);
void _ISTDbgLib_FreeEmulator(void);
s32 osLockByWord_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void));
s32 osUnlockByByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void));
s32 osTryLockByByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*crtlFuncp) (void));
s32 osLockWord_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void));
s32 osUnlockByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void));
s32 osTryLockByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*crtlFuncp) (void));
static s32 i_osDoLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
static s32 i_osDoLockByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
BOOL disableFiq);
static s32 i_osDoUnlockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
static s32 i_osDoUnlockByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
BOOL disableFIQ);
static s32 i_osDoTryLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
static s32 i_osDoTryLockByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
BOOL disableFIQ);
static void i_osAllocateCartridgeBus(void);
@ -189,7 +189,7 @@ void osInitLock(void)
i_osSyncWithOtherProc( OSi_SYNCTYPE_RECVER, (void*)HW_INIT_LOCK_BUF );
//lockp->lockFlag = 0;
//(void)osLockByByte(OS_MAINP_SYSTEM_LOCK_ID, lockp, NULL);
//(void)osLockByte(OS_MAINP_SYSTEM_LOCK_ID, lockp, NULL);
#else // SDK_ARM9
// ロックIDカウンタ用フラグ 初期化
@ -207,7 +207,7 @@ void osInitLock(void)
// LOCK
//======================================================================
/*---------------------------------------------------------------------------*
Name: i_osDoLockByByte
Name: i_osDoLockByte
Description: do spinlock. keep to try till success
@ -218,13 +218,13 @@ void osInitLock(void)
Returns: OS_LOCK_SUCCESS success to lock
*---------------------------------------------------------------------------*/
static s32 i_osDoLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
static s32 i_osDoLockByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
BOOL disableFiq)
{
s32 lastLockFlag;
while ((lastLockFlag =
i_osDoTryLockByByte(lockID, lockp, ctrlFuncp, disableFiq)) > OS_LOCK_SUCCESS)
i_osDoTryLockByte(lockID, lockp, ctrlFuncp, disableFiq)) > OS_LOCK_SUCCESS)
{
i_osWaitByLoop();
}
@ -233,7 +233,7 @@ static s32 i_osDoLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (voi
}
/*---------------------------------------------------------------------------*
Name: osLockByByte
Name: osLockByte
Description: do spinlock. keep to try till success.
@ -243,13 +243,13 @@ static s32 i_osDoLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (voi
Returns: OS_LOCK_SUCCESS success to lock
*---------------------------------------------------------------------------*/
s32 osLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
s32 osLockByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
{
return i_osDoLockByByte(lockID, lockp, ctrlFuncp, FALSE);
return i_osDoLockByte(lockID, lockp, ctrlFuncp, FALSE);
}
/*---------------------------------------------------------------------------*
Name: osLockByByte_IrqAndFiq
Name: osLockByte_IrqAndFiq
Description: do spinlock. keep to try till success.
disable irq and fiq
@ -260,9 +260,9 @@ s32 osLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
Returns: OS_LOCK_SUCCESS success to lock
*---------------------------------------------------------------------------*/
s32 osLockByByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
s32 osLockByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
{
return i_osDoLockByByte(lockID, lockp, ctrlFuncp, TRUE);
return i_osDoLockByte(lockID, lockp, ctrlFuncp, TRUE);
}
@ -270,7 +270,7 @@ s32 osLockByByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void
// UNLOCK
//======================================================================
/*---------------------------------------------------------------------------*
Name: i_osDoUnlockByByte
Name: i_osDoUnlockByte
Description: do unlock lock.
@ -282,7 +282,7 @@ s32 osLockByByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void
Returns: OS_UNLOCK_SUCCESS success
OS_UNLOCK_ERROR error of unlocking lock
*---------------------------------------------------------------------------*/
static s32 i_osDoUnlockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
static s32 i_osDoUnlockByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
BOOL disableFIQ)
{
OSIntrMode lastInterrupts;
@ -318,7 +318,7 @@ static s32 i_osDoUnlockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (v
}
/*---------------------------------------------------------------------------*
Name: osUnlockByByte
Name: osUnlockByte
Description: do unlock lock.
disable irq and fiq
@ -330,13 +330,13 @@ static s32 i_osDoUnlockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (v
Returns: OS_UNLOCK_SUCCESS success
OS_UNLOCK_ERROR error of unlocking lock
*---------------------------------------------------------------------------*/
s32 osUnlockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
s32 osUnlockByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
{
return i_osDoUnlockByByte(lockID, lockp, ctrlFuncp, FALSE);
return i_osDoUnlockByte(lockID, lockp, ctrlFuncp, FALSE);
}
/*---------------------------------------------------------------------------*
Name: osUnlockByByte_IrqAndFiq
Name: osUnlockByte_IrqAndFiq
Description: do unlock lock.
@ -347,9 +347,9 @@ s32 osUnlockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
Returns: OS_UNLOCK_SUCCESS success
OS_UNLOCK_ERROR error of unlocking lock
*---------------------------------------------------------------------------*/
s32 osUnlockByByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
s32 osUnlockByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
{
return i_osDoUnlockByByte(lockID, lockp, ctrlFuncp, TRUE);
return i_osDoUnlockByte(lockID, lockp, ctrlFuncp, TRUE);
}
@ -357,7 +357,7 @@ s32 osUnlockByByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (vo
// TRY LOCK
//======================================================================
/*---------------------------------------------------------------------------*
Name: i_osDoTryLockByByte
Name: i_osDoTryLockByte
Description: try to lock spinlock only once.
@ -369,7 +369,7 @@ s32 osUnlockByByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (vo
Returns: >0 value previous locked id
OS_LOCK_SUCCESS success to lock
*---------------------------------------------------------------------------*/
static s32 i_osDoTryLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
static s32 i_osDoTryLockByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
BOOL disableFIQ)
{
s32 lastLockFlag;
@ -405,7 +405,7 @@ static s32 i_osDoTryLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (
}
/*---------------------------------------------------------------------------*
Name: osTryLockByByte
Name: osTryLockByte
Description: try to lock spinlock only once.
@ -416,13 +416,13 @@ static s32 i_osDoTryLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (
Returns: >0 value previous locked id
OS_LOCK_SUCCESS success to lock
*---------------------------------------------------------------------------*/
s32 osTryLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
s32 osTryLockByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
{
return i_osDoTryLockByByte(lockID, lockp, ctrlFuncp, FALSE);
return i_osDoTryLockByte(lockID, lockp, ctrlFuncp, FALSE);
}
/*---------------------------------------------------------------------------*
Name: osTryLockByByte_IrqAndFiq
Name: osTryLockByte_IrqAndFiq
Description: try to lock spinlock only once.
@ -433,9 +433,9 @@ s32 osTryLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
Returns: >0 value previous locked id
OS_LOCK_SUCCESS success to lock
*---------------------------------------------------------------------------*/
s32 osTryLockByByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
s32 osTryLockByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
{
return i_osDoTryLockByByte(lockID, lockp, ctrlFuncp, TRUE);
return i_osDoTryLockByte(lockID, lockp, ctrlFuncp, TRUE);
}
@ -455,7 +455,7 @@ s32 osLockCard(u8 lockID)
{
OSi_ASSERT_ID(lockID);
return osLockByByte(lockID, (OSLockByte *)HW_CARD_LOCK_BUF, i_osAllocateCardBus);
return osLockByte(lockID, (OSLockByte *)HW_CARD_LOCK_BUF, i_osAllocateCardBus);
}
/*---------------------------------------------------------------------------*
@ -472,7 +472,7 @@ s32 osUnlockCard(u8 lockID)
{
OSi_ASSERT_ID(lockID);
return osUnlockByByte(lockID, (OSLockByte *)HW_CARD_LOCK_BUF, i_osFreeCardBus);
return osUnlockByte(lockID, (OSLockByte *)HW_CARD_LOCK_BUF, i_osFreeCardBus);
}
/*---------------------------------------------------------------------------*
@ -487,7 +487,7 @@ s32 osUnlockCard(u8 lockID)
*---------------------------------------------------------------------------*/
s32 osTryLockCard(u8 lockID)
{
return osTryLockByByte(lockID, (OSLockByte *)HW_CARD_LOCK_BUF, i_osAllocateCardBus);
return osTryLockByte(lockID, (OSLockByte *)HW_CARD_LOCK_BUF, i_osAllocateCardBus);
}
//----------------
@ -495,7 +495,7 @@ static void i_osAllocateCardBus(void)
{
#ifdef SDK_ARM11
#ifdef SDK_TWL
// preset reset flag with status of disable interrupts in i_osDoTryLockByByte
// preset reset flag with status of disable interrupts in i_osDoTryLockByte
if ( ((reg_MI_MC & REG_MI_MC_SL1_MODE_MASK) >> REG_MI_MC_SL1_MODE_SHIFT) == 0x2 )
{
reg_MI_MCCNT1 |= REG_MI_MCCNT1_RESB_MASK;

View File

@ -0,0 +1,50 @@
#! make -f
#----------------------------------------------------------------------------
# Project: CtrBrom - tests - thread
# File: Makefile
#
# Copyright 2008 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$
#----------------------------------------------------------------------------
#BROM_DEF_LINK_SCATLD = TRUE
BROM_TARGET = APP
SUBDIRS =
#----------------------------------------------------------------------------
TARGET_BIN = thread11.dasm
SRCS = \
main.c \
#LCFILE = # using default
include $(CTRBROM_ROOT)/build/buildtools/commondefs
SRCDIR = . $(ROOT)/bootrom/build/bootrom/thread/ARM11 \
INSTALL_DIR = ..
INSTALL_TARGETS = $(BINDIR)/$(TARGET_BIN_BASENAME).axf
#----------------------------------------------------------------------------
do-build: $(TARGETS)
include $(CTRBROM_ROOT)/build/buildtools/modulerules
#===== End of Makefile =====

View File

@ -0,0 +1,38 @@
/*---------------------------------------------------------------------------*
Project: TwlBrom - thread
File: main.c
Copyright 2008 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 <brom.h>
void BromMain( void )
{
osInitException();
osInitBROM();
osPrintf( "ARM11: start\n" );
osInitThread();
while (1)
{
u32 pmon = osGetPerfMonitor(OS_MONITOR_1);
OSTick tick = osGetTick();
osSleep(1000);
tick = osGetTick() - tick;
pmon = osGetPerfMonitor(OS_MONITOR_1) - pmon;
osTPrintf( "sleep tick = %llu msec\n", OS_TICK_TO_MSEC(tick) );
osTPrintf( "sleep pmon = %llu msec\n", OS_PMON_TO_MSEC(pmon) );
}
}

View File

@ -0,0 +1,52 @@
#! make -f
#----------------------------------------------------------------------------
# Project: CtrBrom - tests - thread
# File: Makefile
#
# Copyright 2008 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$
#----------------------------------------------------------------------------
#BROM_DEF_LINK_SCATLD = TRUE
BROM_TARGET = APP
BROM_PROC = ARM9
SUBDIRS =
#----------------------------------------------------------------------------
TARGET_BIN = thread9.dasm
SRCS = \
main.c \
#LCFILE = # using default
include $(CTRBROM_ROOT)/build/buildtools/commondefs
SRCDIR = . $(ROOT)/bootrom/build/bootrom/thread/ARM9 \
INSTALL_DIR = ..
INSTALL_TARGETS = $(BINDIR)/$(TARGET_BIN_BASENAME).axf
#----------------------------------------------------------------------------
do-build: $(TARGETS)
include $(CTRBROM_ROOT)/build/buildtools/modulerules
#===== End of Makefile =====

View File

@ -0,0 +1,35 @@
/*---------------------------------------------------------------------------*
Project: TwlBrom - thread
File: main.c
Copyright 2008 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 <brom.h>
void BromSpMain( void )
{
osInitException();
osInitBROM();
osPrintf( "ARM9: start\n" );
osInitThread();
while (1)
{
OSTick tick = osGetTick();
osSleep(1000);
tick = osGetTick() - tick;
osTPrintf( "sleep tick = %llu msec\n", OS_TICK_TO_MSEC(tick) );
}
}

View File

@ -0,0 +1,33 @@
#! make -f
#----------------------------------------------------------------------------
# Project: CtrBrom - tests
# File: Makefile
#
# Copyright 2009 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 $(CTRBROM_ROOT)/build/buildtools/commondefs
#----------------------------------------------------------------------------
SUBDIRS = \
ARM11 \
ARM9 \
#----------------------------------------------------------------------------
include $(CTRBROM_ROOT)/build/buildtools/modulerules
#===== End of Makefile =====

View File

@ -98,7 +98,7 @@ void osInitLock(void);
//・戻り値:
// OS_LOCK_SUCCESS ロック成功
//----------------------------------------------------------------------
s32 osLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void));
s32 osLockByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void));
s32 osLockCard(u8 lockID);
//----------------------------------------------------------------------
@ -116,7 +116,7 @@ s32 osLockCard(u8 lockID);
// OS_UNLOCK_SUCCESS ロック解除成功
// OS_UNLOCK_ERROR ロック解除エラー
//----------------------------------------------------------------------
s32 osUnlockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void));
s32 osUnlockByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void));
s32 osUnlockCard(u8 lockID);
//----------------------------------------------------------------------
@ -137,7 +137,7 @@ s32 osUnlockCard(u8 lockID);
// 正 ロック中直前に格納されていたID
// OS_LOCK_SUCCESS ロック成功
//----------------------------------------------------------------------
s32 osTryLockByByte(u8 lockID, OSLockByte *lockp, void (*crtlFuncp) (void));
s32 osTryLockByte(u8 lockID, OSLockByte *lockp, void (*crtlFuncp) (void));
s32 osTryLockCard(u8 lockID);
//----------------------------------------------------------------------