//------------------------------------------------------------------------------ static MUINT32 SYSRAM_TryAllocUser( SYSRAM_USER_ENUM const User, MUINT32 const Size, MUINT32 const Alignment) { MUINT32 Addr = 0; // SYSRAM_SpinLock(); // if(SYSRAM_UserIsLocked(User)) { SYSRAM_SpinUnlock(); LOG_ERR("[User:%s]has been already allocated!",SysramUserName[User]); return 0; } // Addr = SYSRAM_AllocUser(User, Size, Alignment); if(Addr != 0) { SYSRAM_CheckClock(); } SYSRAM_SpinUnlock(); // return Addr; }
/* ------------------------------------------------------------------------------ */ static inline MBOOL SYSRAM_UserIsUnlocked(SYSRAM_USER_ENUM const User) { if (SYSRAM_UserIsLocked(User) == 0) { return MTRUE; } else { return MFALSE; } }
/* ------------------------------------------------------------------------------ */ static void SYSRAM_LockUser(SYSRAM_USER_ENUM const User, MUINT32 const Size) { if (SYSRAM_UserIsLocked(User)) { return; } /* */ Sysram.TotalUserCount++; Sysram.AllocatedTbl |= (1 << User); Sysram.AllocatedSize[User] = Size; SYSRAM_SetUserTaskInfo(User); /* Debug Log. */ if ((1 << User) & SysramLogUserMask) { SYSRAM_USER_STRUCT * const pUserInfo = &Sysram.UserInfo[User]; LOG_MSG("[%s][%lu bytes]OK,Time(%lu.%06lu)", SysramUserName[User], Sysram.AllocatedSize[User], pUserInfo->TimeS, pUserInfo->TimeUS); } }