net: introduce qemu_find_net_clients_except()
In multiqueue, all NetClientState that belongs to the same netdev or nic has the same id. So this patches introduces an helper qemu_find_net_clients_except() which finds all NetClientState with the same id. This will be used by multiqueue networking. Signed-off-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
948ecf219c
commit
6c51ae73fc
@ -68,6 +68,8 @@ typedef struct NICState {
|
||||
} NICState;
|
||||
|
||||
NetClientState *qemu_find_netdev(const char *id);
|
||||
int qemu_find_net_clients_except(const char *id, NetClientState **ncs,
|
||||
NetClientOptionsKind type, int max);
|
||||
NetClientState *qemu_new_net_client(NetClientInfo *info,
|
||||
NetClientState *peer,
|
||||
const char *model,
|
||||
|
21
net/net.c
21
net/net.c
@ -508,6 +508,27 @@ NetClientState *qemu_find_netdev(const char *id)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int qemu_find_net_clients_except(const char *id, NetClientState **ncs,
|
||||
NetClientOptionsKind type, int max)
|
||||
{
|
||||
NetClientState *nc;
|
||||
int ret = 0;
|
||||
|
||||
QTAILQ_FOREACH(nc, &net_clients, next) {
|
||||
if (nc->info->type == type) {
|
||||
continue;
|
||||
}
|
||||
if (!strcmp(nc->name, id)) {
|
||||
if (ret < max) {
|
||||
ncs[ret] = nc;
|
||||
}
|
||||
ret++;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int nic_get_free_idx(void)
|
||||
{
|
||||
int index;
|
||||
|
Loading…
x
Reference in New Issue
Block a user