qemu/include/hw/virtio/vhost-vsock-common.h
<<
>>
Prefs
   1/*
   2 * Parent class for vhost-vsock devices
   3 *
   4 * Copyright 2015-2020 Red Hat, Inc.
   5 *
   6 * This work is licensed under the terms of the GNU GPL, version 2 or
   7 * (at your option) any later version.  See the COPYING file in the
   8 * top-level directory.
   9 */
  10
  11#ifndef _QEMU_VHOST_VSOCK_COMMON_H
  12#define _QEMU_VHOST_VSOCK_COMMON_H
  13
  14#include "hw/virtio/virtio.h"
  15#include "hw/virtio/vhost.h"
  16#include "qom/object.h"
  17
  18#define TYPE_VHOST_VSOCK_COMMON "vhost-vsock-common"
  19OBJECT_DECLARE_SIMPLE_TYPE(VHostVSockCommon, VHOST_VSOCK_COMMON)
  20
  21enum {
  22    VHOST_VSOCK_SAVEVM_VERSION = 0,
  23
  24    VHOST_VSOCK_QUEUE_SIZE = 128,
  25};
  26
  27struct VHostVSockCommon {
  28    VirtIODevice parent;
  29
  30    struct vhost_virtqueue vhost_vqs[2];
  31    struct vhost_dev vhost_dev;
  32
  33    VirtQueue *event_vq;
  34    VirtQueue *recv_vq;
  35    VirtQueue *trans_vq;
  36
  37    QEMUTimer *post_load_timer;
  38
  39    /* features */
  40    OnOffAuto seqpacket;
  41};
  42
  43int vhost_vsock_common_start(VirtIODevice *vdev);
  44void vhost_vsock_common_stop(VirtIODevice *vdev);
  45int vhost_vsock_common_pre_save(void *opaque);
  46int vhost_vsock_common_post_load(void *opaque, int version_id);
  47void vhost_vsock_common_realize(VirtIODevice *vdev, const char *name);
  48void vhost_vsock_common_unrealize(VirtIODevice *vdev);
  49uint64_t vhost_vsock_common_get_features(VirtIODevice *vdev, uint64_t features,
  50                                         Error **errp);
  51
  52#endif /* _QEMU_VHOST_VSOCK_COMMON_H */
  53