Lines Matching refs:qpair

2426 static void qp_lock(const struct vmci_qp *qpair)  in qp_lock()  argument
2428 qp_acquire_queue_mutex(qpair->produce_q); in qp_lock()
2435 static void qp_unlock(const struct vmci_qp *qpair) in qp_unlock() argument
2437 qp_release_queue_mutex(qpair->produce_q); in qp_unlock()
2467 static int qp_get_queue_headers(const struct vmci_qp *qpair, in qp_get_queue_headers() argument
2473 result = qp_map_queue_headers(qpair->produce_q, qpair->consume_q); in qp_get_queue_headers()
2475 *produce_q_header = qpair->produce_q->q_header; in qp_get_queue_headers()
2476 *consume_q_header = qpair->consume_q->q_header; in qp_get_queue_headers()
2477 } else if (qpair->produce_q->saved_header && in qp_get_queue_headers()
2478 qpair->consume_q->saved_header) { in qp_get_queue_headers()
2479 *produce_q_header = qpair->produce_q->saved_header; in qp_get_queue_headers()
2480 *consume_q_header = qpair->consume_q->saved_header; in qp_get_queue_headers()
2494 struct vmci_qp *qpair = (struct vmci_qp *)client_data; in qp_wakeup_cb() local
2496 qp_lock(qpair); in qp_wakeup_cb()
2497 while (qpair->blocked > 0) { in qp_wakeup_cb()
2498 qpair->blocked--; in qp_wakeup_cb()
2499 qpair->generation++; in qp_wakeup_cb()
2500 wake_up(&qpair->event); in qp_wakeup_cb()
2502 qp_unlock(qpair); in qp_wakeup_cb()
2512 static bool qp_wait_for_ready_queue(struct vmci_qp *qpair) in qp_wait_for_ready_queue() argument
2516 qpair->blocked++; in qp_wait_for_ready_queue()
2517 generation = qpair->generation; in qp_wait_for_ready_queue()
2518 qp_unlock(qpair); in qp_wait_for_ready_queue()
2519 wait_event(qpair->event, generation != qpair->generation); in qp_wait_for_ready_queue()
2520 qp_lock(qpair); in qp_wait_for_ready_queue()
2664 int vmci_qpair_alloc(struct vmci_qp **qpair, in vmci_qpair_alloc() argument
2753 *qpair = my_qpair; in vmci_qpair_alloc()
2768 int vmci_qpair_detach(struct vmci_qp **qpair) in vmci_qpair_detach() argument
2773 if (!qpair || !(*qpair)) in vmci_qpair_detach()
2776 old_qpair = *qpair; in vmci_qpair_detach()
2793 *qpair = NULL; in vmci_qpair_detach()
2808 int vmci_qpair_get_produce_indexes(const struct vmci_qp *qpair, in vmci_qpair_get_produce_indexes() argument
2816 if (!qpair) in vmci_qpair_get_produce_indexes()
2819 qp_lock(qpair); in vmci_qpair_get_produce_indexes()
2821 qp_get_queue_headers(qpair, &produce_q_header, &consume_q_header); in vmci_qpair_get_produce_indexes()
2825 qp_unlock(qpair); in vmci_qpair_get_produce_indexes()
2828 ((producer_tail && *producer_tail >= qpair->produce_q_size) || in vmci_qpair_get_produce_indexes()
2829 (consumer_head && *consumer_head >= qpair->produce_q_size))) in vmci_qpair_get_produce_indexes()
2845 int vmci_qpair_get_consume_indexes(const struct vmci_qp *qpair, in vmci_qpair_get_consume_indexes() argument
2853 if (!qpair) in vmci_qpair_get_consume_indexes()
2856 qp_lock(qpair); in vmci_qpair_get_consume_indexes()
2858 qp_get_queue_headers(qpair, &produce_q_header, &consume_q_header); in vmci_qpair_get_consume_indexes()
2862 qp_unlock(qpair); in vmci_qpair_get_consume_indexes()
2865 ((consumer_tail && *consumer_tail >= qpair->consume_q_size) || in vmci_qpair_get_consume_indexes()
2866 (producer_head && *producer_head >= qpair->consume_q_size))) in vmci_qpair_get_consume_indexes()
2882 s64 vmci_qpair_produce_free_space(const struct vmci_qp *qpair) in vmci_qpair_produce_free_space() argument
2888 if (!qpair) in vmci_qpair_produce_free_space()
2891 qp_lock(qpair); in vmci_qpair_produce_free_space()
2893 qp_get_queue_headers(qpair, &produce_q_header, &consume_q_header); in vmci_qpair_produce_free_space()
2897 qpair->produce_q_size); in vmci_qpair_produce_free_space()
2901 qp_unlock(qpair); in vmci_qpair_produce_free_space()
2916 s64 vmci_qpair_consume_free_space(const struct vmci_qp *qpair) in vmci_qpair_consume_free_space() argument
2922 if (!qpair) in vmci_qpair_consume_free_space()
2925 qp_lock(qpair); in vmci_qpair_consume_free_space()
2927 qp_get_queue_headers(qpair, &produce_q_header, &consume_q_header); in vmci_qpair_consume_free_space()
2931 qpair->consume_q_size); in vmci_qpair_consume_free_space()
2935 qp_unlock(qpair); in vmci_qpair_consume_free_space()
2951 s64 vmci_qpair_produce_buf_ready(const struct vmci_qp *qpair) in vmci_qpair_produce_buf_ready() argument
2957 if (!qpair) in vmci_qpair_produce_buf_ready()
2960 qp_lock(qpair); in vmci_qpair_produce_buf_ready()
2962 qp_get_queue_headers(qpair, &produce_q_header, &consume_q_header); in vmci_qpair_produce_buf_ready()
2966 qpair->produce_q_size); in vmci_qpair_produce_buf_ready()
2970 qp_unlock(qpair); in vmci_qpair_produce_buf_ready()
2986 s64 vmci_qpair_consume_buf_ready(const struct vmci_qp *qpair) in vmci_qpair_consume_buf_ready() argument
2992 if (!qpair) in vmci_qpair_consume_buf_ready()
2995 qp_lock(qpair); in vmci_qpair_consume_buf_ready()
2997 qp_get_queue_headers(qpair, &produce_q_header, &consume_q_header); in vmci_qpair_consume_buf_ready()
3001 qpair->consume_q_size); in vmci_qpair_consume_buf_ready()
3005 qp_unlock(qpair); in vmci_qpair_consume_buf_ready()
3021 ssize_t vmci_qpair_enqueue(struct vmci_qp *qpair, in vmci_qpair_enqueue() argument
3030 if (!qpair || !buf) in vmci_qpair_enqueue()
3035 qp_lock(qpair); in vmci_qpair_enqueue()
3038 result = qp_enqueue_locked(qpair->produce_q, in vmci_qpair_enqueue()
3039 qpair->consume_q, in vmci_qpair_enqueue()
3040 qpair->produce_q_size, in vmci_qpair_enqueue()
3044 !qp_wait_for_ready_queue(qpair)) in vmci_qpair_enqueue()
3049 qp_unlock(qpair); in vmci_qpair_enqueue()
3065 ssize_t vmci_qpair_dequeue(struct vmci_qp *qpair, in vmci_qpair_dequeue() argument
3074 if (!qpair || !buf) in vmci_qpair_dequeue()
3079 qp_lock(qpair); in vmci_qpair_dequeue()
3082 result = qp_dequeue_locked(qpair->produce_q, in vmci_qpair_dequeue()
3083 qpair->consume_q, in vmci_qpair_dequeue()
3084 qpair->consume_q_size, in vmci_qpair_dequeue()
3088 !qp_wait_for_ready_queue(qpair)) in vmci_qpair_dequeue()
3093 qp_unlock(qpair); in vmci_qpair_dequeue()
3110 ssize_t vmci_qpair_peek(struct vmci_qp *qpair, in vmci_qpair_peek() argument
3119 if (!qpair || !buf) in vmci_qpair_peek()
3124 qp_lock(qpair); in vmci_qpair_peek()
3127 result = qp_dequeue_locked(qpair->produce_q, in vmci_qpair_peek()
3128 qpair->consume_q, in vmci_qpair_peek()
3129 qpair->consume_q_size, in vmci_qpair_peek()
3133 !qp_wait_for_ready_queue(qpair)) in vmci_qpair_peek()
3138 qp_unlock(qpair); in vmci_qpair_peek()
3155 ssize_t vmci_qpair_enquev(struct vmci_qp *qpair, in vmci_qpair_enquev() argument
3162 if (!qpair) in vmci_qpair_enquev()
3165 qp_lock(qpair); in vmci_qpair_enquev()
3168 result = qp_enqueue_locked(qpair->produce_q, in vmci_qpair_enquev()
3169 qpair->consume_q, in vmci_qpair_enquev()
3170 qpair->produce_q_size, in vmci_qpair_enquev()
3174 !qp_wait_for_ready_queue(qpair)) in vmci_qpair_enquev()
3179 qp_unlock(qpair); in vmci_qpair_enquev()
3196 ssize_t vmci_qpair_dequev(struct vmci_qp *qpair, in vmci_qpair_dequev() argument
3203 if (!qpair) in vmci_qpair_dequev()
3206 qp_lock(qpair); in vmci_qpair_dequev()
3209 result = qp_dequeue_locked(qpair->produce_q, in vmci_qpair_dequev()
3210 qpair->consume_q, in vmci_qpair_dequev()
3211 qpair->consume_q_size, in vmci_qpair_dequev()
3215 !qp_wait_for_ready_queue(qpair)) in vmci_qpair_dequev()
3220 qp_unlock(qpair); in vmci_qpair_dequev()
3238 ssize_t vmci_qpair_peekv(struct vmci_qp *qpair, in vmci_qpair_peekv() argument
3245 if (!qpair) in vmci_qpair_peekv()
3248 qp_lock(qpair); in vmci_qpair_peekv()
3251 result = qp_dequeue_locked(qpair->produce_q, in vmci_qpair_peekv()
3252 qpair->consume_q, in vmci_qpair_peekv()
3253 qpair->consume_q_size, in vmci_qpair_peekv()
3257 !qp_wait_for_ready_queue(qpair)) in vmci_qpair_peekv()
3262 qp_unlock(qpair); in vmci_qpair_peekv()