Lines Matching refs:umem
32 struct ib_umem umem;
43 static inline struct ib_umem_dmabuf *to_ib_umem_dmabuf(struct ib_umem *umem)
45 return container_of(umem, struct ib_umem_dmabuf, umem);
48 /* Returns the offset of the umem start relative to the first page. */
49 static inline int ib_umem_offset(struct ib_umem *umem)
51 return umem->address & ~PAGE_MASK;
54 static inline unsigned long ib_umem_dma_offset(struct ib_umem *umem,
57 return (sg_dma_address(umem->sgt_append.sgt.sgl) + ib_umem_offset(umem)) &
61 static inline size_t ib_umem_num_dma_blocks(struct ib_umem *umem,
64 return (size_t)((ALIGN(umem->iova + umem->length, pgsz) -
65 ALIGN_DOWN(umem->iova, pgsz))) /
69 static inline size_t ib_umem_num_pages(struct ib_umem *umem)
71 return ib_umem_num_dma_blocks(umem, PAGE_SIZE);
75 struct ib_umem *umem,
78 __rdma_block_iter_start(biter, umem->sgt_append.sgt.sgl,
79 umem->sgt_append.sgt.nents, pgsz);
80 biter->__sg_advance = ib_umem_offset(umem) & ~(pgsz - 1);
81 biter->__sg_numblocks = ib_umem_num_dma_blocks(umem, pgsz);
90 * rdma_umem_for_each_dma_block - iterate over contiguous DMA blocks of the umem
91 * @umem: umem to iterate over
96 * ALIGN_DOWN(umem->address, pgsz) to ALIGN(umem->address + umem->length, pgsz)
100 #define rdma_umem_for_each_dma_block(umem, biter, pgsz) \
101 for (__rdma_umem_block_iter_start(biter, umem, pgsz); \
108 void ib_umem_release(struct ib_umem *umem);
109 int ib_umem_copy_from(void *dst, struct ib_umem *umem, size_t offset,
111 unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,
118 * @umem: umem struct
133 static inline unsigned long ib_umem_find_best_pgoff(struct ib_umem *umem,
137 struct scatterlist *sg = umem->sgt_append.sgt.sgl;
140 dma_addr = sg_dma_address(sg) + (umem->address & ~PAGE_MASK);
141 return ib_umem_find_best_pgsz(umem, pgsz_bitmap,
167 static inline void ib_umem_release(struct ib_umem *umem) { }
168 static inline int ib_umem_copy_from(void *dst, struct ib_umem *umem, size_t offset,
172 static inline unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,
178 static inline unsigned long ib_umem_find_best_pgoff(struct ib_umem *umem,