Statistics
| Branch: | Revision:

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