Lines Matching defs:tl

854 txg_list_create(txg_list_t *tl, spa_t *spa, size_t offset)
858 mutex_init(&tl->tl_lock, NULL, MUTEX_DEFAULT, NULL);
860 tl->tl_offset = offset;
861 tl->tl_spa = spa;
864 tl->tl_head[t] = NULL;
868 txg_list_empty_impl(txg_list_t *tl, uint64_t txg)
870 ASSERT(MUTEX_HELD(&tl->tl_lock));
871 TXG_VERIFY(tl->tl_spa, txg);
872 return (tl->tl_head[txg & TXG_MASK] == NULL);
876 txg_list_empty(txg_list_t *tl, uint64_t txg)
878 mutex_enter(&tl->tl_lock);
879 boolean_t ret = txg_list_empty_impl(tl, txg);
880 mutex_exit(&tl->tl_lock);
886 txg_list_destroy(txg_list_t *tl)
890 mutex_enter(&tl->tl_lock);
892 ASSERT(txg_list_empty_impl(tl, t));
893 mutex_exit(&tl->tl_lock);
895 mutex_destroy(&tl->tl_lock);
905 txg_all_lists_empty(txg_list_t *tl)
909 res &= (tl->tl_head[i] == NULL);
918 txg_list_add(txg_list_t *tl, void *p, uint64_t txg)
921 txg_node_t *tn = (txg_node_t *)((char *)p + tl->tl_offset);
924 TXG_VERIFY(tl->tl_spa, txg);
925 mutex_enter(&tl->tl_lock);
929 tn->tn_next[t] = tl->tl_head[t];
930 tl->tl_head[t] = tn;
932 mutex_exit(&tl->tl_lock);
943 txg_list_add_tail(txg_list_t *tl, void *p, uint64_t txg)
946 txg_node_t *tn = (txg_node_t *)((char *)p + tl->tl_offset);
949 TXG_VERIFY(tl->tl_spa, txg);
950 mutex_enter(&tl->tl_lock);
955 for (tp = &tl->tl_head[t]; *tp != NULL; tp = &(*tp)->tn_next[t])
962 mutex_exit(&tl->tl_lock);
971 txg_list_remove(txg_list_t *tl, uint64_t txg)
977 TXG_VERIFY(tl->tl_spa, txg);
978 mutex_enter(&tl->tl_lock);
979 if ((tn = tl->tl_head[t]) != NULL) {
982 p = (char *)tn - tl->tl_offset;
983 tl->tl_head[t] = tn->tn_next[t];
987 mutex_exit(&tl->tl_lock);
996 txg_list_remove_this(txg_list_t *tl, void *p, uint64_t txg)
1001 TXG_VERIFY(tl->tl_spa, txg);
1002 mutex_enter(&tl->tl_lock);
1004 for (tp = &tl->tl_head[t]; (tn = *tp) != NULL; tp = &tn->tn_next[t]) {
1005 if ((char *)tn - tl->tl_offset == p) {
1009 mutex_exit(&tl->tl_lock);
1014 mutex_exit(&tl->tl_lock);
1020 txg_list_member(txg_list_t *tl, void *p, uint64_t txg)
1023 txg_node_t *tn = (txg_node_t *)((char *)p + tl->tl_offset);
1025 TXG_VERIFY(tl->tl_spa, txg);
1033 txg_list_head(txg_list_t *tl, uint64_t txg)
1038 mutex_enter(&tl->tl_lock);
1039 tn = tl->tl_head[t];
1040 mutex_exit(&tl->tl_lock);
1042 TXG_VERIFY(tl->tl_spa, txg);
1043 return (tn == NULL ? NULL : (char *)tn - tl->tl_offset);
1047 txg_list_next(txg_list_t *tl, void *p, uint64_t txg)
1050 txg_node_t *tn = (txg_node_t *)((char *)p + tl->tl_offset);
1052 TXG_VERIFY(tl->tl_spa, txg);
1054 mutex_enter(&tl->tl_lock);
1056 mutex_exit(&tl->tl_lock);
1058 return (tn == NULL ? NULL : (char *)tn - tl->tl_offset);