root / include / hw / virtio / virtio-rng.h @ 0d09e41a
History | View | Annotate | Download (1 kB)
1 |
/*
|
---|---|
2 |
* Virtio RNG Support
|
3 |
*
|
4 |
* Copyright Red Hat, Inc. 2012
|
5 |
* Copyright Amit Shah <amit.shah@redhat.com>
|
6 |
*
|
7 |
* This work is licensed under the terms of the GNU GPL, version 2 or
|
8 |
* (at your option) any later version. See the COPYING file in the
|
9 |
* top-level directory.
|
10 |
*/
|
11 |
|
12 |
#ifndef _QEMU_VIRTIO_RNG_H
|
13 |
#define _QEMU_VIRTIO_RNG_H
|
14 |
|
15 |
#include "qemu/rng.h" |
16 |
#include "qemu/rng-random.h" |
17 |
|
18 |
/* The Virtio ID for the virtio rng device */
|
19 |
#define VIRTIO_ID_RNG 4 |
20 |
|
21 |
struct VirtIORNGConf {
|
22 |
RngBackend *rng; |
23 |
uint64_t max_bytes; |
24 |
uint32_t period_ms; |
25 |
RndRandom *default_backend; |
26 |
}; |
27 |
|
28 |
typedef struct VirtIORNG { |
29 |
VirtIODevice vdev; |
30 |
|
31 |
DeviceState *qdev; |
32 |
|
33 |
/* Only one vq - guest puts buffer(s) on it when it needs entropy */
|
34 |
VirtQueue *vq; |
35 |
|
36 |
VirtIORNGConf *conf; |
37 |
|
38 |
RngBackend *rng; |
39 |
|
40 |
/* We purposefully don't migrate this state. The quota will reset on the
|
41 |
* destination as a result. Rate limiting is host state, not guest state.
|
42 |
*/
|
43 |
QEMUTimer *rate_limit_timer; |
44 |
int64_t quota_remaining; |
45 |
} VirtIORNG; |
46 |
|
47 |
#endif
|