/* note This function must be called when the lock is not disabled.  */
void XRDC2_LockMemExclAccess(XRDC2_Type *base, xrdc2_mem_t mem)
/* note This function must be called when the lock is not disabled.  */
void XRDC2_LockMemExclAccess(XRDC2_Type *base, xrdc2_mem_t mem)
{
    uint8_t curDomainID;
    uint32_t mrc               = XRDC2_GET_MRC((uint32_t)mem);
    uint32_t mrgd              = XRDC2_GET_MRGD((uint32_t)mem);
    volatile uint32_t *lockReg = &(base->MRCI_MRGDJ[mrc][mrgd].MRC_MRGD_W6);
    curDomainID = XRDC2_GetCurrentMasterDomainId(base);
    while (true)
    {
        *lockReg = XRDC2_EAL_LOCKED;
        if (curDomainID == XRDC2_GetMemExclAccessLockDomainOwner(base, mem))
        {
            break;
        }
    }
    return;
}