mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00
qapi: Use QAPI_LIST_PREPEND() where possible
Anywhere we create a list of just one item or by prepending items (typically because order doesn't matter), we can use QAPI_LIST_PREPEND(). But places where we must keep the list in order by appending remain open-coded until later patches. Note that as a side effect, this also performs a cleanup of two minor issues in qga/commands-posix.c: the old code was performing new = g_malloc0(sizeof(*ret)); which 1) is confusing because you have to verify whether 'new' and 'ret' are variables with the same type, and 2) would conflict with C++ compilation (not an actual problem for this file, but makes copy-and-paste harder). Signed-off-by: Eric Blake <eblake@redhat.com> Message-Id: <20201113011340.463563-5-eblake@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Acked-by: Stefan Hajnoczi <stefanha@redhat.com> [Straightforward conflicts due to commita8aa94b5f8
"qga: update schema for guest-get-disks 'dependents' field" and commita10b453a52
"target/mips: Move mips_cpu_add_definition() from helper.c to cpu.c" resolved. Commit message tweaked.] Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
eaedde5255
commit
54aa3de72e
32 changed files with 158 additions and 421 deletions
|
@ -437,17 +437,14 @@ static void rxfilter_notify(NetClientState *nc)
|
|||
|
||||
static intList *get_vlan_table(VirtIONet *n)
|
||||
{
|
||||
intList *list, *entry;
|
||||
intList *list;
|
||||
int i, j;
|
||||
|
||||
list = NULL;
|
||||
for (i = 0; i < MAX_VLAN >> 5; i++) {
|
||||
for (j = 0; n->vlans[i] && j <= 0x1f; j++) {
|
||||
if (n->vlans[i] & (1U << j)) {
|
||||
entry = g_malloc0(sizeof(*entry));
|
||||
entry->value = (i << 5) + j;
|
||||
entry->next = list;
|
||||
list = entry;
|
||||
QAPI_LIST_PREPEND(list, (i << 5) + j);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -460,7 +457,7 @@ static RxFilterInfo *virtio_net_query_rxfilter(NetClientState *nc)
|
|||
VirtIONet *n = qemu_get_nic_opaque(nc);
|
||||
VirtIODevice *vdev = VIRTIO_DEVICE(n);
|
||||
RxFilterInfo *info;
|
||||
strList *str_list, *entry;
|
||||
strList *str_list;
|
||||
int i;
|
||||
|
||||
info = g_malloc0(sizeof(*info));
|
||||
|
@ -491,19 +488,15 @@ static RxFilterInfo *virtio_net_query_rxfilter(NetClientState *nc)
|
|||
|
||||
str_list = NULL;
|
||||
for (i = 0; i < n->mac_table.first_multi; i++) {
|
||||
entry = g_malloc0(sizeof(*entry));
|
||||
entry->value = qemu_mac_strdup_printf(n->mac_table.macs + i * ETH_ALEN);
|
||||
entry->next = str_list;
|
||||
str_list = entry;
|
||||
QAPI_LIST_PREPEND(str_list,
|
||||
qemu_mac_strdup_printf(n->mac_table.macs + i * ETH_ALEN));
|
||||
}
|
||||
info->unicast_table = str_list;
|
||||
|
||||
str_list = NULL;
|
||||
for (i = n->mac_table.first_multi; i < n->mac_table.in_use; i++) {
|
||||
entry = g_malloc0(sizeof(*entry));
|
||||
entry->value = qemu_mac_strdup_printf(n->mac_table.macs + i * ETH_ALEN);
|
||||
entry->next = str_list;
|
||||
str_list = entry;
|
||||
QAPI_LIST_PREPEND(str_list,
|
||||
qemu_mac_strdup_printf(n->mac_table.macs + i * ETH_ALEN));
|
||||
}
|
||||
info->multicast_table = str_list;
|
||||
info->vlan_table = get_vlan_table(n);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue