1// Copyright 2018 The Fuchsia Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#pragma once 6 7#include <stdint.h> 8#include <zircon/compiler.h> 9 10// clang-format off 11 12// For virtio_vsock_hdr_t. 13#define VIRTIO_VSOCK_TYPE_STREAM 1u 14 15#define VIRTIO_VSOCK_OP_INVALID 0u 16#define VIRTIO_VSOCK_OP_REQUEST 1u 17#define VIRTIO_VSOCK_OP_RESPONSE 2u 18#define VIRTIO_VSOCK_OP_RST 3u 19#define VIRTIO_VSOCK_OP_SHUTDOWN 4u 20#define VIRTIO_VSOCK_OP_RW 5u 21#define VIRTIO_VSOCK_OP_CREDIT_UPDATE 6u 22#define VIRTIO_VSOCK_OP_CREDIT_REQUEST 7u 23 24#define VIRTIO_VSOCK_FLAG_SHUTDOWN_RECV (1u << 0) 25#define VIRTIO_VSOCK_FLAG_SHUTDOWN_SEND (1u << 1) 26#define VIRTIO_VSOCK_FLAG_SHUTDOWN_BOTH (VIRTIO_VSOCK_FLAG_SHUTDOWN_RECV | \ 27 VIRTIO_VSOCK_FLAG_SHUTDOWN_SEND) 28 29// For virtio_vsock_event_t. 30#define VIRTIO_VSOCK_EVENT_TRANSPORT_RESET 0u 31 32// clang-format on 33 34__BEGIN_CDECLS; 35 36typedef struct virtio_vsock_config { 37 uint64_t guest_cid; 38} __PACKED virtio_vsock_config_t; 39 40typedef struct virtio_vsock_hdr { 41 uint64_t src_cid; 42 uint64_t dst_cid; 43 uint32_t src_port; 44 uint32_t dst_port; 45 uint32_t len; 46 uint16_t type; 47 uint16_t op; 48 uint32_t flags; 49 uint32_t buf_alloc; 50 uint32_t fwd_cnt; 51} __PACKED virtio_vsock_hdr_t; 52 53typedef struct virtio_vsock_event { 54 uint32_t id; 55} __PACKED virtio_vsock_event_t; 56 57__END_CDECLS; 58