1*fc0b9b0eSStefan Hajnoczi /* 2*fc0b9b0eSStefan Hajnoczi * Vhost vsock virtio device 3*fc0b9b0eSStefan Hajnoczi * 4*fc0b9b0eSStefan Hajnoczi * Copyright 2015 Red Hat, Inc. 5*fc0b9b0eSStefan Hajnoczi * 6*fc0b9b0eSStefan Hajnoczi * Authors: 7*fc0b9b0eSStefan Hajnoczi * Stefan Hajnoczi <stefanha@redhat.com> 8*fc0b9b0eSStefan Hajnoczi * 9*fc0b9b0eSStefan Hajnoczi * This work is licensed under the terms of the GNU GPL, version 2 or 10*fc0b9b0eSStefan Hajnoczi * (at your option) any later version. See the COPYING file in the 11*fc0b9b0eSStefan Hajnoczi * top-level directory. 12*fc0b9b0eSStefan Hajnoczi */ 13*fc0b9b0eSStefan Hajnoczi 14*fc0b9b0eSStefan Hajnoczi #ifndef _QEMU_VHOST_VSOCK_H 15*fc0b9b0eSStefan Hajnoczi #define _QEMU_VHOST_VSOCK_H 16*fc0b9b0eSStefan Hajnoczi 17*fc0b9b0eSStefan Hajnoczi #include "hw/virtio/virtio.h" 18*fc0b9b0eSStefan Hajnoczi #include "hw/virtio/vhost.h" 19*fc0b9b0eSStefan Hajnoczi 20*fc0b9b0eSStefan Hajnoczi #define TYPE_VHOST_VSOCK "vhost-vsock-device" 21*fc0b9b0eSStefan Hajnoczi #define VHOST_VSOCK(obj) \ 22*fc0b9b0eSStefan Hajnoczi OBJECT_CHECK(VHostVSock, (obj), TYPE_VHOST_VSOCK) 23*fc0b9b0eSStefan Hajnoczi 24*fc0b9b0eSStefan Hajnoczi typedef struct { 25*fc0b9b0eSStefan Hajnoczi uint64_t guest_cid; 26*fc0b9b0eSStefan Hajnoczi char *vhostfd; 27*fc0b9b0eSStefan Hajnoczi } VHostVSockConf; 28*fc0b9b0eSStefan Hajnoczi 29*fc0b9b0eSStefan Hajnoczi typedef struct { 30*fc0b9b0eSStefan Hajnoczi /*< private >*/ 31*fc0b9b0eSStefan Hajnoczi VirtIODevice parent; 32*fc0b9b0eSStefan Hajnoczi VHostVSockConf conf; 33*fc0b9b0eSStefan Hajnoczi struct vhost_virtqueue vhost_vqs[2]; 34*fc0b9b0eSStefan Hajnoczi struct vhost_dev vhost_dev; 35*fc0b9b0eSStefan Hajnoczi VirtQueue *event_vq; 36*fc0b9b0eSStefan Hajnoczi QEMUTimer *post_load_timer; 37*fc0b9b0eSStefan Hajnoczi 38*fc0b9b0eSStefan Hajnoczi /*< public >*/ 39*fc0b9b0eSStefan Hajnoczi } VHostVSock; 40*fc0b9b0eSStefan Hajnoczi 41*fc0b9b0eSStefan Hajnoczi #endif /* _QEMU_VHOST_VSOCK_H */ 42