qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

vhost-vsock-common.h (1384B)


      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"
     19 OBJECT_DECLARE_SIMPLE_TYPE(VHostVSockCommon, VHOST_VSOCK_COMMON)
     20 
     21 enum {
     22     VHOST_VSOCK_SAVEVM_VERSION = 0,
     23 
     24     VHOST_VSOCK_QUEUE_SIZE = 128,
     25 };
     26 
     27 struct 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 
     43 int vhost_vsock_common_start(VirtIODevice *vdev);
     44 void vhost_vsock_common_stop(VirtIODevice *vdev);
     45 int vhost_vsock_common_pre_save(void *opaque);
     46 int vhost_vsock_common_post_load(void *opaque, int version_id);
     47 void vhost_vsock_common_realize(VirtIODevice *vdev);
     48 void vhost_vsock_common_unrealize(VirtIODevice *vdev);
     49 uint64_t vhost_vsock_common_get_features(VirtIODevice *vdev, uint64_t features,
     50                                          Error **errp);
     51 
     52 #endif /* QEMU_VHOST_VSOCK_COMMON_H */