Value: do { \ (elm)->field.stqe_next = -1; \ (elm)->field.stqe_prev = \ -SH_PTR_TO_OFF(head, elm) + (head)->stqh_last; \ if ((head)->stqh_last == \ SH_PTR_TO_OFF((head), &(head)->stqh_first)) \ (head)->stqh_first = SH_PTR_TO_OFF(head, elm); \ else \ *SH_TAILQ_LAST(head) = -(head)->stqh_last + \ SH_PTR_TO_OFF((elm), &(elm)->field.stqe_next) + \ SH_PTR_TO_OFF(head, elm); \ (head)->stqh_last = \ SH_PTR_TO_OFF(head, &((elm)->field.stqe_next)); \ } while (0) Definition at line 178 of file shqueue.h. Referenced by __lock_get_internal(), CDB___lock_promote(), CDB_memp_fget(), and CDB_memp_fput().
|