From: VMware, Inc <> Date: Mon, 21 Nov 2011 23:29:39 +0000 (-0800) Subject: lib/lock: the last piece X-Git-Tag: 2011.11.20-535097~33 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=08bcfff1fdc800988458e680d4cbc893ed042cb8;p=thirdparty%2Fopen-vm-tools.git lib/lock: the last piece 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 --- diff --git a/open-vm-tools/lib/lock/ulBarrier.c b/open-vm-tools/lib/lock/ulBarrier.c index 8f32ef60b..9aba8b546 100644 --- a/open-vm-tools/lib/lock/ulBarrier.c +++ b/open-vm-tools/lib/lock/ulBarrier.c @@ -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; diff --git a/open-vm-tools/lib/lock/ulExcl.c b/open-vm-tools/lib/lock/ulExcl.c index 1aaea1bd7..931735dd8 100644 --- a/open-vm-tools/lib/lock/ulExcl.c +++ b/open-vm-tools/lib/lock/ulExcl.c @@ -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()) { diff --git a/open-vm-tools/lib/lock/ulInt.h b/open-vm-tools/lib/lock/ulInt.h index 583499717..12ff15b3b 100644 --- a/open-vm-tools/lib/lock/ulInt.h +++ b/open-vm-tools/lib/lock/ulInt.h @@ -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); diff --git a/open-vm-tools/lib/lock/ulRW.c b/open-vm-tools/lib/lock/ulRW.c index 9e31253bd..ba05dc0e3 100644 --- a/open-vm-tools/lib/lock/ulRW.c +++ b/open-vm-tools/lib/lock/ulRW.c @@ -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; /* diff --git a/open-vm-tools/lib/lock/ulRec.c b/open-vm-tools/lib/lock/ulRec.c index 0da8c2aaa..3150644f1 100644 --- a/open-vm-tools/lib/lock/ulRec.c +++ b/open-vm-tools/lib/lock/ulRec.c @@ -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; diff --git a/open-vm-tools/lib/lock/ulSema.c b/open-vm-tools/lib/lock/ulSema.c index 992a69e4a..a511c7c66 100644 --- a/open-vm-tools/lib/lock/ulSema.c +++ b/open-vm-tools/lib/lock/ulSema.c @@ -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()) { diff --git a/open-vm-tools/lib/lock/ulStats.c b/open-vm-tools/lib/lock/ulStats.c index 2bc66e108..330be1afd 100644 --- a/open-vm-tools/lib/lock/ulStats.c +++ b/open-vm-tools/lib/lock/ulStats.c @@ -1053,7 +1053,7 @@ MXUser_PerLockData(void) */ uint32 -MXUserAllocSerialNumber(void) +MXUserAllocSerialNumber(uint32 objectID) // IN: { static Atomic_uint32 firstFreeSerialNumber = { 1 }; // must start not zero