Lines Matching defs:iter
97 struct mlx4_icm_iter *iter)
99 iter->icm = icm;
100 iter->chunk = list_empty(&icm->chunk_list) ?
103 iter->page_idx = 0;
106 static inline int mlx4_icm_last(struct mlx4_icm_iter *iter)
108 return !iter->chunk;
111 static inline void mlx4_icm_next(struct mlx4_icm_iter *iter)
113 if (++iter->page_idx >= iter->chunk->nsg) {
114 if (iter->chunk->list.next == &iter->icm->chunk_list) {
115 iter->chunk = NULL;
119 iter->chunk = list_entry(iter->chunk->list.next,
121 iter->page_idx = 0;
125 static inline dma_addr_t mlx4_icm_addr(struct mlx4_icm_iter *iter)
127 if (iter->chunk->coherent)
128 return iter->chunk->buf[iter->page_idx].dma_addr;
130 return sg_dma_address(&iter->chunk->sg[iter->page_idx]);
133 static inline unsigned long mlx4_icm_size(struct mlx4_icm_iter *iter)
135 if (iter->chunk->coherent)
136 return iter->chunk->buf[iter->page_idx].size;
138 return sg_dma_len(&iter->chunk->sg[iter->page_idx]);