xemu/hw/virtio-rng.h
KONRAD Frederic f1b24e840f virtio: make virtio device's structures public.
These structures must be made public to avoid two memory allocations for
refactored virtio devices.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Message-id: 1363624648-16906-2-git-send-email-fred.konrad@greensocs.com

Changes V4 <- V3:
   * Rebased on current git.

Changes V3 <- V2:
    * Style correction spotted by Andreas (virtio-scsi.h).
    * Style correction for virtio-net.h.

Changes V2 <- V1:
    * Move the dataplane include into the header (virtio-blk).
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-03-18 13:08:39 -05:00

48 lines
1.0 KiB
C

/*
* Virtio RNG Support
*
* Copyright Red Hat, Inc. 2012
* Copyright Amit Shah <amit.shah@redhat.com>
*
* 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 _QEMU_VIRTIO_RNG_H
#define _QEMU_VIRTIO_RNG_H
#include "qemu/rng.h"
#include "qemu/rng-random.h"
/* The Virtio ID for the virtio rng device */
#define VIRTIO_ID_RNG 4
struct VirtIORNGConf {
RngBackend *rng;
uint64_t max_bytes;
uint32_t period_ms;
RndRandom *default_backend;
};
typedef struct VirtIORNG {
VirtIODevice vdev;
DeviceState *qdev;
/* Only one vq - guest puts buffer(s) on it when it needs entropy */
VirtQueue *vq;
VirtIORNGConf *conf;
RngBackend *rng;
/* We purposefully don't migrate this state. The quota will reset on the
* destination as a result. Rate limiting is host state, not guest state.
*/
QEMUTimer *rate_limit_timer;
int64_t quota_remaining;
} VirtIORNG;
#endif