]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
lib/lock: the last piece
authorVMware, Inc <>
Mon, 21 Nov 2011 23:29:39 +0000 (15:29 -0800)
committerMarcelo Vanzin <mvanzin@vmware.com>
Mon, 21 Nov 2011 23:29:39 +0000 (15:29 -0800)
This will put lib/lock such that the real-time checking
can be done while not changing the size of any structure.

This backs out changes to the point that we can go forward.

Signed-off-by: Marcelo Vanzin <mvanzin@vmware.com>
open-vm-tools/lib/lock/ulBarrier.c
open-vm-tools/lib/lock/ulExcl.c
open-vm-tools/lib/lock/ulInt.h
open-vm-tools/lib/lock/ulRW.c
open-vm-tools/lib/lock/ulRec.c
open-vm-tools/lib/lock/ulSema.c
open-vm-tools/lib/lock/ulStats.c

index 8f32ef60bf405b86a6da4ea9da53cdfa54df3afd..9aba8b5462185c3c2ae80629fdeebfe663ae9fde 100644 (file)
@@ -159,7 +159,8 @@ MXUser_CreateBarrier(const char *userName,  // IN: shall be known as
    barrier->header.signature = MXUSER_BARRIER_SIGNATURE;
    barrier->header.name = properName;
    barrier->header.rank = rank;
-   barrier->header.serialNumber = MXUserAllocSerialNumber();
+   barrier->header.serialNumber =
+                             MXUserAllocSerialNumber(MXUSER_BARRIER_SIGNATURE);
    barrier->header.dumpFunc = MXUserDumpBarrier;
    barrier->header.statsFunc = NULL;
 
index 1aaea1bd72a9dc5b8fee8e1f2350ffbd04ae2453..931735dd8e65e068d86af1f1089033fe92600bd8 100644 (file)
@@ -306,7 +306,7 @@ MXUser_CreateExclLock(const char *userName,  // IN:
    lock->header.signature = MXUSER_EXCL_SIGNATURE;
    lock->header.name = properName;
    lock->header.rank = rank;
-   lock->header.serialNumber = MXUserAllocSerialNumber();
+   lock->header.serialNumber = MXUserAllocSerialNumber(MXUSER_EXCL_SIGNATURE);
    lock->header.dumpFunc = MXUserDumpExclLock;
 
    if (MXUserStatsEnabled()) {
index 58349971732a8f324aed188798e15b0eb13c8d34..12ff15b3be73abf6251f6af686a65397a72be6e7 100644 (file)
@@ -488,7 +488,7 @@ typedef struct {
    MXUserBasicStats  basicStats;       // total held statistics
 } MXUserReleaseStats;
 
-uint32 MXUserAllocSerialNumber(void);
+uint32 MXUserAllocSerialNumber(uint32 objectID);
 
 void MXUserAddToList(MXUserHeader *header);
 void MXUserRemoveFromList(MXUserHeader *header);
index 9e31253bd49a156464670da5791a177ea543e8e2..ba05dc0e3a2138307b2f9e5dc313a38bf725abaf 100644 (file)
@@ -534,7 +534,7 @@ MXUser_CreateRWLock(const char *userName,  // IN:
    lock->header.signature = MXUSER_RW_SIGNATURE;
    lock->header.name = properName;
    lock->header.rank = rank;
-   lock->header.serialNumber = MXUserAllocSerialNumber();
+   lock->header.serialNumber = MXUserAllocSerialNumber(MXUSER_RW_SIGNATURE);
    lock->header.dumpFunc = MXUserDumpRWLock;
 
    /*
index 0da8c2aaaa29983b42bb20a2e9bec0b4eedd3495..3150644f159aa9fec07fac3c6aa922e2b54723ad 100644 (file)
@@ -338,7 +338,7 @@ MXUserCreateRecLock(const char *userName,  // IN:
    lock->header.signature = MXUSER_REC_SIGNATURE;
    lock->header.name = properName;
    lock->header.rank = rank;
-   lock->header.serialNumber = MXUserAllocSerialNumber();
+   lock->header.serialNumber = MXUserAllocSerialNumber(MXUSER_REC_SIGNATURE);
    lock->header.dumpFunc = MXUserDumpRecLock;
 
    if (beSilent || !MXUserStatsEnabled()) {
@@ -1019,7 +1019,7 @@ MXUser_BindMXMutexRec(struct MX_MutexRec *mutex,  // IN:
    lock->header.signature = MXUSER_REC_SIGNATURE;
    lock->header.name = Str_SafeAsprintf(NULL, "MX_%p", mutex);
    lock->header.rank = rank;
-   lock->header.serialNumber = MXUserAllocSerialNumber();
+   lock->header.serialNumber = MXUserAllocSerialNumber(MXUSER_REC_SIGNATURE);
    lock->header.dumpFunc = NULL;
    lock->header.statsFunc = NULL;
 
index 992a69e4a0963cbcc6186a769b0f9d1ae2674e35..a511c7c66e7519d8ef8904aaa026dcfbb8449fd8 100644 (file)
@@ -518,7 +518,8 @@ MXUser_CreateSemaphore(const char *userName,  // IN:
       sema->header.signature = MXUSER_SEMA_SIGNATURE;
       sema->header.name = properName;
       sema->header.rank = rank;
-      sema->header.serialNumber = MXUserAllocSerialNumber();
+      sema->header.serialNumber =
+                                MXUserAllocSerialNumber(MXUSER_SEMA_SIGNATURE);
       sema->header.dumpFunc = MXUserDumpSemaphore;
 
       if (MXUserStatsEnabled()) {
index 2bc66e1082ec0a95608fe3c4114fa5a614016659..330be1afdf03e978f971b622030c6a3cf4e62970 100644 (file)
@@ -1053,7 +1053,7 @@ MXUser_PerLockData(void)
  */
 
 uint32
-MXUserAllocSerialNumber(void)
+MXUserAllocSerialNumber(uint32 objectID)  // IN:
 {
    static Atomic_uint32 firstFreeSerialNumber = { 1 };  // must start not zero