qdev: Add a DEV_NVECTORS_UNSPECIFIED enum for unspecified nr of MSI vectors

net.c used a constant to signify no MSI vectors were specified. Extend
that to all qdev devices.

Signed-off-by: Amit Shah <amit.shah@redhat.com>
Reported-by: "Michael S. Tsirkin" <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Amit Shah 2010-02-25 17:24:43 +05:30 committed by Anthony Liguori
parent 1a8e2aaa3f
commit 75422b0d38
4 changed files with 9 additions and 6 deletions

View file

@ -387,7 +387,7 @@ void qdev_set_nic_properties(DeviceState *dev, NICInfo *nd)
qdev_prop_set_vlan(dev, "vlan", nd->vlan);
if (nd->netdev)
qdev_prop_set_netdev(dev, "netdev", nd->netdev);
if (nd->nvectors != NIC_NVECTORS_UNSPECIFIED &&
if (nd->nvectors != DEV_NVECTORS_UNSPECIFIED &&
qdev_prop_exists(dev, "vectors")) {
qdev_prop_set_uint32(dev, "vectors", nd->nvectors);
}

View file

@ -24,6 +24,10 @@ enum DevState {
DEV_STATE_INITIALIZED,
};
enum {
DEV_NVECTORS_UNSPECIFIED = -1,
};
/* This structure should not be accessed directly. We declare it here
so that it can be embedded in individual device state structures. */
struct DeviceState {

6
net.c
View file

@ -35,6 +35,7 @@
#include "sysemu.h"
#include "qemu-common.h"
#include "qemu_socket.h"
#include "hw/qdev.h"
static QTAILQ_HEAD(, VLANState) vlans;
static QTAILQ_HEAD(, VLANClientState) non_vlan_clients;
@ -804,8 +805,9 @@ static int net_init_nic(QemuOpts *opts,
return -1;
}
nd->nvectors = qemu_opt_get_number(opts, "vectors", NIC_NVECTORS_UNSPECIFIED);
if (nd->nvectors != NIC_NVECTORS_UNSPECIFIED &&
nd->nvectors = qemu_opt_get_number(opts, "vectors",
DEV_NVECTORS_UNSPECIFIED);
if (nd->nvectors != DEV_NVECTORS_UNSPECIFIED &&
(nd->nvectors < 0 || nd->nvectors > 0x7ffffff)) {
qemu_error("invalid # of vectors: %d\n", nd->nvectors);
return -1;

3
net.h
View file

@ -123,9 +123,6 @@ void do_set_link(Monitor *mon, const QDict *qdict);
/* NIC info */
#define MAX_NICS 8
enum {
NIC_NVECTORS_UNSPECIFIED = -1
};
struct NICInfo {
uint8_t macaddr[6];