Lines Matching refs:hClass

62 #define RTLOCKVALCLASS_HASH(hClass) \
63 ( ((uintptr_t)(hClass) >> 6 ) \
141 RTLOCKVALCLASS hClass;
480 RTLOCKVALCLASSINT *pCurClass = pChunk->aRefs[j].hClass;
509 RTLOCKVALCLASSINT *pCurClass = pChunk->aRefs[j].hClass;
589 rtLockValComplainGetClassName(pRec->Excl.hClass),
597 rtLockValComplainGetClassName(pRec->Excl.hClass),
607 rtLockValComplainGetClassName(pRec->Shared.hClass),
621 rtLockValComplainGetClassName(pShared->hClass),
629 rtLockValComplainGetClassName(pShared->hClass),
1077 pThis->PriorLocks.aRefs[i].hClass = NIL_RTLOCKVALCLASS;
1173 * @returns @a hClass on success, NIL_RTLOCKVALCLASS on failure.
1174 * @param hClass The class handle. NIL_RTLOCKVALCLASS is ok.
1176 DECL_FORCE_INLINE(RTLOCKVALCLASS) rtLockValidatorClassValidateAndRetain(RTLOCKVALCLASS hClass)
1178 if (hClass == NIL_RTLOCKVALCLASS)
1179 return hClass;
1180 AssertPtrReturn(hClass, NIL_RTLOCKVALCLASS);
1181 AssertReturn(hClass->u32Magic == RTLOCKVALCLASS_MAGIC, NIL_RTLOCKVALCLASS);
1182 rtLockValidatorClassRetain(hClass);
1183 return hClass;
1218 RTLOCKVALCLASSINT *pClass2 = pChunk->aRefs[i].hClass;
1221 pChunk->aRefs[i].hClass = NIL_RTLOCKVALCLASS;
1261 RTLOCKVALCLASS hClass = RTLockValidatorClassFindForSrcPos(&SrcPos);
1262 if (hClass == NIL_RTLOCKVALCLASS)
1269 int rc = RTLockValidatorClassCreateExV(&hClass, &SrcPos,
1280 Assert(!hClass->fInTree);
1281 hClass->fInTree = RTAvllU32Insert(&g_LockValClassTree, &hClass->Core);
1282 Assert(hClass->fInTree);
1286 return hClass;
1289 return hClass;
1293 RTDECL(uint32_t) RTLockValidatorClassRetain(RTLOCKVALCLASS hClass)
1295 RTLOCKVALCLASSINT *pClass = hClass;
1302 RTDECL(uint32_t) RTLockValidatorClassRelease(RTLOCKVALCLASS hClass)
1304 RTLOCKVALCLASSINT *pClass = hClass;
1326 if (pChunk->aRefs[i].hClass == pPriorClass)
1366 && pRef->hClass == pPriorClass)
1415 ASMAtomicCmpXchgHandle(&pChunk->aRefs[i].hClass, pPriorClass, NIL_RTLOCKVALCLASS, fDone);
1439 pNew->aRefs[i].hClass = NIL_RTLOCKVALCLASS;
1447 pNew->aRefs[0].hClass = pPriorClass;
1469 RTDECL(int) RTLockValidatorClassAddPriorClass(RTLOCKVALCLASS hClass, RTLOCKVALCLASS hPriorClass)
1471 RTLOCKVALCLASSINT *pClass = hClass;
1483 RTDECL(int) RTLockValidatorClassEnforceStrictReleaseOrder(RTLOCKVALCLASS hClass, bool fEnabled)
1485 RTLOCKVALCLASSINT *pClass = hClass;
1623 return pRec->Excl.hClass;
1626 return pRec->Shared.hClass;
1633 return pSharedRec->hClass;
1645 return pRealRec->Excl.hClass;
1652 return pSharedRec->hClass;
1688 return pRec->Excl.hClass;
1693 return pRec->Shared.hClass;
1704 return pSharedRec->hClass;
1721 return pRealRec->Excl.hClass;
1730 return pSharedRec->hClass;
2924 RTDECL(void) RTLockValidatorRecExclInitV(PRTLOCKVALRECEXCL pRec, RTLOCKVALCLASS hClass, uint32_t uSubClass,
2941 pRec->hClass = rtLockValidatorClassValidateAndRetain(hClass);
2961 RTDECL(void) RTLockValidatorRecExclInit(PRTLOCKVALRECEXCL pRec, RTLOCKVALCLASS hClass, uint32_t uSubClass,
2966 RTLockValidatorRecExclInitV(pRec, hClass, uSubClass, hLock, fEnabled, pszNameFmt, va);
2971 RTDECL(int) RTLockValidatorRecExclCreateV(PRTLOCKVALRECEXCL *ppRec, RTLOCKVALCLASS hClass,
2979 RTLockValidatorRecExclInitV(pRec, hClass, uSubClass, pvLock, fEnabled, pszNameFmt, va);
2984 RTDECL(int) RTLockValidatorRecExclCreate(PRTLOCKVALRECEXCL *ppRec, RTLOCKVALCLASS hClass,
2990 int rc = RTLockValidatorRecExclCreateV(ppRec, hClass, uSubClass, pvLock, fEnabled, pszNameFmt, va);
3004 RTLOCKVALCLASS hClass;
3005 ASMAtomicXchgHandle(&pRec->hClass, NIL_RTLOCKVALCLASS, &hClass);
3009 if (hClass != NIL_RTLOCKVALCLASS)
3010 RTLockValidatorClassRelease(hClass);
3113 if ( pRecU->Excl.hClass != NIL_RTLOCKVALCLASS
3114 && pRecU->Excl.hClass->fStrictReleaseOrder
3115 && pRecU->Excl.hClass->cMsMinOrder != RT_INDEFINITE_WAIT
3151 if ( pRecU->Excl.hClass != NIL_RTLOCKVALCLASS
3152 && !pRecU->Excl.hClass->fRecursionOk)
3180 if ( pRecU->Excl.hClass != NIL_RTLOCKVALCLASS
3181 && pRecU->Excl.hClass->fStrictReleaseOrder
3182 && pRecU->Excl.hClass->cMsMinOrder != RT_INDEFINITE_WAIT
3213 if ( pRecU->Excl.hClass != NIL_RTLOCKVALCLASS
3214 && !pRecU->Excl.hClass->fRecursionOk)
3247 if ( pRecU->Excl.hClass != NIL_RTLOCKVALCLASS
3248 && pRecU->Excl.hClass->fStrictReleaseOrder
3249 && pRecU->Excl.hClass->cMsMinOrder != RT_INDEFINITE_WAIT
3277 || pRecU->Excl.hClass == NIL_RTLOCKVALCLASS
3278 || pRecU->Excl.hClass->cMsMinOrder == RT_INDEFINITE_WAIT
3279 || pRecU->Excl.hClass->cMsMinOrder > cMillies)
3296 return rtLockValidatorStackCheckLockingOrder(pRecU->Excl.hClass, pRecU->Excl.uSubClass, hThreadSelf, pRecU, pSrcPos);
3350 || ( pRecU->Excl.hClass != NIL_RTLOCKVALCLASS
3351 && !pRecU->Excl.hClass->fRecursionOk))
3361 else if ( pRecU->Excl.hClass != NIL_RTLOCKVALCLASS
3362 && ( pRecU->Excl.hClass->cMsMinDeadlock > cMillies
3363 || pRecU->Excl.hClass->cMsMinDeadlock > RT_INDEFINITE_WAIT))
3394 RTDECL(void) RTLockValidatorRecSharedInitV(PRTLOCKVALRECSHRD pRec, RTLOCKVALCLASS hClass, uint32_t uSubClass,
3405 pRec->hClass = rtLockValidatorClassValidateAndRetain(hClass);
3431 RTDECL(void) RTLockValidatorRecSharedInit(PRTLOCKVALRECSHRD pRec, RTLOCKVALCLASS hClass, uint32_t uSubClass,
3436 RTLockValidatorRecSharedInitV(pRec, hClass, uSubClass, hLock, fSignaller, fEnabled, pszNameFmt, va);
3441 RTDECL(int) RTLockValidatorRecSharedCreateV(PRTLOCKVALRECSHRD *ppRec, RTLOCKVALCLASS hClass,
3449 RTLockValidatorRecSharedInitV(pRec, hClass, uSubClass, pvLock, fSignaller, fEnabled, pszNameFmt, va);
3454 RTDECL(int) RTLockValidatorRecSharedCreate(PRTLOCKVALRECSHRD *ppRec, RTLOCKVALCLASS hClass,
3460 int rc = RTLockValidatorRecSharedCreateV(ppRec, hClass, uSubClass, pvLock, fSignaller, fEnabled, pszNameFmt, va);
3485 RTLOCKVALCLASS hClass;
3486 ASMAtomicXchgHandle(&pRec->hClass, NIL_RTLOCKVALCLASS, &hClass);
3501 if (hClass != NIL_RTLOCKVALCLASS)
3502 RTLockValidatorClassRelease(hClass);
3575 || pRecU->Shared.hClass == NIL_RTLOCKVALCLASS
3576 || pRecU->Shared.hClass->cMsMinOrder == RT_INDEFINITE_WAIT
3577 || pRecU->Shared.hClass->cMsMinOrder > cMillies
3596 return rtLockValidatorStackCheckLockingOrder(pRecU->Shared.hClass, pRecU->Shared.uSubClass, hThreadSelf, pRecU, pSrcPos);
3648 || ( pRec->hClass
3649 && !pRec->hClass->fRecursionOk)
3660 else if ( pRec->hClass
3661 && ( pRec->hClass->cMsMinDeadlock == RT_INDEFINITE_WAIT
3662 || pRec->hClass->cMsMinDeadlock > cMillies))
4124 if ( pRec->hClass != NIL_RTLOCKVALCLASS
4125 && pRec->hClass->fStrictReleaseOrder
4126 && pRec->hClass->cMsMinOrder != RT_INDEFINITE_WAIT
4308 RTDECL(bool) RTLockValidatorHoldsLocksInClass(RTTHREAD hCurrentThread, RTLOCKVALCLASS hClass)
4318 if (hClass != NIL_RTLOCKVALCLASS)
4326 fRet = pCur->Excl.hClass == hClass;
4331 && pCur->ShrdOwner.pSharedRec->hClass == hClass;
4338 fRet = pCur->Nest.pRec->Excl.hClass == hClass;
4342 && pCur->Nest.pRec->ShrdOwner.pSharedRec->hClass == hClass;
4361 RTDECL(bool) RTLockValidatorHoldsLocksInSubClass(RTTHREAD hCurrentThread, RTLOCKVALCLASS hClass, uint32_t uSubClass)
4371 if (hClass != NIL_RTLOCKVALCLASS)
4379 fRet = pCur->Excl.hClass == hClass
4385 && pCur->ShrdOwner.pSharedRec->hClass == hClass
4393 fRet = pCur->Nest.pRec->Excl.hClass == hClass
4398 && pCur->Nest.pRec->ShrdOwner.pSharedRec->hClass == hClass