fix arm7 irq mask into 64bit.

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@26 4ee2a332-4b2b-5046-8439-1ba90f034370
This commit is contained in:
nakasima 2007-04-17 00:39:48 +00:00
parent d634fdef1b
commit 4681f22cd7

View File

@ -256,7 +256,11 @@ OSIrqMask OS_SetIrqMask(OSIrqMask intr);
*---------------------------------------------------------------------------*/
static inline OSIrqMask OS_GetIrqMask(void)
{
#ifdef SDK_ARM9
return reg_OS_IE;
#else // SDK_ARM7
return ((OSIrqMask)reg_OS_IE2 << 32) | reg_OS_IE;
#endif // SDK_ARM7
}
/*---------------------------------------------------------------------------*
@ -307,7 +311,11 @@ OSIrqMask OS_ResetRequestIrqMask(OSIrqMask intr);
*---------------------------------------------------------------------------*/
static inline OSIrqMask OS_GetRequestIrqMask(void)
{
#ifdef SDK_ARM9
return reg_OS_IF;
#else // SDK_ARM7
return ((OSIrqMask)reg_OS_IF2 << 32) | reg_OS_IF;
#endif // SDK_ARM7
}
//================================================================================
@ -363,7 +371,10 @@ OSIrqFunction OS_GetIrqFunction(OSIrqMask intrBit);
*---------------------------------------------------------------------------*/
static inline void OS_SetIrqCheckFlag(OSIrqMask intr)
{
*(vu32 *)HW_INTR_CHECK_BUF |= (u32)intr;
*(vu32 *)HW_INTR_CHECK_BUF |= (u32)intr;
#ifdef SDK_ARM7
*(vu32 *)HW_INTR_CHECK2_BUF |= (u32)(intr >> 32);
#endif // SDK_ARM7
}
/*---------------------------------------------------------------------------*
@ -377,7 +388,10 @@ static inline void OS_SetIrqCheckFlag(OSIrqMask intr)
*---------------------------------------------------------------------------*/
static inline void OS_ClearIrqCheckFlag(OSIrqMask intr)
{
*(vu32 *)HW_INTR_CHECK_BUF &= (u32)~intr;
*(vu32 *)HW_INTR_CHECK_BUF &= ~(u32)intr;
#ifdef SDK_ARM7
*(vu32 *)HW_INTR_CHECK2_BUF &= ~(u32)(intr >> 32);
#endif // SDK_ARM7
}
/*---------------------------------------------------------------------------*
@ -391,7 +405,13 @@ static inline void OS_ClearIrqCheckFlag(OSIrqMask intr)
*---------------------------------------------------------------------------*/
static inline OSIrqMask OS_GetIrqCheckFlag(void)
{
return *(OSIrqMask *)HW_INTR_CHECK_BUF;
OSIrqMask intr = *(vu32 *)HW_INTR_CHECK_BUF;
#ifdef SDK_ARM7
intr |= (OSIrqMask)(*(vu32 *)HW_INTR_CHECK2_BUF) << 32;
#endif // SDK_ARM7
return intr;
}