Lines Matching refs:dg
41 static int vmci_transport_recv_dgram_cb(void *data, struct vmci_datagram *dg);
42 static int vmci_transport_recv_stream_cb(void *data, struct vmci_datagram *dg);
148 pkt->dg.src = vmci_make_handle(VMADDR_CID_ANY, in vmci_transport_packet_init()
150 pkt->dg.dst = vmci_make_handle(dst->svm_cid, in vmci_transport_packet_init()
152 pkt->dg.payload_size = sizeof(*pkt) - sizeof(pkt->dg); in vmci_transport_packet_init()
203 vsock_addr_init(local, pkt->dg.dst.context, pkt->dst_port); in vmci_transport_packet_get_addresses()
204 vsock_addr_init(remote, pkt->dg.src.context, pkt->src_port); in vmci_transport_packet_get_addresses()
223 err = vmci_datagram_send(&pkt->dg); in __vmci_transport_send_control_pkt()
477 vsock_addr_init(&src, pkt->dg.src.context, pkt->src_port); in vmci_transport_get_pending()
602 static int vmci_transport_recv_dgram_cb(void *data, struct vmci_datagram *dg) in vmci_transport_recv_dgram_cb() argument
621 if (!vmci_transport_allow_dgram(vsk, dg->src.context)) in vmci_transport_recv_dgram_cb()
624 size = VMCI_DG_SIZE(dg); in vmci_transport_recv_dgram_cb()
634 memcpy(skb->data, dg, size); in vmci_transport_recv_dgram_cb()
662 static int vmci_transport_recv_stream_cb(void *data, struct vmci_datagram *dg) in vmci_transport_recv_stream_cb() argument
680 if (!vmci_transport_stream_allow(dg->src.context, -1) in vmci_transport_recv_stream_cb()
681 || vmci_transport_peer_rid(dg->src.context) != dg->src.resource) in vmci_transport_recv_stream_cb()
684 if (VMCI_DG_SIZE(dg) < sizeof(*pkt)) in vmci_transport_recv_stream_cb()
688 pkt = (struct vmci_transport_packet *)dg; in vmci_transport_recv_stream_cb()
694 vsock_addr_init(&src, pkt->dg.src.context, pkt->src_port); in vmci_transport_recv_stream_cb()
695 vsock_addr_init(&dst, pkt->dg.dst.context, pkt->dst_port); in vmci_transport_recv_stream_cb()
738 if (!vmci_transport_allow_dgram(vsk, pkt->dg.src.context)) { in vmci_transport_recv_stream_cb()
919 vsock_sk(sk)->local_addr.svm_cid = pkt->dg.dst.context; in vmci_transport_recv_pkt_work()
978 vsock_sk(pending)->local_addr.svm_cid = pkt->dg.dst.context; in vmci_transport_recv_listen()
1033 vsock_addr_init(&vpending->local_addr, pkt->dg.dst.context, in vmci_transport_recv_listen()
1035 vsock_addr_init(&vpending->remote_addr, pkt->dg.src.context, in vmci_transport_recv_listen()
1210 pkt->dg.src.context, in vmci_transport_recv_connecting_server()
1318 || pkt->dg.src.context != vsk->remote_addr.svm_cid in vmci_transport_recv_connecting_client()
1421 vsk->local_addr.svm_cid = pkt->dg.dst.context; in vmci_transport_recv_connecting_client_negotiate()
1704 struct vmci_datagram *dg; in vmci_transport_dgram_enqueue() local
1713 dg = kmalloc(len + sizeof(*dg), GFP_KERNEL); in vmci_transport_dgram_enqueue()
1714 if (!dg) in vmci_transport_dgram_enqueue()
1717 memcpy_from_msg(VMCI_DG_PAYLOAD(dg), msg, len); in vmci_transport_dgram_enqueue()
1719 dg->dst = vmci_make_handle(remote_addr->svm_cid, in vmci_transport_dgram_enqueue()
1721 dg->src = vmci_make_handle(vsk->local_addr.svm_cid, in vmci_transport_dgram_enqueue()
1723 dg->payload_size = len; in vmci_transport_dgram_enqueue()
1725 err = vmci_datagram_send(dg); in vmci_transport_dgram_enqueue()
1726 kfree(dg); in vmci_transport_dgram_enqueue()
1730 return err - sizeof(*dg); in vmci_transport_dgram_enqueue()
1739 struct vmci_datagram *dg; in vmci_transport_dgram_dequeue() local
1757 dg = (struct vmci_datagram *)skb->data; in vmci_transport_dgram_dequeue()
1758 if (!dg) in vmci_transport_dgram_dequeue()
1762 payload_len = dg->payload_size; in vmci_transport_dgram_dequeue()
1764 if (payload_len != skb->len - sizeof(*dg)) { in vmci_transport_dgram_dequeue()
1775 err = skb_copy_datagram_msg(skb, sizeof(*dg), msg, payload_len); in vmci_transport_dgram_dequeue()
1782 vsock_addr_init(vm_addr, dg->src.context, dg->src.resource); in vmci_transport_dgram_dequeue()