Lines Matching defs:rb

23 	struct ishtp_cl_rb *rb;
28 rb = ishtp_io_rb_init(cl);
29 if (!rb) {
33 ret = ishtp_io_rb_alloc_buf(rb, len);
37 list_add_tail(&rb->list, &cl->free_rb_list.list);
99 struct ishtp_cl_rb *rb;
105 rb = list_entry(cl->free_rb_list.list.next, struct ishtp_cl_rb,
107 list_del(&rb->list);
108 kfree(rb->buffer.data);
109 kfree(rb);
115 rb = list_entry(cl->in_process_list.list.next,
117 list_del(&rb->list);
118 kfree(rb->buffer.data);
119 kfree(rb);
161 * @rb: IO request block
165 void ishtp_io_rb_free(struct ishtp_cl_rb *rb)
167 if (rb == NULL)
170 kfree(rb->buffer.data);
171 kfree(rb);
184 struct ishtp_cl_rb *rb;
186 rb = kzalloc(sizeof(struct ishtp_cl_rb), GFP_KERNEL);
187 if (!rb)
190 INIT_LIST_HEAD(&rb->list);
191 rb->cl = cl;
192 rb->buf_idx = 0;
193 return rb;
198 * @rb: IO request block
205 int ishtp_io_rb_alloc_buf(struct ishtp_cl_rb *rb, size_t length)
207 if (!rb)
213 rb->buffer.data = kmalloc(length, GFP_KERNEL);
214 if (!rb->buffer.data)
217 rb->buffer.size = length;
223 * @rb: IO request block
225 * Re-append rb to its client's free list and send flow control if needed
229 int ishtp_cl_io_rb_recycle(struct ishtp_cl_rb *rb)
235 if (!rb || !rb->cl)
238 cl = rb->cl;
240 list_add_tail(&rb->list, &cl->free_rb_list.list);
276 * ishtp_cl_rx_get_rb() -Get a rb from client device rx buffer list
279 * Check client device in-processing buffer list and get a rb from it.
281 * Return: rb pointer if buffer list isn't empty else NULL
286 struct ishtp_cl_rb *rb;
289 rb = list_first_entry_or_null(&cl->in_process_list.list,
291 if (rb)
292 list_del_init(&rb->list);
295 return rb;