Lines Matching refs:ib

132 	struct idal_buffer *ib;  in idal_buffer_alloc()  local
137 ib = kmalloc(struct_size(ib, data, nr_ptrs), GFP_DMA | GFP_KERNEL); in idal_buffer_alloc()
138 if (ib == NULL) in idal_buffer_alloc()
140 ib->size = size; in idal_buffer_alloc()
141 ib->page_order = page_order; in idal_buffer_alloc()
144 ib->data[i] = ib->data[i-1] + IDA_BLOCK_SIZE; in idal_buffer_alloc()
147 ib->data[i] = (void *) in idal_buffer_alloc()
149 if (ib->data[i] != NULL) in idal_buffer_alloc()
154 free_pages((unsigned long) ib->data[i], in idal_buffer_alloc()
155 ib->page_order); in idal_buffer_alloc()
157 kfree(ib); in idal_buffer_alloc()
160 return ib; in idal_buffer_alloc()
167 idal_buffer_free(struct idal_buffer *ib) in idal_buffer_free() argument
171 nr_ptrs = (ib->size + IDA_BLOCK_SIZE - 1) >> IDA_SIZE_LOG; in idal_buffer_free()
172 nr_chunks = (4096 << ib->page_order) >> IDA_SIZE_LOG; in idal_buffer_free()
174 free_pages((unsigned long) ib->data[i], ib->page_order); in idal_buffer_free()
175 kfree(ib); in idal_buffer_free()
182 __idal_buffer_is_needed(struct idal_buffer *ib) in __idal_buffer_is_needed() argument
184 return ib->size > (4096ul << ib->page_order) || in __idal_buffer_is_needed()
185 idal_is_needed(ib->data[0], ib->size); in __idal_buffer_is_needed()
192 idal_buffer_set_cda(struct idal_buffer *ib, struct ccw1 *ccw) in idal_buffer_set_cda() argument
194 if (__idal_buffer_is_needed(ib)) { in idal_buffer_set_cda()
196 ccw->cda = (u32)(addr_t) ib->data; in idal_buffer_set_cda()
200 ccw->cda = (u32)(addr_t) ib->data[0]; in idal_buffer_set_cda()
201 ccw->count = ib->size; in idal_buffer_set_cda()
208 idal_buffer_to_user(struct idal_buffer *ib, void __user *to, size_t count) in idal_buffer_to_user() argument
213 BUG_ON(count > ib->size); in idal_buffer_to_user()
215 left = copy_to_user(to, ib->data[i], IDA_BLOCK_SIZE); in idal_buffer_to_user()
221 return copy_to_user(to, ib->data[i], count); in idal_buffer_to_user()
228 idal_buffer_from_user(struct idal_buffer *ib, const void __user *from, size_t count) in idal_buffer_from_user() argument
233 BUG_ON(count > ib->size); in idal_buffer_from_user()
235 left = copy_from_user(ib->data[i], from, IDA_BLOCK_SIZE); in idal_buffer_from_user()
241 return copy_from_user(ib->data[i], from, count); in idal_buffer_from_user()