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);
|
||||
}
|
||||
|
||||
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];
|
||||
|
||||
/* 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];
|
||||
};
|
||||
|
||||
/* 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 */
|
||||
|
||||
typedef int (NetCanReceive)(VLANClientState *);
|
||||
@ -158,5 +171,6 @@ VLANClientState *qdev_get_vlan_client(DeviceState *dev,
|
||||
NetReceiveIOV *receive_iov,
|
||||
NetCleanup *cleanup,
|
||||
void *opaque);
|
||||
void qdev_set_nic_properties(DeviceState *dev, NICInfo *nd);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user