Lines Matching refs:vq

158 int camkes_virtqueue_driver_send_buffer(virtqueue_driver_t *vq, void *buffer, size_t size)
160 uintptr_t base_offset = (uintptr_t)(((struct vq_buf_alloc *)vq->cookie)->buffer);
165 if (!virtqueue_add_available_buf(vq, &handle, (void *)buf_offset, size, VQ_RW)) {
172 static int chain_vq_buf(virtqueue_driver_t *vq, virtqueue_ring_object_t *handle,
175 struct vq_buf_alloc *allocator = vq->cookie;
178 if (!virtqueue_add_available_buf(vq, handle, (void *)offset, size, VQ_RW)) {
185 int camkes_virtqueue_driver_scatter_send_buffer(virtqueue_driver_t *vq, void *buffer, size_t size)
196 if (camkes_virtqueue_buffer_alloc(vq, &vq_buf, to_send)) {
203 if (chain_vq_buf(vq, &handle, vq_buf, to_send)) {
211 int camkes_virtqueue_driver_gather_copy_buffer(virtqueue_driver_t *vq, virtqueue_ring_object_t *handle,
219 while (camkes_virtqueue_driver_gather_buffer(vq, handle, &used_buf, &buf_size, &flag) == 0) {
226 camkes_virtqueue_buffer_free(vq, used_buf);
231 int camkes_virtqueue_device_scatter_copy_buffer(virtqueue_device_t *vq, virtqueue_ring_object_t *handle,
242 if (camkes_virtqueue_device_gather_buffer(vq, handle, &avail_buf, &buf_size, &flag)) {
243 virtqueue_add_used_buf(vq, handle, sent);
250 virtqueue_add_used_buf(vq, handle, sent);
254 int camkes_virtqueue_device_gather_copy_buffer(virtqueue_device_t *vq, virtqueue_ring_object_t *handle,
265 if (camkes_virtqueue_device_gather_buffer(vq, handle, &avail_buf, &buf_size, &flag)) {
266 virtqueue_add_used_buf(vq, handle, sent);
273 virtqueue_add_used_buf(vq, handle, sent);
277 int camkes_virtqueue_driver_gather_buffer(virtqueue_driver_t *vq, virtqueue_ring_object_t *handle,
281 if (!virtqueue_gather_used(vq, handle, (void **)&buf_offset, size, flag)) {
284 *buffer = camkes_virtqueue_driver_offset_to_buffer(vq, (uintptr_t) buf_offset);
288 int camkes_virtqueue_device_gather_buffer(virtqueue_device_t *vq, virtqueue_ring_object_t *handle,
292 if (!virtqueue_gather_available(vq, handle, (void **)&buf_offset, size, flag)) {
295 *buffer = camkes_virtqueue_device_offset_to_buffer(vq, (uintptr_t) buf_offset);