Lines Matching +full:guest +full:- +full:side

1 /*-
4 * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
12 * as a whole. This is simpler and less error-prone, and allows for future
43 *------------------------------------------------------------------------------
45 * vmci_queue_add_producer_tail --
53 * Side effects:
56 *------------------------------------------------------------------------------
64 vmci_queue_header_add_producer_tail(queue->q_header, add, queue_size); in vmci_queue_add_producer_tail()
69 *------------------------------------------------------------------------------
71 * vmci_queue_add_consumer_head --
79 * Side effects:
82 *------------------------------------------------------------------------------
90 vmci_queue_header_add_consumer_head(queue->q_header, add, queue_size); in vmci_queue_add_consumer_head()
95 *------------------------------------------------------------------------------
97 * vmci_qpair_get_queue_headers --
106 * Side effects:
109 *------------------------------------------------------------------------------
118 ASSERT((qpair->produce_q != NULL) && (qpair->consume_q != NULL)); in vmci_qpair_get_queue_headers()
119 *produce_q_header = qpair->produce_q->q_header; in vmci_qpair_get_queue_headers()
120 *consume_q_header = qpair->consume_q->q_header; in vmci_qpair_get_queue_headers()
124 *------------------------------------------------------------------------------
126 * vmci_qpair_alloc --
137 * Side effects:
140 *------------------------------------------------------------------------------
154 * a guest, we avoid unnecessarily allocating a lot of memory. Also, we in vmci_qpair_alloc()
175 my_qpair->produce_q_size = produce_q_size; in vmci_qpair_alloc()
176 my_qpair->consume_q_size = consume_q_size; in vmci_qpair_alloc()
177 my_qpair->peer = peer; in vmci_qpair_alloc()
178 my_qpair->flags = flags; in vmci_qpair_alloc()
179 my_qpair->priv_flags = priv_flags; in vmci_qpair_alloc()
181 retval = vmci_queue_pair_alloc(handle, &my_qpair->produce_q, in vmci_qpair_alloc()
182 my_qpair->produce_q_size, &my_qpair->consume_q, in vmci_qpair_alloc()
183 my_qpair->consume_q_size, my_qpair->peer, my_qpair->flags, in vmci_qpair_alloc()
184 my_qpair->priv_flags); in vmci_qpair_alloc()
192 my_qpair->handle = *handle; in vmci_qpair_alloc()
198 *------------------------------------------------------------------------------
200 * vmci_qpair_detach --
209 * Side effects:
212 *------------------------------------------------------------------------------
225 result = vmci_queue_pair_detach(old_qpair->handle); in vmci_qpair_detach()
228 * The guest can fail to detach for a number of reasons, and if it does in vmci_qpair_detach()
234 if (old_qpair->flags & VMCI_QPFLAG_LOCAL) in vmci_qpair_detach()
235 vmci_destroy_event(&old_qpair->event); in vmci_qpair_detach()
244 *------------------------------------------------------------------------------
246 * vmci_qpair_get_produce_indexes --
255 * Side effects:
258 *------------------------------------------------------------------------------
276 if ((producer_tail && *producer_tail >= qpair->produce_q_size) || in vmci_qpair_get_produce_indexes()
277 (consumer_head && *consumer_head >= qpair->produce_q_size)) in vmci_qpair_get_produce_indexes()
284 *------------------------------------------------------------------------------
286 * vmci_qpair_get_consume_indexes --
295 * Side effects:
298 *------------------------------------------------------------------------------
316 if ((consumer_tail && *consumer_tail >= qpair->consume_q_size) || in vmci_qpair_get_consume_indexes()
317 (producer_head && *producer_head >= qpair->consume_q_size)) in vmci_qpair_get_consume_indexes()
324 *------------------------------------------------------------------------------
326 * vmci_qpair_produce_free_space --
337 * Side effects:
340 *------------------------------------------------------------------------------
356 qpair->produce_q_size); in vmci_qpair_produce_free_space()
362 *------------------------------------------------------------------------------
364 * vmci_qpair_consume_free_space --
375 * Side effects:
378 *------------------------------------------------------------------------------
394 qpair->consume_q_size); in vmci_qpair_consume_free_space()
400 *------------------------------------------------------------------------------
402 * vmci_qpair_produce_buf_ready --
413 * Side effects:
416 *------------------------------------------------------------------------------
432 qpair->produce_q_size); in vmci_qpair_produce_buf_ready()
438 *------------------------------------------------------------------------------
440 * vmci_qpair_consume_buf_ready --
451 * Side effects:
454 *------------------------------------------------------------------------------
470 qpair->consume_q_size); in vmci_qpair_consume_buf_ready()
476 *------------------------------------------------------------------------------
478 * enqueue --
492 * Side effects:
495 *------------------------------------------------------------------------------
510 free_space = vmci_queue_header_free_space(produce_q->q_header, in enqueue()
511 consume_q->q_header, in enqueue()
520 tail = vmci_queue_header_producer_tail(produce_q->q_header); in enqueue()
527 const size_t tmp = (size_t)(produce_q_size - tail); in enqueue()
533 written - tmp, buf_type, can_block); in enqueue()
547 *------------------------------------------------------------------------------
549 * dequeue --
563 * Side effects:
566 *------------------------------------------------------------------------------
583 buf_ready = vmci_queue_header_buf_ready(consume_q->q_header, in dequeue()
584 produce_q->q_header, consume_q_size); in dequeue()
591 head = vmci_queue_header_consumer_head(produce_q->q_header); in dequeue()
598 const size_t tmp = (size_t)(consume_q_size - head); in dequeue()
604 read - tmp, buf_type, can_block); in dequeue()
621 *------------------------------------------------------------------------------
623 * vmci_qpair_enqueue --
631 * Side effects:
634 *------------------------------------------------------------------------------
646 result = enqueue(qpair->produce_q, qpair->consume_q, in vmci_qpair_enqueue()
647 qpair->produce_q_size, buf, buf_size, buf_type, in vmci_qpair_enqueue()
648 qpair->flags & VMCI_QPFLAG_LOCAL? in vmci_qpair_enqueue()
650 !(qpair->flags & VMCI_QPFLAG_NONBLOCK)); in vmci_qpair_enqueue()
656 *------------------------------------------------------------------------------
658 * vmci_qpair_dequeue --
666 * Side effects:
669 *------------------------------------------------------------------------------
681 result = dequeue(qpair->produce_q, qpair->consume_q, in vmci_qpair_dequeue()
682 qpair->consume_q_size, buf, buf_size, buf_type, in vmci_qpair_dequeue()
683 qpair->flags & VMCI_QPFLAG_LOCAL? in vmci_qpair_dequeue()
685 !(qpair->flags & VMCI_QPFLAG_NONBLOCK)); in vmci_qpair_dequeue()
691 *------------------------------------------------------------------------------
693 * vmci_qpair_peek --
702 * Side effects:
705 *------------------------------------------------------------------------------
717 result = dequeue(qpair->produce_q, qpair->consume_q, in vmci_qpair_peek()
718 qpair->consume_q_size, buf, buf_size, buf_type, in vmci_qpair_peek()
719 qpair->flags & VMCI_QPFLAG_LOCAL? in vmci_qpair_peek()
721 !(qpair->flags & VMCI_QPFLAG_NONBLOCK)); in vmci_qpair_peek()
727 *------------------------------------------------------------------------------
729 * vmci_qpair_enquev --
737 * Side effects:
740 *------------------------------------------------------------------------------
752 result = enqueue(qpair->produce_q, qpair->consume_q, in vmci_qpair_enquev()
753 qpair->produce_q_size, iov, iov_size, buf_type, in vmci_qpair_enquev()
754 qpair->flags & VMCI_QPFLAG_LOCAL? in vmci_qpair_enquev()
756 !(qpair->flags & VMCI_QPFLAG_NONBLOCK)); in vmci_qpair_enquev()
762 *------------------------------------------------------------------------------
764 * vmci_qpair_dequev --
772 * Side effects:
775 *------------------------------------------------------------------------------
787 result = dequeue(qpair->produce_q, qpair->consume_q, in vmci_qpair_dequev()
788 qpair->consume_q_size, iov, iov_size, buf_type, in vmci_qpair_dequev()
789 qpair->flags & VMCI_QPFLAG_LOCAL? in vmci_qpair_dequev()
791 !(qpair->flags & VMCI_QPFLAG_NONBLOCK)); in vmci_qpair_dequev()
797 *------------------------------------------------------------------------------
799 * vmci_qpair_peekv --
808 * Side effects:
811 *------------------------------------------------------------------------------
823 result = dequeue(qpair->produce_q, qpair->consume_q, in vmci_qpair_peekv()
824 qpair->consume_q_size, iov, iov_size, buf_type, in vmci_qpair_peekv()
825 qpair->flags & VMCI_QPFLAG_LOCAL? in vmci_qpair_peekv()
827 !(qpair->flags & VMCI_QPFLAG_NONBLOCK)); in vmci_qpair_peekv()