blob: 51df07173b4082073e096c2bfea386458ca64c1f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
/*
*
* Copyright (c) 2023-2024 Virtual Open Systems SAS.
*
* This work is licensed under the terms of the GNU GPL, version 2 or
* (at your option) any later version. See the COPYING file in the
* top-level directory.
*
*/
#ifndef VHOST_USER_CONSOLE
#define VHOST_USER_CONSOLE
#include "virtio_loopback.h"
#include "vhost_loopback.h"
#include "vhost_user_loopback.h"
/* Feature bits */
#define VIRTIO_CONSOLE_F_SIZE 0 /* Does host provide console size? */
#define VIRTIO_CONSOLE_F_MULTIPORT 1 /* Does host provide multiple ports? */
#define VIRTIO_CONSOLE_F_EMERG_WRITE 2 /* Does host support emergency write? */
struct virtio_console_config {
/* colums of the screens */
__virtio16 cols;
/* rows of the screens */
__virtio16 rows;
/* max. number of ports this device can hold */
__virtio32 max_nr_ports;
/* emergency write register */
__virtio32 emerg_wr;
};
typedef struct VHostUserConsole {
VirtIODevice *parent;
struct vhost_virtqueue *vhost_vqs;
VirtQueue **virtqs;
uint16_t num_queues;
uint32_t queue_size;
struct virtio_console_config config;
struct vhost_dev *vhost_dev;
} VHostUserConsole;
void vhost_user_console_realize(struct adapter_dev *adev);
#endif /* VHOST_USER_CONSOLE */
|