Lines Matching defs:tl

744 txg_list_create(txg_list_t *tl, spa_t *spa, size_t offset)
748 mutex_init(&tl->tl_lock, NULL, MUTEX_DEFAULT, NULL);
750 tl->tl_offset = offset;
751 tl->tl_spa = spa;
754 tl->tl_head[t] = NULL;
758 txg_list_destroy(txg_list_t *tl)
763 ASSERT(txg_list_empty(tl, t));
765 mutex_destroy(&tl->tl_lock);
769 txg_list_empty(txg_list_t *tl, uint64_t txg)
771 txg_verify(tl->tl_spa, txg);
772 return (tl->tl_head[txg & TXG_MASK] == NULL);
783 txg_all_lists_empty(txg_list_t *tl)
786 if (!txg_list_empty(tl, i)) {
798 txg_list_add(txg_list_t *tl, void *p, uint64_t txg)
801 txg_node_t *tn = (txg_node_t *)((char *)p + tl->tl_offset);
804 txg_verify(tl->tl_spa, txg);
805 mutex_enter(&tl->tl_lock);
809 tn->tn_next[t] = tl->tl_head[t];
810 tl->tl_head[t] = tn;
812 mutex_exit(&tl->tl_lock);
823 txg_list_add_tail(txg_list_t *tl, void *p, uint64_t txg)
826 txg_node_t *tn = (txg_node_t *)((char *)p + tl->tl_offset);
829 txg_verify(tl->tl_spa, txg);
830 mutex_enter(&tl->tl_lock);
835 for (tp = &tl->tl_head[t]; *tp != NULL; tp = &(*tp)->tn_next[t])
842 mutex_exit(&tl->tl_lock);
851 txg_list_remove(txg_list_t *tl, uint64_t txg)
857 txg_verify(tl->tl_spa, txg);
858 mutex_enter(&tl->tl_lock);
859 if ((tn = tl->tl_head[t]) != NULL) {
862 p = (char *)tn - tl->tl_offset;
863 tl->tl_head[t] = tn->tn_next[t];
867 mutex_exit(&tl->tl_lock);
876 txg_list_remove_this(txg_list_t *tl, void *p, uint64_t txg)
881 txg_verify(tl->tl_spa, txg);
882 mutex_enter(&tl->tl_lock);
884 for (tp = &tl->tl_head[t]; (tn = *tp) != NULL; tp = &tn->tn_next[t]) {
885 if ((char *)tn - tl->tl_offset == p) {
889 mutex_exit(&tl->tl_lock);
894 mutex_exit(&tl->tl_lock);
900 txg_list_member(txg_list_t *tl, void *p, uint64_t txg)
903 txg_node_t *tn = (txg_node_t *)((char *)p + tl->tl_offset);
905 txg_verify(tl->tl_spa, txg);
913 txg_list_head(txg_list_t *tl, uint64_t txg)
916 txg_node_t *tn = tl->tl_head[t];
918 txg_verify(tl->tl_spa, txg);
919 return (tn == NULL ? NULL : (char *)tn - tl->tl_offset);
923 txg_list_next(txg_list_t *tl, void *p, uint64_t txg)
926 txg_node_t *tn = (txg_node_t *)((char *)p + tl->tl_offset);
928 txg_verify(tl->tl_spa, txg);
931 return (tn == NULL ? NULL : (char *)tn - tl->tl_offset);