mirror of
https://github.com/rvtr/ctr_firmware.git
synced 2025-10-31 07:51:08 -04:00
スピンロックを8バイト単位から2バイト単位へ変更。
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_firmware@166 b871894f-2f95-9b40-918c-086798483c85
This commit is contained in:
parent
83bec6addb
commit
ec8097d404
@ -24,15 +24,15 @@ void _ISTDbgLib_Initialize(void);
|
|||||||
void _ISTDbgLib_AllocateEmualtor(void);
|
void _ISTDbgLib_AllocateEmualtor(void);
|
||||||
void _ISTDbgLib_FreeEmulator(void);
|
void _ISTDbgLib_FreeEmulator(void);
|
||||||
|
|
||||||
s32 osLockByWord_IrqAndFiq(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void));
|
s32 osLockByWord_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void));
|
||||||
s32 osUnlockByWord_IrqAndFiq(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void));
|
s32 osUnlockByByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void));
|
||||||
s32 osTryLockByWord_IrqAndFiq(u16 lockID, OSLockWord *lockp, void (*crtlFuncp) (void));
|
s32 osTryLockByByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*crtlFuncp) (void));
|
||||||
|
|
||||||
static s32 i_osDoLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void),
|
static s32 i_osDoLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
|
||||||
BOOL disableFiq);
|
BOOL disableFiq);
|
||||||
static s32 i_osDoUnlockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void),
|
static s32 i_osDoUnlockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
|
||||||
BOOL disableFIQ);
|
BOOL disableFIQ);
|
||||||
static s32 i_osDoTryLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void),
|
static s32 i_osDoTryLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
|
||||||
BOOL disableFIQ);
|
BOOL disableFIQ);
|
||||||
|
|
||||||
static void i_osAllocateCartridgeBus(void);
|
static void i_osAllocateCartridgeBus(void);
|
||||||
@ -164,7 +164,7 @@ void osInitLock(void)
|
|||||||
{
|
{
|
||||||
static BOOL isInitialized = FALSE;
|
static BOOL isInitialized = FALSE;
|
||||||
#ifdef SDK_NITRO
|
#ifdef SDK_NITRO
|
||||||
OSLockWord *lockp;
|
OSLockByte *lockp;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (isInitialized)
|
if (isInitialized)
|
||||||
@ -189,7 +189,7 @@ void osInitLock(void)
|
|||||||
i_osSyncWithOtherProc( OSi_SYNCTYPE_RECVER, (void*)HW_INIT_LOCK_BUF );
|
i_osSyncWithOtherProc( OSi_SYNCTYPE_RECVER, (void*)HW_INIT_LOCK_BUF );
|
||||||
|
|
||||||
//lockp->lockFlag = 0;
|
//lockp->lockFlag = 0;
|
||||||
//(void)osLockByWord(OS_MAINP_SYSTEM_LOCK_ID, lockp, NULL);
|
//(void)osLockByByte(OS_MAINP_SYSTEM_LOCK_ID, lockp, NULL);
|
||||||
|
|
||||||
#else // SDK_ARM9
|
#else // SDK_ARM9
|
||||||
// ロックIDカウンタ用フラグ 初期化
|
// ロックIDカウンタ用フラグ 初期化
|
||||||
@ -207,7 +207,7 @@ void osInitLock(void)
|
|||||||
// LOCK
|
// LOCK
|
||||||
//======================================================================
|
//======================================================================
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: i_osDoLockByWord
|
Name: i_osDoLockByByte
|
||||||
|
|
||||||
Description: do spinlock. keep to try till success
|
Description: do spinlock. keep to try till success
|
||||||
|
|
||||||
@ -218,13 +218,13 @@ void osInitLock(void)
|
|||||||
|
|
||||||
Returns: OS_LOCK_SUCCESS success to lock
|
Returns: OS_LOCK_SUCCESS success to lock
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
static s32 i_osDoLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void),
|
static s32 i_osDoLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
|
||||||
BOOL disableFiq)
|
BOOL disableFiq)
|
||||||
{
|
{
|
||||||
s32 lastLockFlag;
|
s32 lastLockFlag;
|
||||||
|
|
||||||
while ((lastLockFlag =
|
while ((lastLockFlag =
|
||||||
i_osDoTryLockByWord(lockID, lockp, ctrlFuncp, disableFiq)) > OS_LOCK_SUCCESS)
|
i_osDoTryLockByByte(lockID, lockp, ctrlFuncp, disableFiq)) > OS_LOCK_SUCCESS)
|
||||||
{
|
{
|
||||||
i_osWaitByLoop();
|
i_osWaitByLoop();
|
||||||
}
|
}
|
||||||
@ -233,7 +233,7 @@ static s32 i_osDoLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (vo
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: osLockByWord
|
Name: osLockByByte
|
||||||
|
|
||||||
Description: do spinlock. keep to try till success.
|
Description: do spinlock. keep to try till success.
|
||||||
|
|
||||||
@ -243,13 +243,13 @@ static s32 i_osDoLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (vo
|
|||||||
|
|
||||||
Returns: OS_LOCK_SUCCESS success to lock
|
Returns: OS_LOCK_SUCCESS success to lock
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
s32 osLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void))
|
s32 osLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
|
||||||
{
|
{
|
||||||
return i_osDoLockByWord(lockID, lockp, ctrlFuncp, FALSE);
|
return i_osDoLockByByte(lockID, lockp, ctrlFuncp, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: osLockByWord_IrqAndFiq
|
Name: osLockByByte_IrqAndFiq
|
||||||
|
|
||||||
Description: do spinlock. keep to try till success.
|
Description: do spinlock. keep to try till success.
|
||||||
disable irq and fiq
|
disable irq and fiq
|
||||||
@ -260,9 +260,9 @@ s32 osLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void))
|
|||||||
|
|
||||||
Returns: OS_LOCK_SUCCESS success to lock
|
Returns: OS_LOCK_SUCCESS success to lock
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
s32 osLockByWord_IrqAndFiq(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void))
|
s32 osLockByByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
|
||||||
{
|
{
|
||||||
return i_osDoLockByWord(lockID, lockp, ctrlFuncp, TRUE);
|
return i_osDoLockByByte(lockID, lockp, ctrlFuncp, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -270,7 +270,7 @@ s32 osLockByWord_IrqAndFiq(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (voi
|
|||||||
// UNLOCK
|
// UNLOCK
|
||||||
//======================================================================
|
//======================================================================
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: i_osDoUnlockByWord
|
Name: i_osDoUnlockByByte
|
||||||
|
|
||||||
Description: do unlock lock.
|
Description: do unlock lock.
|
||||||
|
|
||||||
@ -282,7 +282,7 @@ s32 osLockByWord_IrqAndFiq(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (voi
|
|||||||
Returns: OS_UNLOCK_SUCCESS success
|
Returns: OS_UNLOCK_SUCCESS success
|
||||||
OS_UNLOCK_ERROR error of unlocking lock
|
OS_UNLOCK_ERROR error of unlocking lock
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
static s32 i_osDoUnlockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void),
|
static s32 i_osDoUnlockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
|
||||||
BOOL disableFIQ)
|
BOOL disableFIQ)
|
||||||
{
|
{
|
||||||
OSIntrMode lastInterrupts;
|
OSIntrMode lastInterrupts;
|
||||||
@ -318,7 +318,7 @@ static s32 i_osDoUnlockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: osUnlockByWord
|
Name: osUnlockByByte
|
||||||
|
|
||||||
Description: do unlock lock.
|
Description: do unlock lock.
|
||||||
disable irq and fiq
|
disable irq and fiq
|
||||||
@ -330,19 +330,13 @@ static s32 i_osDoUnlockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (
|
|||||||
Returns: OS_UNLOCK_SUCCESS success
|
Returns: OS_UNLOCK_SUCCESS success
|
||||||
OS_UNLOCK_ERROR error of unlocking lock
|
OS_UNLOCK_ERROR error of unlocking lock
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
s32 osUnlockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void))
|
s32 osUnlockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
|
||||||
{
|
{
|
||||||
return i_osDoUnlockByWord(lockID, lockp, ctrlFuncp, FALSE);
|
return i_osDoUnlockByByte(lockID, lockp, ctrlFuncp, FALSE);
|
||||||
}
|
|
||||||
|
|
||||||
//---- for compatibility to old name ('UnLock' <-> 'Unlock')
|
|
||||||
s32 osUnLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void))
|
|
||||||
{
|
|
||||||
return i_osDoUnlockByWord(lockID, lockp, ctrlFuncp, FALSE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: osUnlockByWord_IrqAndFiq
|
Name: osUnlockByByte_IrqAndFiq
|
||||||
|
|
||||||
Description: do unlock lock.
|
Description: do unlock lock.
|
||||||
|
|
||||||
@ -353,9 +347,9 @@ s32 osUnLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void))
|
|||||||
Returns: OS_UNLOCK_SUCCESS success
|
Returns: OS_UNLOCK_SUCCESS success
|
||||||
OS_UNLOCK_ERROR error of unlocking lock
|
OS_UNLOCK_ERROR error of unlocking lock
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
s32 osUnlockByWord_IrqAndFiq(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void))
|
s32 osUnlockByByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
|
||||||
{
|
{
|
||||||
return i_osDoUnlockByWord(lockID, lockp, ctrlFuncp, TRUE);
|
return i_osDoUnlockByByte(lockID, lockp, ctrlFuncp, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -363,7 +357,7 @@ s32 osUnlockByWord_IrqAndFiq(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (v
|
|||||||
// TRY LOCK
|
// TRY LOCK
|
||||||
//======================================================================
|
//======================================================================
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: i_osDoTryLockByWord
|
Name: i_osDoTryLockByByte
|
||||||
|
|
||||||
Description: try to lock spinlock only once.
|
Description: try to lock spinlock only once.
|
||||||
|
|
||||||
@ -375,7 +369,7 @@ s32 osUnlockByWord_IrqAndFiq(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (v
|
|||||||
Returns: >0 value previous locked id
|
Returns: >0 value previous locked id
|
||||||
OS_LOCK_SUCCESS success to lock
|
OS_LOCK_SUCCESS success to lock
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
static s32 i_osDoTryLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void),
|
static s32 i_osDoTryLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void),
|
||||||
BOOL disableFIQ)
|
BOOL disableFIQ)
|
||||||
{
|
{
|
||||||
s32 lastLockFlag;
|
s32 lastLockFlag;
|
||||||
@ -386,7 +380,7 @@ static s32 i_osDoTryLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp)
|
|||||||
//---- Disable irq/fiq or irq
|
//---- Disable irq/fiq or irq
|
||||||
lastInterrupts = (disableFIQ) ? osDisableInterrupts_IrqAndFiq() : osDisableInterrupts();
|
lastInterrupts = (disableFIQ) ? osDisableInterrupts_IrqAndFiq() : osDisableInterrupts();
|
||||||
|
|
||||||
lastLockFlag = (s32)miSwapWord(lockID, &lockp->lockFlag);
|
lastLockFlag = (s32)miSwapByte(lockID, &lockp->lockFlag);
|
||||||
|
|
||||||
if (lastLockFlag == OS_LOCK_SUCCESS)
|
if (lastLockFlag == OS_LOCK_SUCCESS)
|
||||||
{
|
{
|
||||||
@ -411,7 +405,7 @@ static s32 i_osDoTryLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: osTryLockByWord
|
Name: osTryLockByByte
|
||||||
|
|
||||||
Description: try to lock spinlock only once.
|
Description: try to lock spinlock only once.
|
||||||
|
|
||||||
@ -422,13 +416,13 @@ static s32 i_osDoTryLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp)
|
|||||||
Returns: >0 value previous locked id
|
Returns: >0 value previous locked id
|
||||||
OS_LOCK_SUCCESS success to lock
|
OS_LOCK_SUCCESS success to lock
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
s32 osTryLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void))
|
s32 osTryLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
|
||||||
{
|
{
|
||||||
return i_osDoTryLockByWord(lockID, lockp, ctrlFuncp, FALSE);
|
return i_osDoTryLockByByte(lockID, lockp, ctrlFuncp, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: osTryLockByWord_IrqAndFiq
|
Name: osTryLockByByte_IrqAndFiq
|
||||||
|
|
||||||
Description: try to lock spinlock only once.
|
Description: try to lock spinlock only once.
|
||||||
|
|
||||||
@ -439,9 +433,9 @@ s32 osTryLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void))
|
|||||||
Returns: >0 value previous locked id
|
Returns: >0 value previous locked id
|
||||||
OS_LOCK_SUCCESS success to lock
|
OS_LOCK_SUCCESS success to lock
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
s32 osTryLockByWord_IrqAndFiq(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void))
|
s32 osTryLockByByte_IrqAndFiq(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void))
|
||||||
{
|
{
|
||||||
return i_osDoTryLockByWord(lockID, lockp, ctrlFuncp, TRUE);
|
return i_osDoTryLockByByte(lockID, lockp, ctrlFuncp, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -457,11 +451,11 @@ s32 osTryLockByWord_IrqAndFiq(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (
|
|||||||
|
|
||||||
Returns: OS_LOCK_SUCCESS success to lock
|
Returns: OS_LOCK_SUCCESS success to lock
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
s32 osLockCard(u16 lockID)
|
s32 osLockCard(u8 lockID)
|
||||||
{
|
{
|
||||||
OSi_ASSERT_ID(lockID);
|
OSi_ASSERT_ID(lockID);
|
||||||
|
|
||||||
return osLockByWord(lockID, (OSLockWord *)HW_CARD_LOCK_BUF, i_osAllocateCardBus);
|
return osLockByByte(lockID, (OSLockByte *)HW_CARD_LOCK_BUF, i_osAllocateCardBus);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
@ -474,11 +468,11 @@ s32 osLockCard(u16 lockID)
|
|||||||
Returns: OS_UNLOCK_SUCCESS success
|
Returns: OS_UNLOCK_SUCCESS success
|
||||||
OS_UNLOCK_ERROR error of unlocking lock
|
OS_UNLOCK_ERROR error of unlocking lock
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
s32 osUnlockCard(u16 lockID)
|
s32 osUnlockCard(u8 lockID)
|
||||||
{
|
{
|
||||||
OSi_ASSERT_ID(lockID);
|
OSi_ASSERT_ID(lockID);
|
||||||
|
|
||||||
return osUnlockByWord(lockID, (OSLockWord *)HW_CARD_LOCK_BUF, i_osFreeCardBus);
|
return osUnlockByByte(lockID, (OSLockByte *)HW_CARD_LOCK_BUF, i_osFreeCardBus);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
@ -491,9 +485,9 @@ s32 osUnlockCard(u16 lockID)
|
|||||||
Returns: >0 value previous locked id
|
Returns: >0 value previous locked id
|
||||||
OS_LOCK_SUCCESS success to lock
|
OS_LOCK_SUCCESS success to lock
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
s32 osTryLockCard(u16 lockID)
|
s32 osTryLockCard(u8 lockID)
|
||||||
{
|
{
|
||||||
return osTryLockByWord(lockID, (OSLockWord *)HW_CARD_LOCK_BUF, i_osAllocateCardBus);
|
return osTryLockByByte(lockID, (OSLockByte *)HW_CARD_LOCK_BUF, i_osAllocateCardBus);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------
|
//----------------
|
||||||
@ -501,7 +495,7 @@ static void i_osAllocateCardBus(void)
|
|||||||
{
|
{
|
||||||
#ifdef SDK_ARM11
|
#ifdef SDK_ARM11
|
||||||
#ifdef SDK_TWL
|
#ifdef SDK_TWL
|
||||||
// preset reset flag with status of disable interrupts in i_osDoTryLockByWord
|
// preset reset flag with status of disable interrupts in i_osDoTryLockByByte
|
||||||
if ( ((reg_MI_MC & REG_MI_MC_SL1_MODE_MASK) >> REG_MI_MC_SL1_MODE_SHIFT) == 0x2 )
|
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;
|
reg_MI_MCCNT1 |= REG_MI_MCCNT1_RESB_MASK;
|
||||||
@ -539,7 +533,7 @@ static void i_osFreeCardBus(void)
|
|||||||
|
|
||||||
Returns: owner id
|
Returns: owner id
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
u16 osReadOwnerOfLockWord(OSLockWord *lockp)
|
u8 osReadOwnerOfLockWord(OSLockByte *lockp)
|
||||||
{
|
{
|
||||||
return lockp->ownerID;
|
return lockp->ownerID;
|
||||||
}
|
}
|
||||||
@ -648,7 +642,7 @@ LSYM(10)
|
|||||||
|
|
||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
asm void osReleaseLockID( register u16 lockID )
|
asm void osReleaseLockID( register u8 lockID )
|
||||||
{
|
{
|
||||||
//#pragma unused( lockID )
|
//#pragma unused( lockID )
|
||||||
|
|
||||||
|
|||||||
@ -58,13 +58,12 @@ extern "C" {
|
|||||||
|
|
||||||
|
|
||||||
//---- structure of lock variable
|
//---- structure of lock variable
|
||||||
typedef volatile struct OSLockWord
|
typedef volatile struct OSLockByte
|
||||||
{
|
{
|
||||||
u32 lockFlag;
|
u8 lockFlag;
|
||||||
u16 ownerID;
|
u8 ownerID;
|
||||||
u16 extension;
|
|
||||||
}
|
}
|
||||||
OSLockWord;
|
OSLockByte;
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: osInitLock
|
Name: osInitLock
|
||||||
@ -99,8 +98,8 @@ void osInitLock(void);
|
|||||||
//・戻り値:
|
//・戻り値:
|
||||||
// OS_LOCK_SUCCESS ロック成功
|
// OS_LOCK_SUCCESS ロック成功
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
s32 osLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void));
|
s32 osLockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void));
|
||||||
s32 osLockCard(u16 lockID);
|
s32 osLockCard(u8 lockID);
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
// ロックの解除
|
// ロックの解除
|
||||||
@ -117,13 +116,8 @@ s32 osLockCard(u16 lockID);
|
|||||||
// OS_UNLOCK_SUCCESS ロック解除成功
|
// OS_UNLOCK_SUCCESS ロック解除成功
|
||||||
// OS_UNLOCK_ERROR ロック解除エラー
|
// OS_UNLOCK_ERROR ロック解除エラー
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
s32 osUnlockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void));
|
s32 osUnlockByByte(u8 lockID, OSLockByte *lockp, void (*ctrlFuncp) (void));
|
||||||
s32 osUnlockCard(u16 lockID);
|
s32 osUnlockCard(u8 lockID);
|
||||||
|
|
||||||
//---- for compatibility to old name ('UnLock' <-> 'Unlock')
|
|
||||||
// because isd lib calls osUnLock*, these cannot be inline.
|
|
||||||
s32 osUnLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void));
|
|
||||||
s32 osUnLockCard(u16 lockID);
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
// ロックの試行
|
// ロックの試行
|
||||||
@ -143,8 +137,8 @@ s32 osUnLockCard(u16 lockID);
|
|||||||
// 正 ロック中(直前に格納されていたID)
|
// 正 ロック中(直前に格納されていたID)
|
||||||
// OS_LOCK_SUCCESS ロック成功
|
// OS_LOCK_SUCCESS ロック成功
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
s32 osTryLockByWord(u16 lockID, OSLockWord *lockp, void (*crtlFuncp) (void));
|
s32 osTryLockByByte(u8 lockID, OSLockByte *lockp, void (*crtlFuncp) (void));
|
||||||
s32 osTryLockCard(u16 lockID);
|
s32 osTryLockCard(u8 lockID);
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
// ロック変数の所有モジュールIDの読み込み
|
// ロック変数の所有モジュールIDの読み込み
|
||||||
@ -166,8 +160,8 @@ s32 osTryLockCard(u16 lockID);
|
|||||||
// バイトアクセスはできないことに注意して下さい。
|
// バイトアクセスはできないことに注意して下さい。
|
||||||
// ですので、メインメモリ上では基本的に osReadOwnerOfLockWord() を使用して下さい。
|
// ですので、メインメモリ上では基本的に osReadOwnerOfLockWord() を使用して下さい。
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
u16 osReadOwnerOfLockWord(OSLockWord *lockp);
|
u8 osReadOwnerOfLockWord(OSLockByte *lockp);
|
||||||
#define osReadOwnerOfLockCard() osReadOwnerOfLockWord( (OSLockWord *)HW_CARD_LOCK_BUF )
|
#define osReadOwnerOfLockCard() osReadOwnerOfLockWord( (OSLockByte *)HW_CARD_LOCK_BUF )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -201,7 +195,7 @@ s32 osGetLockID(void);
|
|||||||
|
|
||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
void osReleaseLockID(u16 lockID);
|
void osReleaseLockID(u8 lockID);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -39,7 +39,7 @@ extern "C" {
|
|||||||
#define HW_AXI_WRAM_SYSRV_OFS_DABT_VENEER 0x28
|
#define HW_AXI_WRAM_SYSRV_OFS_DABT_VENEER 0x28
|
||||||
#endif // SDK_ARM11
|
#endif // SDK_ARM11
|
||||||
#define HW_AXI_WRAM_SYSRV_INIT_LOCK_BUF 0x30
|
#define HW_AXI_WRAM_SYSRV_INIT_LOCK_BUF 0x30
|
||||||
#define HW_AXI_WRAM_SYSRV_CARD_LOCK_BUF 0x38
|
#define HW_AXI_WRAM_SYSRV_CARD_LOCK_BUF 0x34
|
||||||
#ifdef SDK_ARM11
|
#ifdef SDK_ARM11
|
||||||
#define HW_AXI_WRAM_SYSRV_OFS_START_VECTOR1 0x3c
|
#define HW_AXI_WRAM_SYSRV_OFS_START_VECTOR1 0x3c
|
||||||
#define HW_AXI_WRAM_SYSRV_OFS_INTR_CHECK1 0x40
|
#define HW_AXI_WRAM_SYSRV_OFS_INTR_CHECK1 0x40
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user