mirror of https://github.com/xqemu/xqemu.git
qdev/net: common nic property bits
Add a new type for properties common to all nics. Add helper functions and macros to deal with it. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
851bec091d
commit
ed16ab5afa
|
@ -383,6 +383,15 @@ void qdev_get_macaddr(DeviceState *dev, uint8_t *macaddr)
|
||||||
memcpy(macaddr, dev->nd->macaddr, 6);
|
memcpy(macaddr, dev->nd->macaddr, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void qdev_set_nic_properties(DeviceState *dev, NICInfo *nd)
|
||||||
|
{
|
||||||
|
qdev_prop_set_macaddr(dev, "mac", nd->macaddr);
|
||||||
|
if (nd->vlan)
|
||||||
|
qdev_prop_set_vlan(dev, "vlan", nd->vlan);
|
||||||
|
if (nd->netdev)
|
||||||
|
qdev_prop_set_netdev(dev, "netdev", nd->netdev);
|
||||||
|
}
|
||||||
|
|
||||||
static int next_block_unit[IF_COUNT];
|
static int next_block_unit[IF_COUNT];
|
||||||
|
|
||||||
/* Get a block device. This should only be used for single-drive devices
|
/* Get a block device. This should only be used for single-drive devices
|
||||||
|
|
14
net.h
14
net.h
|
@ -11,6 +11,19 @@ struct MACAddr {
|
||||||
uint8_t a[6];
|
uint8_t a[6];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* qdev nic properties */
|
||||||
|
|
||||||
|
typedef struct NICConf {
|
||||||
|
MACAddr macaddr;
|
||||||
|
VLANState *vlan;
|
||||||
|
VLANClientState *peer;
|
||||||
|
} NICConf;
|
||||||
|
|
||||||
|
#define DEFINE_NIC_PROPERTIES(_state, _conf) \
|
||||||
|
DEFINE_PROP_MACADDR("mac", _state, _conf.macaddr), \
|
||||||
|
DEFINE_PROP_VLAN("vlan", _state, _conf.vlan), \
|
||||||
|
DEFINE_PROP_NETDEV("netdev", _state, _conf.peer)
|
||||||
|
|
||||||
/* VLANs support */
|
/* VLANs support */
|
||||||
|
|
||||||
typedef int (NetCanReceive)(VLANClientState *);
|
typedef int (NetCanReceive)(VLANClientState *);
|
||||||
|
@ -158,5 +171,6 @@ VLANClientState *qdev_get_vlan_client(DeviceState *dev,
|
||||||
NetReceiveIOV *receive_iov,
|
NetReceiveIOV *receive_iov,
|
||||||
NetCleanup *cleanup,
|
NetCleanup *cleanup,
|
||||||
void *opaque);
|
void *opaque);
|
||||||
|
void qdev_set_nic_properties(DeviceState *dev, NICInfo *nd);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue