TOK_EXCLUSIVE
if (mode & TOK_EXCLUSIVE) {
TOK_EXCLUSIVE)) {
} else if ((count & TOK_EXCLUSIVE) &&
ref->tr_count &= ~TOK_EXCLUSIVE;
if ((count & (TOK_EXCLUSIVE|mode)) == 0 ||
((count & TOK_EXCLUSIVE) == 0 &&
if ((atomic_fetchadd_long(&tok->t_count, TOK_INCR) & TOK_EXCLUSIVE) == 0) {
} else if ((count & TOK_EXCLUSIVE) &&
if (mode & TOK_EXCLUSIVE) {
KKASSERT(count & TOK_EXCLUSIVE);
atomic_clear_long(&tok->t_count, TOK_EXCLUSIVE);
_lwkt_tokref_init(ref, tok, td, TOK_EXCLUSIVE|TOK_EXCLREQ);
if (tk->tr_count & TOK_EXCLUSIVE)
if (_lwkt_trytokref_spin(ref, td, TOK_EXCLUSIVE|TOK_EXCLREQ))
_lwkt_tokref_init(ref, tok, td, TOK_EXCLUSIVE|TOK_EXCLREQ);
if (_lwkt_trytokref(ref, td, TOK_EXCLUSIVE))
#define TOK_COUNTMASK (~(long)(TOK_EXCLUSIVE|TOK_EXCLREQ))
if ((count & TOK_EXCLUSIVE) == 0 &&
(count & ~(TOK_EXCLUSIVE|TOK_EXCLREQ))) {