Value: do { \ if ((head)->stqh_first != -1) { \ (elm)->field.stqe_next = \ (head)->stqh_first - SH_PTR_TO_OFF(head, elm); \ SH_TAILQ_FIRSTP(head, type)->field.stqe_prev = \ SH_TAILQ_NEXT_TO_PREV(elm, field); \ } else { \ (elm)->field.stqe_next = -1; \ (head)->stqh_last = \ SH_PTR_TO_OFF(head, &(elm)->field.stqe_next); \ } \ (head)->stqh_first = SH_PTR_TO_OFF(head, elm); \ (elm)->field.stqe_prev = \ SH_PTR_TO_OFF(elm, &(head)->stqh_first); \ } while (0) Definition at line 162 of file shqueue.h. Referenced by __lock_checklocker(), __lock_get_internal(), __lock_init(), __lock_put_internal(), __memp_mf_open(), __txn_begin(), CDB___lock_freelocker(), CDB_log_register(), CDB_memp_fget(), and CDB_memp_fput().
|