typedef struct MXUserBinSemaphore MXUserBinSemaphore;
typedef struct MXUserEvent MXUserEvent;
typedef struct MXUserBarrier MXUserBarrier;
+typedef struct MXUserLockChain MXUserLockChain;
/*
* Exclusive ownership lock
void MXUser_EmptyLockTree(void);
+void MXUser_AcquireChain(MXUserLockChain *chain);
+uint32 MXUser_AddChainRecLock(MXUserRecLock *lock);
+uint32 MXUser_ChainLength(MXUserLockChain *chain);
+MXUserLockChain *MXUser_CopyChain(void);
+void MXUser_DescribeChain(uint32 routing,
+ MXUserLockChain *chain);
+uint32 MXUser_GraftChainRecLock(MXUserLockChain *chain,
+ MXUserRecLock *lock);
+Bool MXUser_InitChain(MXUserRecLock *lock,
+ Bool derive,
+ Bool skipIfInitialized);
+Bool MXUser_IsChainInitialized(MXUserLockChain *chain);
+Bool MXUser_PurgeChainRecLock(MXUserLockChain *chain,
+ MXUserRecLock *lock);
+void MXUser_ReleaseChain(MXUserLockChain *chain);
+uint32 MXUser_RemoveChainRecLock(MXUserRecLock *lock);
+void MXUser_SetChain(MXUserLockChain *chain,
+ Bool shouldFree);
+const char * MXUser_TryAcquireChain(MXUserLockChain *chain);
#if defined(VMX86_DEBUG) && !defined(DISABLE_MXUSER_DEBUG)
#define MXUSER_DEBUG // debugging "everywhere" when requested
struct MX_MutexRec *MXUser_GetRecLockVmm(MXUserRecLock *lock);
MX_Rank MXUser_GetRecLockRank(MXUserRecLock *lock);
+const char *MXUser_GetRecLockName(MXUserRecLock *lock);
#if defined(__cplusplus)
} // extern "C"
/*********************************************************
- * Copyright (C) 2009-2019 VMware, Inc. All rights reserved.
+ * Copyright (c) 2009-2025 Broadcom. All Rights Reserved.
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
MXUserCondDestroyRecLock(lock);
}
+
+
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * MXUser_GetRecLockName
+ *
+ * Peek under the hood of the lock to retrieve it's name.
+ *
+ * Results:
+ *
+ * Name of the lock.
+ *
+ * Side effects:
+ * None.
+ *
+ *-----------------------------------------------------------------------------
+ */
+
+ const char *
+ MXUser_GetRecLockName(MXUserRecLock *lock) // IN:
+ {
+ ASSERT(lock != NULL);
+
+ MXUserValidateHeader(&lock->header, MXUSER_TYPE_REC);
+
+ return lock->header.name;
+ }
\ No newline at end of file