Lines Matching refs:u64State

178     uint64_t u64State    = ASMAtomicReadU64(&pThis->s.Core.u64State);
179 uint64_t u64OldState = u64State;
183 if ((u64State & RTCSRW_DIR_MASK) == (RTCSRW_DIR_READ << RTCSRW_DIR_SHIFT))
186 uint64_t c = (u64State & RTCSRW_CNT_RD_MASK) >> RTCSRW_CNT_RD_SHIFT;
189 u64State &= ~RTCSRW_CNT_RD_MASK;
190 u64State |= c << RTCSRW_CNT_RD_SHIFT;
191 if (ASMAtomicCmpXchgU64(&pThis->s.Core.u64State, u64State, u64OldState))
200 else if ((u64State & (RTCSRW_CNT_RD_MASK | RTCSRW_CNT_WR_MASK)) == 0)
203 u64State &= ~(RTCSRW_CNT_RD_MASK | RTCSRW_CNT_WR_MASK | RTCSRW_DIR_MASK);
204 u64State |= (UINT64_C(1) << RTCSRW_CNT_RD_SHIFT) | (RTCSRW_DIR_READ << RTCSRW_DIR_SHIFT);
205 if (ASMAtomicCmpXchgU64(&pThis->s.Core.u64State, u64State, u64OldState))
255 uint64_t c = (u64State & RTCSRW_CNT_RD_MASK) >> RTCSRW_CNT_RD_SHIFT;
259 uint64_t cWait = (u64State & RTCSRW_WAIT_CNT_RD_MASK) >> RTCSRW_WAIT_CNT_RD_SHIFT;
264 u64State &= ~(RTCSRW_CNT_RD_MASK | RTCSRW_WAIT_CNT_RD_MASK);
265 u64State |= (c << RTCSRW_CNT_RD_SHIFT) | (cWait << RTCSRW_WAIT_CNT_RD_SHIFT);
267 if (ASMAtomicCmpXchgU64(&pThis->s.Core.u64State, u64State, u64OldState))
306 u64OldState = u64State = ASMAtomicReadU64(&pThis->s.Core.u64State);
307 c = (u64State & RTCSRW_CNT_RD_MASK) >> RTCSRW_CNT_RD_SHIFT; Assert(c > 0);
309 cWait = (u64State & RTCSRW_WAIT_CNT_RD_MASK) >> RTCSRW_WAIT_CNT_RD_SHIFT; Assert(cWait > 0);
311 u64State &= ~(RTCSRW_CNT_RD_MASK | RTCSRW_WAIT_CNT_RD_MASK);
312 u64State |= (c << RTCSRW_CNT_RD_SHIFT) | (cWait << RTCSRW_WAIT_CNT_RD_SHIFT);
313 if (ASMAtomicCmpXchgU64(&pThis->s.Core.u64State, u64State, u64OldState))
320 u64State = ASMAtomicReadU64(&pThis->s.Core.u64State);
321 if ((u64State & RTCSRW_DIR_MASK) == (RTCSRW_DIR_READ << RTCSRW_DIR_SHIFT))
329 u64OldState = u64State;
331 cWait = (u64State & RTCSRW_WAIT_CNT_RD_MASK) >> RTCSRW_WAIT_CNT_RD_SHIFT;
334 u64State &= ~RTCSRW_WAIT_CNT_RD_MASK;
335 u64State |= cWait << RTCSRW_WAIT_CNT_RD_SHIFT;
337 if (ASMAtomicCmpXchgU64(&pThis->s.Core.u64State, u64State, u64OldState))
350 u64State = ASMAtomicReadU64(&pThis->s.Core.u64State);
388 u64State = ASMAtomicReadU64(&pThis->s.Core.u64State);
389 u64OldState = u64State;
394 Assert((ASMAtomicReadU64(&pThis->s.Core.u64State) & RTCSRW_DIR_MASK) == (RTCSRW_DIR_READ << RTCSRW_DIR_SHIFT));
569 uint64_t u64State = ASMAtomicReadU64(&pThis->s.Core.u64State);
570 uint64_t u64OldState = u64State;
571 if ((u64State & RTCSRW_DIR_MASK) == (RTCSRW_DIR_READ << RTCSRW_DIR_SHIFT))
585 uint64_t c = (u64State & RTCSRW_CNT_RD_MASK) >> RTCSRW_CNT_RD_SHIFT;
590 || (u64State & RTCSRW_CNT_WR_MASK) == 0)
593 u64State &= ~RTCSRW_CNT_RD_MASK;
594 u64State |= c << RTCSRW_CNT_RD_SHIFT;
595 if (ASMAtomicCmpXchgU64(&pThis->s.Core.u64State, u64State, u64OldState))
607 u64State &= ~(RTCSRW_CNT_RD_MASK | RTCSRW_DIR_MASK);
608 u64State |= RTCSRW_DIR_WRITE << RTCSRW_DIR_SHIFT;
609 if (ASMAtomicCmpXchgU64(&pThis->s.Core.u64State, u64State, u64OldState))
626 LogFlow(("PDMCritSectRwLeaveShared: [%d]=%p => R3 c=%d (%#llx)\n", i, pThis, c, u64State));
639 u64State = ASMAtomicReadU64(&pThis->s.Core.u64State);
640 u64OldState = u64State;
731 Assert((ASMAtomicReadU64(&pThis->s.Core.u64State) & RTCSRW_DIR_MASK) == (RTCSRW_DIR_WRITE << RTCSRW_DIR_SHIFT));
749 uint64_t u64State = ASMAtomicReadU64(&pThis->s.Core.u64State);
750 uint64_t u64OldState = u64State;
754 if ( (u64State & RTCSRW_DIR_MASK) == (RTCSRW_DIR_WRITE << RTCSRW_DIR_SHIFT)
755 || (u64State & (RTCSRW_CNT_RD_MASK | RTCSRW_CNT_WR_MASK)) != 0)
758 uint64_t c = (u64State & RTCSRW_CNT_WR_MASK) >> RTCSRW_CNT_WR_SHIFT;
761 u64State &= ~RTCSRW_CNT_WR_MASK;
762 u64State |= c << RTCSRW_CNT_WR_SHIFT;
763 if (ASMAtomicCmpXchgU64(&pThis->s.Core.u64State, u64State, u64OldState))
766 else if ((u64State & (RTCSRW_CNT_RD_MASK | RTCSRW_CNT_WR_MASK)) == 0)
769 u64State &= ~(RTCSRW_CNT_RD_MASK | RTCSRW_CNT_WR_MASK | RTCSRW_DIR_MASK);
770 u64State |= (UINT64_C(1) << RTCSRW_CNT_WR_SHIFT) | (RTCSRW_DIR_WRITE << RTCSRW_DIR_SHIFT);
771 if (ASMAtomicCmpXchgU64(&pThis->s.Core.u64State, u64State, u64OldState))
783 uint64_t c = (u64State & RTCSRW_CNT_WR_MASK) >> RTCSRW_CNT_WR_SHIFT;
786 u64State &= ~RTCSRW_CNT_WR_MASK;
787 u64State |= c << RTCSRW_CNT_WR_SHIFT;
788 if (ASMAtomicCmpXchgU64(&pThis->s.Core.u64State, u64State, u64OldState))
796 u64State = ASMAtomicReadU64(&pThis->s.Core.u64State);
797 u64OldState = u64State;
804 bool fDone = (u64State & RTCSRW_DIR_MASK) == (RTCSRW_DIR_WRITE << RTCSRW_DIR_SHIFT)
806 && ( ((u64State & RTCSRW_CNT_WR_MASK) >> RTCSRW_CNT_WR_SHIFT) == 1
867 u64OldState = u64State = ASMAtomicReadU64(&pThis->s.Core.u64State);
868 uint64_t c = (u64State & RTCSRW_CNT_WR_MASK) >> RTCSRW_CNT_WR_SHIFT; Assert(c > 0);
870 u64State &= ~RTCSRW_CNT_WR_MASK;
871 u64State |= c << RTCSRW_CNT_WR_SHIFT;
872 if (ASMAtomicCmpXchgU64(&pThis->s.Core.u64State, u64State, u64OldState))
878 u64State = ASMAtomicReadU64(&pThis->s.Core.u64State);
879 if ((u64State & RTCSRW_DIR_MASK) == (RTCSRW_DIR_WRITE << RTCSRW_DIR_SHIFT))
901 u64OldState = u64State = ASMAtomicReadU64(&pThis->s.Core.u64State);
902 uint64_t c = (u64State & RTCSRW_CNT_WR_MASK) >> RTCSRW_CNT_WR_SHIFT; Assert(c > 0);
904 u64State &= ~RTCSRW_CNT_WR_MASK;
905 u64State |= c << RTCSRW_CNT_WR_SHIFT;
906 if (ASMAtomicCmpXchgU64(&pThis->s.Core.u64State, u64State, u64OldState))
930 Assert((ASMAtomicReadU64(&pThis->s.Core.u64State) & RTCSRW_DIR_MASK) == (RTCSRW_DIR_WRITE << RTCSRW_DIR_SHIFT));
1138 uint64_t u64State = ASMAtomicReadU64(&pThis->s.Core.u64State);
1139 uint64_t u64OldState = u64State;
1141 uint64_t c = (u64State & RTCSRW_CNT_WR_MASK) >> RTCSRW_CNT_WR_SHIFT;
1146 || (u64State & RTCSRW_CNT_RD_MASK) == 0)
1149 u64State &= ~RTCSRW_CNT_WR_MASK;
1150 u64State |= c << RTCSRW_CNT_WR_SHIFT;
1151 if (ASMAtomicCmpXchgU64(&pThis->s.Core.u64State, u64State, u64OldState))
1164 u64State &= ~(RTCSRW_CNT_WR_MASK | RTCSRW_DIR_MASK);
1165 u64State |= RTCSRW_DIR_READ << RTCSRW_DIR_SHIFT;
1166 if (ASMAtomicCmpXchgU64(&pThis->s.Core.u64State, u64State, u64OldState))
1313 uint64_t u64State = ASMAtomicReadU64(&pThis->s.Core.u64State);
1314 if ((u64State & RTCSRW_DIR_MASK) == (RTCSRW_DIR_WRITE << RTCSRW_DIR_SHIFT))
1330 if (!(u64State & RTCSRW_CNT_RD_MASK))
1416 uint64_t u64State = ASMAtomicReadU64(&pThis->s.Core.u64State);
1417 if ((u64State & RTCSRW_DIR_MASK) != (RTCSRW_DIR_READ << RTCSRW_DIR_SHIFT))
1419 return (u64State & RTCSRW_CNT_RD_MASK) >> RTCSRW_CNT_RD_SHIFT;