Lines Matching refs:u64State

68     uint64_t volatile       u64State;
137 pThis->u64State = 0;
188 Assert(!(ASMAtomicReadU64(&pThis->u64State) & (RTSEMRW_CNT_RD_MASK | RTSEMRW_CNT_WR_MASK)));
264 uint64_t u64State = ASMAtomicReadU64(&pThis->u64State);
265 uint64_t u64OldState = u64State;
269 if ((u64State & RTSEMRW_DIR_MASK) == (RTSEMRW_DIR_READ << RTSEMRW_DIR_SHIFT))
272 uint64_t c = (u64State & RTSEMRW_CNT_RD_MASK) >> RTSEMRW_CNT_RD_SHIFT;
275 u64State &= ~RTSEMRW_CNT_RD_MASK;
276 u64State |= c << RTSEMRW_CNT_RD_SHIFT;
277 if (ASMAtomicCmpXchgU64(&pThis->u64State, u64State, u64OldState))
285 else if ((u64State & (RTSEMRW_CNT_RD_MASK | RTSEMRW_CNT_WR_MASK)) == 0)
288 u64State &= ~(RTSEMRW_CNT_RD_MASK | RTSEMRW_CNT_WR_MASK | RTSEMRW_DIR_MASK);
289 u64State |= (UINT64_C(1) << RTSEMRW_CNT_RD_SHIFT) | (RTSEMRW_DIR_READ << RTSEMRW_DIR_SHIFT);
290 if (ASMAtomicCmpXchgU64(&pThis->u64State, u64State, u64OldState))
322 uint64_t c = (u64State & RTSEMRW_CNT_RD_MASK) >> RTSEMRW_CNT_RD_SHIFT;
326 uint64_t cWait = (u64State & RTSEMRW_WAIT_CNT_RD_MASK) >> RTSEMRW_WAIT_CNT_RD_SHIFT;
331 u64State &= ~(RTSEMRW_CNT_RD_MASK | RTSEMRW_WAIT_CNT_RD_MASK);
332 u64State |= (c << RTSEMRW_CNT_RD_SHIFT) | (cWait << RTSEMRW_WAIT_CNT_RD_SHIFT);
334 if (ASMAtomicCmpXchgU64(&pThis->u64State, u64State, u64OldState))
361 u64OldState = u64State = ASMAtomicReadU64(&pThis->u64State);
362 c = (u64State & RTSEMRW_CNT_RD_MASK) >> RTSEMRW_CNT_RD_SHIFT; Assert(c > 0);
364 cWait = (u64State & RTSEMRW_WAIT_CNT_RD_MASK) >> RTSEMRW_WAIT_CNT_RD_SHIFT; Assert(cWait > 0);
366 u64State &= ~(RTSEMRW_CNT_RD_MASK | RTSEMRW_WAIT_CNT_RD_MASK);
367 u64State |= (c << RTSEMRW_CNT_RD_SHIFT) | (cWait << RTSEMRW_WAIT_CNT_RD_SHIFT);
368 if (ASMAtomicCmpXchgU64(&pThis->u64State, u64State, u64OldState))
375 u64State = ASMAtomicReadU64(&pThis->u64State);
376 if ((u64State & RTSEMRW_DIR_MASK) == (RTSEMRW_DIR_READ << RTSEMRW_DIR_SHIFT))
384 u64OldState = u64State;
386 cWait = (u64State & RTSEMRW_WAIT_CNT_RD_MASK) >> RTSEMRW_WAIT_CNT_RD_SHIFT;
389 u64State &= ~RTSEMRW_WAIT_CNT_RD_MASK;
390 u64State |= cWait << RTSEMRW_WAIT_CNT_RD_SHIFT;
392 if (ASMAtomicCmpXchgU64(&pThis->u64State, u64State, u64OldState))
404 u64State = ASMAtomicReadU64(&pThis->u64State);
418 u64State = ASMAtomicReadU64(&pThis->u64State);
419 u64OldState = u64State;
423 Assert((ASMAtomicReadU64(&pThis->u64State) & RTSEMRW_DIR_MASK) == (RTSEMRW_DIR_READ << RTSEMRW_DIR_SHIFT));
482 uint64_t u64State = ASMAtomicReadU64(&pThis->u64State);
483 uint64_t u64OldState = u64State;
484 if ((u64State & RTSEMRW_DIR_MASK) == (RTSEMRW_DIR_READ << RTSEMRW_DIR_SHIFT))
493 uint64_t c = (u64State & RTSEMRW_CNT_RD_MASK) >> RTSEMRW_CNT_RD_SHIFT;
498 || (u64State & RTSEMRW_CNT_WD_MASK) == 0)
501 u64State &= ~RTSEMRW_CNT_RD_MASK;
502 u64State |= c << RTSEMRW_CNT_RD_SHIFT;
503 if (ASMAtomicCmpXchgU64(&pThis->u64State, u64State, u64OldState))
509 u64State &= ~(RTSEMRW_CNT_RD_MASK | RTSEMRW_DIR_MASK);
510 u64State |= RTSEMRW_DIR_WRITE << RTSEMRW_DIR_SHIFT;
511 if (ASMAtomicCmpXchgU64(&pThis->u64State, u64State, u64OldState))
520 u64State = ASMAtomicReadU64(&pThis->u64State);
521 u64OldState = u64State;
574 Assert((ASMAtomicReadU64(&pThis->u64State) & RTSEMRW_DIR_MASK) == (RTSEMRW_DIR_WRITE << RTSEMRW_DIR_SHIFT));
588 uint64_t u64State = ASMAtomicReadU64(&pThis->u64State);
589 uint64_t u64OldState = u64State;
593 if ( (u64State & RTSEMRW_DIR_MASK) == (RTSEMRW_DIR_WRITE << RTSEMRW_DIR_SHIFT)
594 || (u64State & (RTSEMRW_CNT_RD_MASK | RTSEMRW_CNT_WR_MASK)) != 0)
597 uint64_t c = (u64State & RTSEMRW_CNT_WR_MASK) >> RTSEMRW_CNT_WR_SHIFT;
600 u64State &= ~RTSEMRW_CNT_WR_MASK;
601 u64State |= c << RTSEMRW_CNT_WR_SHIFT;
602 if (ASMAtomicCmpXchgU64(&pThis->u64State, u64State, u64OldState))
605 else if ((u64State & (RTSEMRW_CNT_RD_MASK | RTSEMRW_CNT_WR_MASK)) == 0)
608 u64State &= ~(RTSEMRW_CNT_RD_MASK | RTSEMRW_CNT_WR_MASK | RTSEMRW_DIR_MASK);
609 u64State |= (UINT64_C(1) << RTSEMRW_CNT_WR_SHIFT) | (RTSEMRW_DIR_WRITE << RTSEMRW_DIR_SHIFT);
610 if (ASMAtomicCmpXchgU64(&pThis->u64State, u64State, u64OldState))
619 uint64_t c = (u64State & RTSEMRW_CNT_WR_MASK) >> RTSEMRW_CNT_WR_SHIFT;
622 u64State &= ~RTSEMRW_CNT_WR_MASK;
623 u64State |= c << RTSEMRW_CNT_WR_SHIFT;
624 if (ASMAtomicCmpXchgU64(&pThis->u64State, u64State, u64OldState))
632 u64State = ASMAtomicReadU64(&pThis->u64State);
633 u64OldState = u64State;
640 bool fDone = (u64State & RTSEMRW_DIR_MASK) == (RTSEMRW_DIR_WRITE << RTSEMRW_DIR_SHIFT)
641 && ( ((u64State & RTSEMRW_CNT_WR_MASK) >> RTSEMRW_CNT_WR_SHIFT) == 1
682 u64OldState = u64State = ASMAtomicReadU64(&pThis->u64State);
683 uint64_t c = (u64State & RTSEMRW_CNT_WR_MASK) >> RTSEMRW_CNT_WR_SHIFT; Assert(c > 0);
685 u64State &= ~RTSEMRW_CNT_WR_MASK;
686 u64State |= c << RTSEMRW_CNT_WR_SHIFT;
687 if (ASMAtomicCmpXchgU64(&pThis->u64State, u64State, u64OldState))
693 u64State = ASMAtomicReadU64(&pThis->u64State);
694 if ((u64State & RTSEMRW_DIR_MASK) == (RTSEMRW_DIR_WRITE << RTSEMRW_DIR_SHIFT))
707 Assert((ASMAtomicReadU64(&pThis->u64State) & RTSEMRW_DIR_MASK) == (RTSEMRW_DIR_WRITE << RTSEMRW_DIR_SHIFT));
792 uint64_t u64State = ASMAtomicReadU64(&pThis->u64State);
793 uint64_t u64OldState = u64State;
795 uint64_t c = (u64State & RTSEMRW_CNT_WR_MASK) >> RTSEMRW_CNT_WR_SHIFT;
800 || (u64State & RTSEMRW_CNT_RD_MASK) == 0)
803 u64State &= ~RTSEMRW_CNT_WR_MASK;
804 u64State |= c << RTSEMRW_CNT_WR_SHIFT;
805 if (ASMAtomicCmpXchgU64(&pThis->u64State, u64State, u64OldState))
818 u64State &= ~(RTSEMRW_CNT_WR_MASK | RTSEMRW_DIR_MASK);
819 u64State |= RTSEMRW_DIR_READ << RTSEMRW_DIR_SHIFT;
820 if (ASMAtomicCmpXchgU64(&pThis->u64State, u64State, u64OldState))
883 uint64_t u64State = ASMAtomicReadU64(&pThis->u64State);
884 if ((u64State & RTSEMRW_DIR_MASK) == (RTSEMRW_DIR_WRITE << RTSEMRW_DIR_SHIFT))
899 if (!(u64State & RTSEMRW_CNT_RD_MASK))
965 uint64_t u64State = ASMAtomicReadU64(&pThis->u64State);
966 if ((u64State & RTSEMRW_DIR_MASK) != (RTSEMRW_DIR_READ << RTSEMRW_DIR_SHIFT))
968 return (u64State & RTSEMRW_CNT_RD_MASK) >> RTSEMRW_CNT_RD_SHIFT;