Lines Matching defs:ib
139 struct idal_buffer *ib;
144 ib = kmalloc(sizeof(struct idal_buffer) + nr_ptrs*sizeof(void *),
146 if (ib == NULL)
148 ib->size = size;
149 ib->page_order = page_order;
152 ib->data[i] = ib->data[i-1] + IDA_BLOCK_SIZE;
155 ib->data[i] = (void *)
157 if (ib->data[i] != NULL)
162 free_pages((unsigned long) ib->data[i],
163 ib->page_order);
165 kfree(ib);
168 return ib;
175 idal_buffer_free(struct idal_buffer *ib)
179 nr_ptrs = (ib->size + IDA_BLOCK_SIZE - 1) >> IDA_SIZE_LOG;
180 nr_chunks = (4096 << ib->page_order) >> IDA_SIZE_LOG;
182 free_pages((unsigned long) ib->data[i], ib->page_order);
183 kfree(ib);
190 __idal_buffer_is_needed(struct idal_buffer *ib)
193 return ib->size > (4096ul << ib->page_order) ||
194 idal_is_needed(ib->data[0], ib->size);
196 return ib->size > (4096ul << ib->page_order);
204 idal_buffer_set_cda(struct idal_buffer *ib, struct ccw1 *ccw)
206 if (__idal_buffer_is_needed(ib)) {
208 ccw->cda = (u32)(addr_t) ib->data;
212 ccw->cda = (u32)(addr_t) ib->data[0];
213 ccw->count = ib->size;
220 idal_buffer_to_user(struct idal_buffer *ib, void __user *to, size_t count)
225 BUG_ON(count > ib->size);
227 left = copy_to_user(to, ib->data[i], IDA_BLOCK_SIZE);
233 return copy_to_user(to, ib->data[i], count);
240 idal_buffer_from_user(struct idal_buffer *ib, const void __user *from, size_t count)
245 BUG_ON(count > ib->size);
247 left = copy_from_user(ib->data[i], from, IDA_BLOCK_SIZE);
253 return copy_from_user(ib->data[i], from, count);