xref: /qemu/include/hw/virtio/vhost-vsock.h (revision fc0b9b0e1cbb49017ea882758634cf876be17bc3)
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