Lines Matching refs:dg
32 static int vmci_transport_recv_dgram_cb(void *data, struct vmci_datagram *dg);
33 static int vmci_transport_recv_stream_cb(void *data, struct vmci_datagram *dg);
125 pkt->dg.src = vmci_make_handle(VMADDR_CID_ANY,
127 pkt->dg.dst = vmci_make_handle(dst->svm_cid,
129 pkt->dg.payload_size = sizeof(*pkt) - sizeof(pkt->dg);
180 vsock_addr_init(local, pkt->dg.dst.context, pkt->dst_port);
181 vsock_addr_init(remote, pkt->dg.src.context, pkt->src_port);
200 err = vmci_datagram_send(&pkt->dg);
332 vsock_addr_init(&dst, pkt->dg.src.context,
487 vsock_addr_init(&src, pkt->dg.src.context, pkt->src_port);
611 static int vmci_transport_recv_dgram_cb(void *data, struct vmci_datagram *dg)
630 if (!vmci_transport_allow_dgram(vsk, dg->src.context))
633 size = VMCI_DG_SIZE(dg);
643 memcpy(skb->data, dg, size);
671 static int vmci_transport_recv_stream_cb(void *data, struct vmci_datagram *dg)
689 if (!vmci_transport_stream_allow(dg->src.context, -1)
690 || vmci_transport_peer_rid(dg->src.context) != dg->src.resource)
693 if (VMCI_DG_SIZE(dg) < sizeof(*pkt))
697 pkt = (struct vmci_transport_packet *)dg;
703 vsock_addr_init(&src, pkt->dg.src.context, pkt->src_port);
704 vsock_addr_init(&dst, pkt->dg.dst.context, pkt->dst_port);
747 if (!vmci_transport_allow_dgram(vsk, pkt->dg.src.context)) {
905 vsock_sk(sk)->local_addr.svm_cid = pkt->dg.dst.context;
964 vsock_sk(pending)->local_addr.svm_cid = pkt->dg.dst.context;
1018 vsock_addr_init(&vpending->local_addr, pkt->dg.dst.context,
1020 vsock_addr_init(&vpending->remote_addr, pkt->dg.src.context,
1204 pkt->dg.src.context,
1312 || pkt->dg.src.context != vsk->remote_addr.svm_cid
1412 vsk->local_addr.svm_cid = pkt->dg.dst.context;
1703 struct vmci_datagram *dg;
1712 dg = kmalloc(len + sizeof(*dg), GFP_KERNEL);
1713 if (!dg)
1716 err = memcpy_from_msg(VMCI_DG_PAYLOAD(dg), msg, len);
1718 kfree(dg);
1722 dg->dst = vmci_make_handle(remote_addr->svm_cid,
1724 dg->src = vmci_make_handle(vsk->local_addr.svm_cid,
1726 dg->payload_size = len;
1728 err = vmci_datagram_send(dg);
1729 kfree(dg);
1733 return err - sizeof(*dg);
1742 struct vmci_datagram *dg;
1757 dg = (struct vmci_datagram *)skb->data;
1758 if (!dg)
1762 payload_len = dg->payload_size;
1764 if (payload_len != skb->len - sizeof(*dg)) {
1775 err = skb_copy_datagram_msg(skb, sizeof(*dg), msg, payload_len);
1782 vsock_addr_init(vm_addr, dg->src.context, dg->src.resource);