Lines Matching refs:rwstate

138 	volatile uint32_t *rwstate = (volatile uint32_t *)&rwlp->rwlock_readers;
147 readers = *rwstate;
181 volatile uint32_t *rwstate = (volatile uint32_t *)&rwlp->rwlock_readers;
188 readers = *rwstate;
273 * is set in the 'rwstate' word. Thus, setting the waiters flag on the
284 volatile uint32_t *rwstate = (volatile uint32_t *)&rwlp->rwlock_readers;
291 while (((readers = *rwstate) & mask) == 0) {
292 if (atomic_cas_32(rwstate, readers, readers + 1) == readers) {
307 volatile uint32_t *rwstate = (volatile uint32_t *)&rwlp->rwlock_readers;
312 while (((readers = *rwstate) & URW_HAS_WAITERS) == 0) {
313 if (atomic_cas_32(rwstate, readers, readers - 1) == readers) {
328 volatile uint32_t *rwstate = (volatile uint32_t *)&rwlp->rwlock_readers;
336 while (((readers = *rwstate) & mask) == 0) {
337 if (atomic_cas_32(rwstate, readers, readers | URW_WRITE_LOCKED)
353 volatile uint32_t *rwstate = (volatile uint32_t *)&rwlp->rwlock_readers;
358 while (((readers = *rwstate) & URW_HAS_WAITERS) == 0) {
359 if (atomic_cas_32(rwstate, readers, 0) == readers) {
375 volatile uint32_t *rwstate = (volatile uint32_t *)&rwlp->rwlock_readers;
394 readers = *rwstate;
397 atomic_and_32(rwstate, ~URW_WRITE_LOCKED);
399 atomic_dec_32(rwstate);
412 readers = *rwstate; /* must fetch the value again */
459 ASSERT((*rwstate & ~URW_HAS_WAITERS) == 0);
460 atomic_or_32(rwstate, URW_WRITE_LOCKED);
467 * This modification of rwstate must be done last.
474 atomic_and_32(rwstate, ~URW_HAS_WAITERS);
505 volatile uint32_t *rwstate = (volatile uint32_t *)&rwlp->rwlock_readers;
520 if (try_flag && (*rwstate & URW_WRITE_LOCKED)) {
537 atomic_or_32(rwstate, URW_HAS_WAITERS);
538 readers = *rwstate;
578 volatile uint32_t *rwstate = (volatile uint32_t *)&rwlp->rwlock_readers;
608 atomic_or_32(rwstate, URW_HAS_WAITERS);
609 readers = *rwstate;
616 atomic_and_32(rwstate, ~URW_HAS_WAITERS);
674 atomic_and_32(rwstate, ~URW_HAS_WAITERS);
679 (*rwstate & URW_WRITE_LOCKED) &&
695 atomic_and_32(rwstate, ~URW_HAS_WAITERS);
1010 volatile uint32_t *rwstate = (volatile uint32_t *)&rwlp->rwlock_readers;
1017 readers = *rwstate;