Lines Matching refs:qpair

2429 static void qp_lock(const struct vmci_qp *qpair)  in qp_lock()  argument
2431 qp_acquire_queue_mutex(qpair->produce_q); in qp_lock()
2438 static void qp_unlock(const struct vmci_qp *qpair) in qp_unlock() argument
2440 qp_release_queue_mutex(qpair->produce_q); in qp_unlock()
2470 static int qp_get_queue_headers(const struct vmci_qp *qpair, in qp_get_queue_headers() argument
2476 result = qp_map_queue_headers(qpair->produce_q, qpair->consume_q); in qp_get_queue_headers()
2478 *produce_q_header = qpair->produce_q->q_header; in qp_get_queue_headers()
2479 *consume_q_header = qpair->consume_q->q_header; in qp_get_queue_headers()
2480 } else if (qpair->produce_q->saved_header && in qp_get_queue_headers()
2481 qpair->consume_q->saved_header) { in qp_get_queue_headers()
2482 *produce_q_header = qpair->produce_q->saved_header; in qp_get_queue_headers()
2483 *consume_q_header = qpair->consume_q->saved_header; in qp_get_queue_headers()
2497 struct vmci_qp *qpair = (struct vmci_qp *)client_data; in qp_wakeup_cb() local
2499 qp_lock(qpair); in qp_wakeup_cb()
2500 while (qpair->blocked > 0) { in qp_wakeup_cb()
2501 qpair->blocked--; in qp_wakeup_cb()
2502 qpair->generation++; in qp_wakeup_cb()
2503 wake_up(&qpair->event); in qp_wakeup_cb()
2505 qp_unlock(qpair); in qp_wakeup_cb()
2515 static bool qp_wait_for_ready_queue(struct vmci_qp *qpair) in qp_wait_for_ready_queue() argument
2519 qpair->blocked++; in qp_wait_for_ready_queue()
2520 generation = qpair->generation; in qp_wait_for_ready_queue()
2521 qp_unlock(qpair); in qp_wait_for_ready_queue()
2522 wait_event(qpair->event, generation != qpair->generation); in qp_wait_for_ready_queue()
2523 qp_lock(qpair); in qp_wait_for_ready_queue()
2679 int vmci_qpair_alloc(struct vmci_qp **qpair, in vmci_qpair_alloc() argument
2767 *qpair = my_qpair; in vmci_qpair_alloc()
2782 int vmci_qpair_detach(struct vmci_qp **qpair) in vmci_qpair_detach() argument
2787 if (!qpair || !(*qpair)) in vmci_qpair_detach()
2790 old_qpair = *qpair; in vmci_qpair_detach()
2807 *qpair = NULL; in vmci_qpair_detach()
2822 int vmci_qpair_get_produce_indexes(const struct vmci_qp *qpair, in vmci_qpair_get_produce_indexes() argument
2830 if (!qpair) in vmci_qpair_get_produce_indexes()
2833 qp_lock(qpair); in vmci_qpair_get_produce_indexes()
2835 qp_get_queue_headers(qpair, &produce_q_header, &consume_q_header); in vmci_qpair_get_produce_indexes()
2839 qp_unlock(qpair); in vmci_qpair_get_produce_indexes()
2842 ((producer_tail && *producer_tail >= qpair->produce_q_size) || in vmci_qpair_get_produce_indexes()
2843 (consumer_head && *consumer_head >= qpair->produce_q_size))) in vmci_qpair_get_produce_indexes()
2859 int vmci_qpair_get_consume_indexes(const struct vmci_qp *qpair, in vmci_qpair_get_consume_indexes() argument
2867 if (!qpair) in vmci_qpair_get_consume_indexes()
2870 qp_lock(qpair); in vmci_qpair_get_consume_indexes()
2872 qp_get_queue_headers(qpair, &produce_q_header, &consume_q_header); in vmci_qpair_get_consume_indexes()
2876 qp_unlock(qpair); in vmci_qpair_get_consume_indexes()
2879 ((consumer_tail && *consumer_tail >= qpair->consume_q_size) || in vmci_qpair_get_consume_indexes()
2880 (producer_head && *producer_head >= qpair->consume_q_size))) in vmci_qpair_get_consume_indexes()
2896 s64 vmci_qpair_produce_free_space(const struct vmci_qp *qpair) in vmci_qpair_produce_free_space() argument
2902 if (!qpair) in vmci_qpair_produce_free_space()
2905 qp_lock(qpair); in vmci_qpair_produce_free_space()
2907 qp_get_queue_headers(qpair, &produce_q_header, &consume_q_header); in vmci_qpair_produce_free_space()
2911 qpair->produce_q_size); in vmci_qpair_produce_free_space()
2915 qp_unlock(qpair); in vmci_qpair_produce_free_space()
2930 s64 vmci_qpair_consume_free_space(const struct vmci_qp *qpair) in vmci_qpair_consume_free_space() argument
2936 if (!qpair) in vmci_qpair_consume_free_space()
2939 qp_lock(qpair); in vmci_qpair_consume_free_space()
2941 qp_get_queue_headers(qpair, &produce_q_header, &consume_q_header); in vmci_qpair_consume_free_space()
2945 qpair->consume_q_size); in vmci_qpair_consume_free_space()
2949 qp_unlock(qpair); in vmci_qpair_consume_free_space()
2965 s64 vmci_qpair_produce_buf_ready(const struct vmci_qp *qpair) in vmci_qpair_produce_buf_ready() argument
2971 if (!qpair) in vmci_qpair_produce_buf_ready()
2974 qp_lock(qpair); in vmci_qpair_produce_buf_ready()
2976 qp_get_queue_headers(qpair, &produce_q_header, &consume_q_header); in vmci_qpair_produce_buf_ready()
2980 qpair->produce_q_size); in vmci_qpair_produce_buf_ready()
2984 qp_unlock(qpair); in vmci_qpair_produce_buf_ready()
3000 s64 vmci_qpair_consume_buf_ready(const struct vmci_qp *qpair) in vmci_qpair_consume_buf_ready() argument
3006 if (!qpair) in vmci_qpair_consume_buf_ready()
3009 qp_lock(qpair); in vmci_qpair_consume_buf_ready()
3011 qp_get_queue_headers(qpair, &produce_q_header, &consume_q_header); in vmci_qpair_consume_buf_ready()
3015 qpair->consume_q_size); in vmci_qpair_consume_buf_ready()
3019 qp_unlock(qpair); in vmci_qpair_consume_buf_ready()
3035 ssize_t vmci_qpair_enqueue(struct vmci_qp *qpair, in vmci_qpair_enqueue() argument
3044 if (!qpair || !buf) in vmci_qpair_enqueue()
3049 qp_lock(qpair); in vmci_qpair_enqueue()
3052 result = qp_enqueue_locked(qpair->produce_q, in vmci_qpair_enqueue()
3053 qpair->consume_q, in vmci_qpair_enqueue()
3054 qpair->produce_q_size, in vmci_qpair_enqueue()
3058 !qp_wait_for_ready_queue(qpair)) in vmci_qpair_enqueue()
3063 qp_unlock(qpair); in vmci_qpair_enqueue()
3079 ssize_t vmci_qpair_dequeue(struct vmci_qp *qpair, in vmci_qpair_dequeue() argument
3088 if (!qpair || !buf) in vmci_qpair_dequeue()
3093 qp_lock(qpair); in vmci_qpair_dequeue()
3096 result = qp_dequeue_locked(qpair->produce_q, in vmci_qpair_dequeue()
3097 qpair->consume_q, in vmci_qpair_dequeue()
3098 qpair->consume_q_size, in vmci_qpair_dequeue()
3102 !qp_wait_for_ready_queue(qpair)) in vmci_qpair_dequeue()
3107 qp_unlock(qpair); in vmci_qpair_dequeue()
3124 ssize_t vmci_qpair_peek(struct vmci_qp *qpair, in vmci_qpair_peek() argument
3133 if (!qpair || !buf) in vmci_qpair_peek()
3138 qp_lock(qpair); in vmci_qpair_peek()
3141 result = qp_dequeue_locked(qpair->produce_q, in vmci_qpair_peek()
3142 qpair->consume_q, in vmci_qpair_peek()
3143 qpair->consume_q_size, in vmci_qpair_peek()
3147 !qp_wait_for_ready_queue(qpair)) in vmci_qpair_peek()
3152 qp_unlock(qpair); in vmci_qpair_peek()
3169 ssize_t vmci_qpair_enquev(struct vmci_qp *qpair, in vmci_qpair_enquev() argument
3176 if (!qpair) in vmci_qpair_enquev()
3179 qp_lock(qpair); in vmci_qpair_enquev()
3182 result = qp_enqueue_locked(qpair->produce_q, in vmci_qpair_enquev()
3183 qpair->consume_q, in vmci_qpair_enquev()
3184 qpair->produce_q_size, in vmci_qpair_enquev()
3188 !qp_wait_for_ready_queue(qpair)) in vmci_qpair_enquev()
3193 qp_unlock(qpair); in vmci_qpair_enquev()
3210 ssize_t vmci_qpair_dequev(struct vmci_qp *qpair, in vmci_qpair_dequev() argument
3217 if (!qpair) in vmci_qpair_dequev()
3220 qp_lock(qpair); in vmci_qpair_dequev()
3223 result = qp_dequeue_locked(qpair->produce_q, in vmci_qpair_dequev()
3224 qpair->consume_q, in vmci_qpair_dequev()
3225 qpair->consume_q_size, in vmci_qpair_dequev()
3229 !qp_wait_for_ready_queue(qpair)) in vmci_qpair_dequev()
3234 qp_unlock(qpair); in vmci_qpair_dequev()
3252 ssize_t vmci_qpair_peekv(struct vmci_qp *qpair, in vmci_qpair_peekv() argument
3259 if (!qpair) in vmci_qpair_peekv()
3262 qp_lock(qpair); in vmci_qpair_peekv()
3265 result = qp_dequeue_locked(qpair->produce_q, in vmci_qpair_peekv()
3266 qpair->consume_q, in vmci_qpair_peekv()
3267 qpair->consume_q_size, in vmci_qpair_peekv()
3271 !qp_wait_for_ready_queue(qpair)) in vmci_qpair_peekv()
3276 qp_unlock(qpair); in vmci_qpair_peekv()