vmci_trans
vmci_trans(vpending)->produce_size =
vmci_trans(vpending)->consume_size = qp_size;
vmci_trans(vpending)->notify_ops->process_request(pending);
vmci_trans(vpending), &detach_sub_id);
vmci_trans(vpending)->detach_sub_id = detach_sub_id;
vmci_trans(vpending)->produce_size,
vmci_trans(vpending)->consume_size,
vmci_trans(vpending)->qp_handle = handle;
vmci_trans(vpending)->qpair = qpair;
vmci_trans(vsk)->qp_handle)) {
|| !vmci_handle_is_invalid(vmci_trans(vsk)->qp_handle)
|| vmci_trans(vsk)->qpair
|| vmci_trans(vsk)->produce_size != 0
|| vmci_trans(vsk)->consume_size != 0
|| vmci_trans(vsk)->detach_sub_id != VMCI_INVALID_ID) {
vmci_trans(vsk), &detach_sub_id);
vmci_trans(vsk)->qp_handle = handle;
vmci_trans(vsk)->qpair = qpair;
vmci_trans(vsk)->produce_size = vmci_trans(vsk)->consume_size =
vmci_trans(vsk)->detach_sub_id = detach_sub_id;
vmci_trans(vsk)->notify_ops->process_negotiate(sk);
vmci_trans(vsk)->notify_ops->handle_notify_pkt(
vmci_trans(vsk)->dg_handle = VMCI_INVALID_HANDLE;
vmci_trans(vsk)->qp_handle = VMCI_INVALID_HANDLE;
vmci_trans(vsk)->qpair = NULL;
vmci_trans(vsk)->produce_size = vmci_trans(vsk)->consume_size = 0;
vmci_trans(vsk)->detach_sub_id = VMCI_INVALID_ID;
vmci_trans(vsk)->notify_ops = NULL;
INIT_LIST_HEAD(&vmci_trans(vsk)->elem);
vmci_trans(vsk)->sk = &vsk->sk;
spin_lock_init(&vmci_trans(vsk)->lock);
if (!vmci_trans(vsk))
spin_lock_bh(&vmci_trans(vsk)->lock);
vmci_trans(vsk)->sk = NULL;
spin_unlock_bh(&vmci_trans(vsk)->lock);
if (vmci_trans(vsk)->notify_ops)
vmci_trans(vsk)->notify_ops->socket_destruct(vsk);
list_add(&vmci_trans(vsk)->elem, &vmci_transport_cleanup_list);
if (!vmci_handle_is_invalid(vmci_trans(vsk)->dg_handle)) {
vmci_datagram_destroy_handle(vmci_trans(vsk)->dg_handle);
vmci_trans(vsk)->dg_handle = VMCI_INVALID_HANDLE;
&vmci_trans(vsk)->dg_handle);
vmci_trans(vsk)->dg_handle.resource);
err = vmci_qpair_peekv(vmci_trans(vsk)->qpair, msg, len, 0);
err = vmci_qpair_dequev(vmci_trans(vsk)->qpair, msg, len, 0);
err = vmci_qpair_enquev(vmci_trans(vsk)->qpair, msg, len, 0);
return vmci_qpair_consume_buf_ready(vmci_trans(vsk)->qpair);
return vmci_qpair_produce_free_space(vmci_trans(vsk)->qpair);
return vmci_trans(vsk)->consume_size;
return !vmci_handle_is_invalid(vmci_trans(vsk)->qp_handle);
return vmci_trans(vsk)->notify_ops->poll_in(
return vmci_trans(vsk)->notify_ops->poll_out(
return vmci_trans(vsk)->notify_ops->recv_init(
return vmci_trans(vsk)->notify_ops->recv_pre_block(
return vmci_trans(vsk)->notify_ops->recv_pre_dequeue(
return vmci_trans(vsk)->notify_ops->recv_post_dequeue(
return vmci_trans(vsk)->notify_ops->send_init(
return vmci_trans(vsk)->notify_ops->send_pre_block(
return vmci_trans(vsk)->notify_ops->send_pre_enqueue(
return vmci_trans(vsk)->notify_ops->send_post_enqueue(
vmci_trans(vsk)->notify_ops = &vmci_transport_notify_pkt_ops;
vmci_trans(vsk)->notify_ops =
vmci_trans(vsk)->notify_ops->socket_init(sk);
vmci_trans(vsk)->notify_ops->handle_notify_pkt(
if (!vmci_handle_is_invalid(vmci_trans(vsk)->qp_handle)) {
#define PKT_FIELD(vsk, field_name) (vmci_trans(vsk)->notify.pkt.field_name)
vmci_trans(vsk)->consume_size)
vmci_trans(vsk)->consume_size);
vmci_qpair_get_consume_indexes(vmci_trans(vsk)->qpair, &tail, &head);
room_left = vmci_trans(vsk)->consume_size - head;
vmci_qpair_get_produce_indexes(vmci_trans(vsk)->qpair, &tail, &head);
room_left = vmci_trans(vsk)->produce_size - tail;
vmci_qpair_get_consume_indexes(vmci_trans(vsk)->qpair,
notify_limit = vmci_trans(vsk)->consume_size -
vmci_trans(vsk)->consume_size - data->consume_head)
vmci_qpair_get_produce_indexes(vmci_trans(vsk)->qpair,
if (written >= vmci_trans(vsk)->produce_size - data->produce_tail)
PKT_FIELD(vsk, write_notify_window) = vmci_trans(vsk)->consume_size;
if (vmci_trans(vsk)->consume_size <
vmci_trans(vsk)->consume_size;
PKT_FIELD(vsk, write_notify_window) = vmci_trans(vsk)->consume_size;
if (vmci_trans(vsk)->consume_size <
vmci_trans(vsk)->consume_size;
retval = vmci_qpair_consume_free_space(vmci_trans(vsk)->qpair) >
return vmci_qpair_produce_buf_ready(vmci_trans(vsk)->qpair) > 0;
(vmci_trans(vsk)->notify.pkt_q_state.field_name)
vmci_qpair_consume_free_space(vmci_trans(vsk)->qpair);
vmci_qpair_produce_buf_ready(vmci_trans(vsk)->qpair) == written;
PKT_FIELD(vsk, write_notify_window) = vmci_trans(vsk)->consume_size;
if (vmci_trans(vsk)->consume_size <
vmci_trans(vsk)->consume_size;
PKT_FIELD(vsk, write_notify_window) = vmci_trans(vsk)->consume_size;
if (vmci_trans(vsk)->consume_size <
vmci_trans(vsk)->consume_size;
notify_limit = vmci_trans(vsk)->consume_size -
retval = vmci_qpair_consume_free_space(vmci_trans(vsk)->qpair) >
if (PKT_FIELD(vsk, write_notify_window) < vmci_trans(vsk)->consume_size)
vmci_trans(vsk)->consume_size);