]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
Changes in shared code that don't affect open-vm-tools functionality.
authorVMware, Inc <>
Thu, 18 Nov 2010 22:29:52 +0000 (14:29 -0800)
committerMarcelo Vanzin <mvanzin@vmware.com>
Thu, 18 Nov 2010 22:29:52 +0000 (14:29 -0800)
Signed-off-by: Marcelo Vanzin <mvanzin@vmware.com>
open-vm-tools/lib/lock/ul.c
open-vm-tools/lib/lock/ulIntShared.h

index 6a02ffff6f1a46551591e7ab53221a1656025f2e..ff3c85c68bdcfa9c158a04ded6b6dd8078eddd09 100644 (file)
@@ -173,6 +173,44 @@ MXUser_IsCurThreadHoldingLocks(void)
 }
 
 
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * MXUserCurrentRank --
+ *
+ *      Return the highest rank held by the current thread via MXUser locks.
+ *
+ * Results:
+ *      As above
+ *
+ * Side effects:
+ *      None
+ *
+ *-----------------------------------------------------------------------------
+ */
+
+MX_Rank
+MXUserCurrentRank(void)
+{
+   MXUserPerThread *perThread;
+   MX_Rank maxRank = RANK_UNRANKED;
+
+   perThread = MXUserGetPerThread(MXUserGetNativeTID(), FALSE);
+
+   if (perThread != NULL) {
+      uint32 i;
+
+      for (i = 0; i < perThread->locksHeld; i++) {
+         MXUserHeader *chkHdr = perThread->lockArray[i];
+
+         maxRank = MAX(chkHdr->rank, maxRank);
+      }
+   }
+
+   return maxRank;
+}
+
+
 /*
  *-----------------------------------------------------------------------------
  *
index a20036ca430a52fb8dc35f8b5bfc1997c7d277ce..3e43ed80d2161b01775281a72edd179a00fbc091 100644 (file)
@@ -30,6 +30,8 @@ MXUserListLocks(void)
 }
 #endif
 
+MX_Rank MXUserCurrentRank(void);
+
 extern void MXUserInstallMxHooks(void (*theLockListFunc)(void),
                                  MX_Rank (*theRankFunc)(void),
                                  void (*theLockFunc)(struct MX_MutexRec *lock),