Lines Matching refs:ib
119 struct idal_buffer *ib; in idal_buffer_alloc() local
124 ib = kmalloc(sizeof(struct idal_buffer) + nr_ptrs*sizeof(void *), in idal_buffer_alloc()
126 if (ib == NULL) in idal_buffer_alloc()
128 ib->size = size; in idal_buffer_alloc()
129 ib->page_order = page_order; in idal_buffer_alloc()
132 ib->data[i] = ib->data[i-1] + IDA_BLOCK_SIZE; in idal_buffer_alloc()
135 ib->data[i] = (void *) in idal_buffer_alloc()
137 if (ib->data[i] != NULL) in idal_buffer_alloc()
142 free_pages((unsigned long) ib->data[i], in idal_buffer_alloc()
143 ib->page_order); in idal_buffer_alloc()
145 kfree(ib); in idal_buffer_alloc()
148 return ib; in idal_buffer_alloc()
155 idal_buffer_free(struct idal_buffer *ib) in idal_buffer_free() argument
159 nr_ptrs = (ib->size + IDA_BLOCK_SIZE - 1) >> IDA_SIZE_LOG; in idal_buffer_free()
160 nr_chunks = (4096 << ib->page_order) >> IDA_SIZE_LOG; in idal_buffer_free()
162 free_pages((unsigned long) ib->data[i], ib->page_order); in idal_buffer_free()
163 kfree(ib); in idal_buffer_free()
170 __idal_buffer_is_needed(struct idal_buffer *ib) in __idal_buffer_is_needed() argument
172 return ib->size > (4096ul << ib->page_order) || in __idal_buffer_is_needed()
173 idal_is_needed(ib->data[0], ib->size); in __idal_buffer_is_needed()
180 idal_buffer_set_cda(struct idal_buffer *ib, struct ccw1 *ccw) in idal_buffer_set_cda() argument
182 if (__idal_buffer_is_needed(ib)) { in idal_buffer_set_cda()
184 ccw->cda = (u32)(addr_t) ib->data; in idal_buffer_set_cda()
188 ccw->cda = (u32)(addr_t) ib->data[0]; in idal_buffer_set_cda()
189 ccw->count = ib->size; in idal_buffer_set_cda()
196 idal_buffer_to_user(struct idal_buffer *ib, void __user *to, size_t count) in idal_buffer_to_user() argument
201 BUG_ON(count > ib->size); in idal_buffer_to_user()
203 left = copy_to_user(to, ib->data[i], IDA_BLOCK_SIZE); in idal_buffer_to_user()
209 return copy_to_user(to, ib->data[i], count); in idal_buffer_to_user()
216 idal_buffer_from_user(struct idal_buffer *ib, const void __user *from, size_t count) in idal_buffer_from_user() argument
221 BUG_ON(count > ib->size); in idal_buffer_from_user()
223 left = copy_from_user(ib->data[i], from, IDA_BLOCK_SIZE); in idal_buffer_from_user()
229 return copy_from_user(ib->data[i], from, count); in idal_buffer_from_user()