The data obtained by GetIfEntry is 32 bits, and it may overflow. Thus using GetIfEntry2 instead of GetIfEntry.
Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
---
qga/commands-win32.c | 31 ++++++++++++++++++-------------
1 file changed, 18 insertions(+), 13 deletions(-)
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
index 0322188..d096dc2 100644
--- a/qga/commands-win32.c
+++ b/qga/commands-win32.c
@@ -1173,20 +1173,25 @@ static int guest_get_network_stats(const char *name,
GuestNetworkInterfaceStat *stats)
{
DWORD if_index = 0;
- MIB_IFROW a_mid_ifrow;
- memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
+ OSVERSIONINFO OSver;
if_index = get_interface_index(name);
- a_mid_ifrow.dwIndex = if_index;
- if (NO_ERROR == GetIfEntry(&a_mid_ifrow)) {
- stats->rx_bytes = a_mid_ifrow.dwInOctets;
- stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
- stats->rx_errs = a_mid_ifrow.dwInErrors;
- stats->rx_dropped = a_mid_ifrow.dwInDiscards;
- stats->tx_bytes = a_mid_ifrow.dwOutOctets;
- stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
- stats->tx_errs = a_mid_ifrow.dwOutErrors;
- stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
- return 0;
+ OSver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+ GetVersionEx(&OSver);
+ if (OSver.dwMajorVersion >= 6) {
+ MIB_IF_ROW2 a_mid_ifrow;
+ memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
+ a_mid_ifrow.dwIndex = if_index;
+ if (NO_ERROR == GetIfEntry2(&a_mid_ifrow)) {
+ stats->rx_bytes = a_mid_ifrow.dwInOctets;
+ stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
+ stats->rx_errs = a_mid_ifrow.dwInErrors;
+ stats->rx_dropped = a_mid_ifrow.dwInDiscards;
+ stats->tx_bytes = a_mid_ifrow.dwOutOctets;
+ stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
+ stats->tx_errs = a_mid_ifrow.dwOutErrors;
+ stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
+ return 0;
+ }
}
return -1;
}
--
1.8.3.1
Hi,
This series failed automatic build test. Please find the testing commands and
their output below. If you have docker installed, you can probably reproduce it
locally.
Subject: [Qemu-devel] [PATCH v2] qga: replace GetIfEntry
Type: series
Message-id: 1509720860-10065-1-git-send-email-lu.zhipeng@zte.com.cn
=== TEST SCRIPT BEGIN ===
#!/bin/bash
set -e
git submodule update --init dtc
# Let docker tests dump environment info
export SHOW_ENV=1
export J=8
time make docker-test-quick@centos6
time make docker-test-build@min-glib
time make docker-test-mingw@fedora
time make docker-test-block@fedora
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
t [tag update] patchew/1509719814-6191-1-git-send-email-peter.maydell@linaro.org -> patchew/1509719814-6191-1-git-send-email-peter.maydell@linaro.org
* [new tag] patchew/20171103173037.17012-1-pixo@polepetko.eu -> patchew/20171103173037.17012-1-pixo@polepetko.eu
Switched to a new branch 'test'
603c114bd4 qga: replace GetIfEntry
=== OUTPUT BEGIN ===
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-lx9ko0qg/src/dtc'...
Submodule path 'dtc': checked out '558cd81bdd432769b59bff01240c44f82cfb1a9d'
BUILD centos6
make[1]: Entering directory '/var/tmp/patchew-tester-tmp-lx9ko0qg/src'
GEN /var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.43.05.28101/qemu.tar
Cloning into '/var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.43.05.28101/qemu.tar.vroot'...
done.
Checking out files: 38% (2166/5656)
Checking out files: 39% (2206/5656)
Checking out files: 40% (2263/5656)
Checking out files: 41% (2319/5656)
Checking out files: 42% (2376/5656)
Checking out files: 43% (2433/5656)
Checking out files: 44% (2489/5656)
Checking out files: 45% (2546/5656)
Checking out files: 46% (2602/5656)
Checking out files: 47% (2659/5656)
Checking out files: 48% (2715/5656)
Checking out files: 49% (2772/5656)
Checking out files: 50% (2828/5656)
Checking out files: 51% (2885/5656)
Checking out files: 52% (2942/5656)
Checking out files: 53% (2998/5656)
Checking out files: 54% (3055/5656)
Checking out files: 55% (3111/5656)
Checking out files: 56% (3168/5656)
Checking out files: 57% (3224/5656)
Checking out files: 58% (3281/5656)
Checking out files: 59% (3338/5656)
Checking out files: 60% (3394/5656)
Checking out files: 61% (3451/5656)
Checking out files: 62% (3507/5656)
Checking out files: 63% (3564/5656)
Checking out files: 64% (3620/5656)
Checking out files: 65% (3677/5656)
Checking out files: 66% (3733/5656)
Checking out files: 67% (3790/5656)
Checking out files: 68% (3847/5656)
Checking out files: 69% (3903/5656)
Checking out files: 70% (3960/5656)
Checking out files: 71% (4016/5656)
Checking out files: 72% (4073/5656)
Checking out files: 73% (4129/5656)
Checking out files: 74% (4186/5656)
Checking out files: 75% (4242/5656)
Checking out files: 76% (4299/5656)
Checking out files: 77% (4356/5656)
Checking out files: 78% (4412/5656)
Checking out files: 79% (4469/5656)
Checking out files: 80% (4525/5656)
Checking out files: 81% (4582/5656)
Checking out files: 82% (4638/5656)
Checking out files: 83% (4695/5656)
Checking out files: 84% (4752/5656)
Checking out files: 85% (4808/5656)
Checking out files: 86% (4865/5656)
Checking out files: 87% (4921/5656)
Checking out files: 88% (4978/5656)
Checking out files: 89% (5034/5656)
Checking out files: 90% (5091/5656)
Checking out files: 91% (5147/5656)
Checking out files: 92% (5204/5656)
Checking out files: 93% (5261/5656)
Checking out files: 94% (5317/5656)
Checking out files: 95% (5374/5656)
Checking out files: 96% (5430/5656)
Checking out files: 97% (5487/5656)
Checking out files: 98% (5543/5656)
Checking out files: 99% (5600/5656)
Checking out files: 99% (5654/5656)
Checking out files: 100% (5656/5656)
Checking out files: 100% (5656/5656), done.
Your branch is up-to-date with 'origin/test'.
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.43.05.28101/qemu.tar.vroot/dtc'...
Submodule path 'dtc': checked out '558cd81bdd432769b59bff01240c44f82cfb1a9d'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into '/var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.43.05.28101/qemu.tar.vroot/ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '10739aa26051a5d49d88132604539d3ed085e72e'
COPY RUNNER
RUN test-quick in qemu:centos6
Packages installed:
SDL-devel-1.2.14-7.el6_7.1.x86_64
bison-2.4.1-5.el6.x86_64
bzip2-devel-1.0.5-7.el6_0.x86_64
ccache-3.1.6-2.el6.x86_64
csnappy-devel-0-6.20150729gitd7bc683.el6.x86_64
flex-2.5.35-9.el6.x86_64
gcc-4.4.7-18.el6.x86_64
gettext-0.17-18.el6.x86_64
git-1.7.1-9.el6_9.x86_64
glib2-devel-2.28.8-9.el6.x86_64
libepoxy-devel-1.2-3.el6.x86_64
libfdt-devel-1.4.0-1.el6.x86_64
librdmacm-devel-1.0.21-0.el6.x86_64
lzo-devel-2.03-3.1.el6_5.1.x86_64
make-3.81-23.el6.x86_64
mesa-libEGL-devel-11.0.7-4.el6.x86_64
mesa-libgbm-devel-11.0.7-4.el6.x86_64
package g++ is not installed
pixman-devel-0.32.8-1.el6.x86_64
spice-glib-devel-0.26-8.el6.x86_64
spice-server-devel-0.12.4-16.el6.x86_64
tar-1.23-15.el6_8.x86_64
vte-devel-0.25.1-9.el6.x86_64
xen-devel-4.6.6-2.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64
Environment variables:
PACKAGES=bison bzip2-devel ccache csnappy-devel flex g++ gcc gettext git glib2-devel libepoxy-devel libfdt-devel librdmacm-devel lzo-devel make mesa-libEGL-devel mesa-libgbm-devel pixman-devel SDL-devel spice-glib-devel spice-server-devel tar vte-devel xen-devel zlib-devel
HOSTNAME=7b6a05a9a572
MAKEFLAGS= -j8
J=8
CCACHE_DIR=/var/tmp/ccache
EXTRA_CONFIGURE_OPTS=
V=
SHOW_ENV=1
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
TARGET_LIST=
SHLVL=1
HOME=/root
TEST_DIR=/tmp/qemu-test
FEATURES= dtc
DEBUG=
_=/usr/bin/env
Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/tmp/qemu-test/install
No C++ compiler available; disabling C++ specific optional code
Install prefix /tmp/qemu-test/install
BIOS directory /tmp/qemu-test/install/share/qemu
firmware path /tmp/qemu-test/install/share/qemu-firmware
binary directory /tmp/qemu-test/install/bin
library directory /tmp/qemu-test/install/lib
module directory /tmp/qemu-test/install/lib/qemu
libexec directory /tmp/qemu-test/install/libexec
include directory /tmp/qemu-test/install/include
config directory /tmp/qemu-test/install/etc
local state directory /tmp/qemu-test/install/var
Manual directory /tmp/qemu-test/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /tmp/qemu-test/src
GIT submodules
C compiler cc
Host C compiler cc
C++ compiler
Objective-C compiler cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -I/usr/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DNCURSES_WIDECHAR -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -I/usr/include/libpng12 -I/usr/include/libdrm -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/spice-1
LDFLAGS -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU x86_64
host big endian no
target list x86_64-softmmu aarch64-softmmu
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
SDL support yes (1.2.14)
GTK support yes (2.24.23)
GTK GL support no
VTE support yes (0.25.1)
TLS priority NORMAL
GNUTLS support no
GNUTLS rnd no
libgcrypt no
libgcrypt kdf no
nettle no
nettle kdf no
libtasn1 no
curses support yes
virgl support no
curl support no
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support no
Multipath support no
VNC support yes
VNC SASL support no
VNC JPEG support yes
VNC PNG support yes
xen support yes
xen ctrl version 40600
pv dom build no
brlapi support no
bluez support no
Documentation no
PIE yes
vde support no
netmap support no
Linux AIO support no
ATTR/XATTR support yes
Install blobs yes
KVM support yes
HAX support no
TCG support yes
TCG debug enabled no
TCG interpreter no
RDMA support yes
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
libcap-ng support no
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
vhost-user support yes
Trace backends log
spice support yes (0.12.6/0.12.4)
rbd support no
xfsctl support no
smartcard support yes
libusb no
usb net redir no
OpenGL support yes
OpenGL dmabufs no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support no
coroutine backend ucontext
coroutine pool yes
debug stack usage no
crypto afalg no
GlusterFS support no
gcov gcov
gcov enabled no
TPM support yes
libssh2 support no
TPM passthrough yes
TPM emulator yes
QOM debugging yes
Live block migration yes
lzo support yes
snappy support no
bzip2 support yes
NUMA host support no
tcmalloc support no
jemalloc support no
avx2 optimization no
replication support yes
VxHS block device no
capstone no
GEN x86_64-softmmu/config-devices.mak.tmp
mkdir -p dtc/libfdt
mkdir -p dtc/tests
GEN aarch64-softmmu/config-devices.mak.tmp
GEN config-host.h
GEN qemu-options.def
GEN qapi-types.h
GEN qmp-commands.h
GEN qapi-visit.h
GEN qapi-event.h
GEN x86_64-softmmu/config-devices.mak
GEN qmp-marshal.c
GEN aarch64-softmmu/config-devices.mak
GEN qapi-types.c
GEN qapi-visit.c
GEN qapi-event.c
GEN qmp-introspect.h
GEN qmp-introspect.c
GEN trace/generated-tcg-tracers.h
GEN trace/generated-helpers-wrappers.h
GEN trace/generated-helpers.h
GEN trace/generated-helpers.c
GEN module_block.h
GEN ui/input-keymap-linux-to-qcode.c
GEN ui/input-keymap-qcode-to-qnum.c
GEN ui/input-keymap-qnum-to-qcode.c
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
GEN hw/intc/trace.h
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/xen/trace.h
GEN hw/ide/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN accel/kvm/trace.h
GEN nbd/trace.h
GEN scsi/trace.h
GEN trace-root.c
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/xen/trace.c
GEN hw/ide/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN nbd/trace.c
GEN scsi/trace.c
GEN config-all-devices.mak
DEP /tmp/qemu-test/src/dtc/tests/dumptrees.c
DEP /tmp/qemu-test/src/dtc/tests/trees.S
DEP /tmp/qemu-test/src/dtc/tests/testutils.c
DEP /tmp/qemu-test/src/dtc/tests/value-labels.c
DEP /tmp/qemu-test/src/dtc/tests/asm_tree_dump.c
DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c
DEP /tmp/qemu-test/src/dtc/tests/check_path.c
DEP /tmp/qemu-test/src/dtc/tests/overlay_bad_fixup.c
DEP /tmp/qemu-test/src/dtc/tests/overlay.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/property_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/integer-expressions.c
DEP /tmp/qemu-test/src/dtc/tests/utilfdt_test.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset_aliases.c
DEP /tmp/qemu-test/src/dtc/tests/add_subnode_with_nops.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_unordered.c
DEP /tmp/qemu-test/src/dtc/tests/dtb_reverse.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_ordered.c
DEP /tmp/qemu-test/src/dtc/tests/extra-terminating-null.c
DEP /tmp/qemu-test/src/dtc/tests/incbin.c
DEP /tmp/qemu-test/src/dtc/tests/boot-cpuid.c
DEP /tmp/qemu-test/src/dtc/tests/phandle_format.c
DEP /tmp/qemu-test/src/dtc/tests/path-references.c
DEP /tmp/qemu-test/src/dtc/tests/references.c
DEP /tmp/qemu-test/src/dtc/tests/string_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/propname_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop2.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop1.c
DEP /tmp/qemu-test/src/dtc/tests/del_node.c
DEP /tmp/qemu-test/src/dtc/tests/del_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop.c
DEP /tmp/qemu-test/src/dtc/tests/set_name.c
DEP /tmp/qemu-test/src/dtc/tests/rw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/open_pack.c
DEP /tmp/qemu-test/src/dtc/tests/nopulate.c
DEP /tmp/qemu-test/src/dtc/tests/mangle-layout.c
DEP /tmp/qemu-test/src/dtc/tests/sw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/move_and_save.c
DEP /tmp/qemu-test/src/dtc/tests/nop_node.c
DEP /tmp/qemu-test/src/dtc/tests/nop_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop_inplace.c
DEP /tmp/qemu-test/src/dtc/tests/addr_size_cells.c
DEP /tmp/qemu-test/src/dtc/tests/notfound.c
DEP /tmp/qemu-test/src/dtc/tests/stringlist.c
DEP /tmp/qemu-test/src/dtc/tests/sized_cells.c
DEP /tmp/qemu-test/src/dtc/tests/char_literal.c
DEP /tmp/qemu-test/src/dtc/tests/get_alias.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_check_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_prop_value.c
DEP /tmp/qemu-test/src/dtc/tests/parent_offset.c
DEP /tmp/qemu-test/src/dtc/tests/supernode_atdepth_offset.c
DEP /tmp/qemu-test/src/dtc/tests/get_path.c
DEP /tmp/qemu-test/src/dtc/tests/get_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/getprop.c
DEP /tmp/qemu-test/src/dtc/tests/get_name.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_offset.c
DEP /tmp/qemu-test/src/dtc/tests/find_property.c
DEP /tmp/qemu-test/src/dtc/tests/root_node.c
DEP /tmp/qemu-test/src/dtc/tests/get_mem_rsv.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_overlay.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_empty_tree.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_addresses.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_rw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_strerror.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_sw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_ro.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_wip.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt.c
DEP /tmp/qemu-test/src/dtc/fdtput.c
DEP /tmp/qemu-test/src/dtc/util.c
DEP /tmp/qemu-test/src/dtc/fdtget.c
DEP /tmp/qemu-test/src/dtc/fdtdump.c
LEX convert-dtsv0-lexer.lex.c
DEP /tmp/qemu-test/src/dtc/srcpos.c
BISON dtc-parser.tab.c
LEX dtc-lexer.lex.c
DEP /tmp/qemu-test/src/dtc/treesource.c
DEP /tmp/qemu-test/src/dtc/livetree.c
DEP /tmp/qemu-test/src/dtc/fstree.c
DEP /tmp/qemu-test/src/dtc/flattree.c
DEP /tmp/qemu-test/src/dtc/dtc.c
DEP /tmp/qemu-test/src/dtc/data.c
DEP /tmp/qemu-test/src/dtc/checks.c
DEP convert-dtsv0-lexer.lex.c
DEP dtc-parser.tab.c
DEP dtc-lexer.lex.c
CHK version_gen.h
UPD version_gen.h
DEP /tmp/qemu-test/src/dtc/util.c
CC libfdt/fdt.o
CC libfdt/fdt_ro.o
CC libfdt/fdt_wip.o
CC libfdt/fdt_rw.o
CC libfdt/fdt_strerror.o
CC libfdt/fdt_addresses.o
CC libfdt/fdt_sw.o
CC libfdt/fdt_empty_tree.o
CC libfdt/fdt_overlay.o
AR libfdt/libfdt.a
ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
mkdir -p dtc/libfdt
mkdir -p dtc/tests
CC tests/qemu-iotests/socket_scm_helper.o
GEN qga/qapi-generated/qga-qapi-types.h
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qmp-commands.h
GEN qga/qapi-generated/qga-qapi-types.c
GEN qga/qapi-generated/qga-qapi-visit.c
CC qmp-introspect.o
GEN qga/qapi-generated/qga-qmp-marshal.c
CC qapi-types.o
CC qapi-visit.o
CC qapi-event.o
CC qapi/qapi-visit-core.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qobject-output-visitor.o
CC qapi/qobject-input-visitor.o
CC qapi/qmp-registry.o
CC qapi/qmp-dispatch.o
CC qapi/opts-visitor.o
CC qapi/string-output-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/string-input-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qnum.o
CC qobject/qstring.o
CC qobject/qdict.o
CC qobject/qbool.o
CC qobject/qlist.o
CC qobject/qlit.o
CC qobject/qjson.o
CC qobject/qobject.o
CC qobject/json-lexer.o
CC qobject/json-streamer.o
CC qobject/json-parser.o
CC trace/control.o
CC trace/qmp.o
CC util/osdep.o
CC util/cutils.o
CC util/unicode.o
CC util/qemu-timer-common.o
CC util/bufferiszero.o
CC util/lockcnt.o
CC util/aiocb.o
CC util/async.o
CC util/thread-pool.o
CC util/qemu-timer.o
CC util/main-loop.o
CC util/aio-posix.o
CC util/iohandler.o
CC util/compatfd.o
CC util/event_notifier-posix.o
CC util/mmap-alloc.o
CC util/oslib-posix.o
CC util/qemu-openpty.o
CC util/qemu-thread-posix.o
CC util/memfd.o
CC util/envlist.o
CC util/path.o
CC util/module.o
CC util/host-utils.o
CC util/bitmap.o
CC util/bitops.o
CC util/hbitmap.o
CC util/acl.o
CC util/fifo8.o
CC util/cacheinfo.o
CC util/error.o
CC util/qemu-error.o
CC util/id.o
CC util/iov.o
CC util/qemu-config.o
CC util/qemu-sockets.o
CC util/uri.o
CC util/notify.o
CC util/qemu-option.o
CC util/qemu-progress.o
CC util/keyval.o
CC util/hexdump.o
CC util/crc32c.o
CC util/uuid.o
CC util/throttle.o
CC util/getauxval.o
CC util/rcu.o
CC util/readline.o
CC util/qemu-coroutine.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-io.o
CC util/qemu-coroutine-sleep.o
CC util/coroutine-ucontext.o
CC util/buffer.o
CC util/timed-average.o
CC util/base64.o
CC util/log.o
CC util/pagesize.o
CC util/qdist.o
CC util/qht.o
CC util/range.o
CC util/stats64.o
CC util/systemd.o
CC trace-root.o
CC util/trace.o
CC crypto/trace.o
CC io/trace.o
CC migration/trace.o
CC block/trace.o
CC chardev/trace.o
CC hw/block/trace.o
CC hw/block/dataplane/trace.o
CC hw/char/trace.o
CC hw/intc/trace.o
CC hw/net/trace.o
CC hw/virtio/trace.o
CC hw/audio/trace.o
CC hw/misc/trace.o
CC hw/usb/trace.o
CC hw/scsi/trace.o
CC hw/nvram/trace.o
CC hw/display/trace.o
CC hw/input/trace.o
CC hw/timer/trace.o
CC hw/dma/trace.o
CC hw/sparc/trace.o
CC hw/isa/trace.o
CC hw/sd/trace.o
CC hw/mem/trace.o
CC hw/i386/trace.o
CC hw/i386/xen/trace.o
CC hw/9pfs/trace.o
CC hw/pci/trace.o
CC hw/ppc/trace.o
CC hw/s390x/trace.o
CC hw/vfio/trace.o
CC hw/acpi/trace.o
CC hw/arm/trace.o
CC hw/alpha/trace.o
CC hw/xen/trace.o
CC hw/ide/trace.o
CC ui/trace.o
CC audio/trace.o
CC net/trace.o
CC target/i386/trace.o
CC target/arm/trace.o
CC target/mips/trace.o
CC target/sparc/trace.o
CC target/s390x/trace.o
CC target/ppc/trace.o
CC qom/trace.o
CC linux-user/trace.o
CC accel/tcg/trace.o
CC accel/kvm/trace.o
CC qapi/trace.o
CC nbd/trace.o
CC crypto/pbkdf-stub.o
CC scsi/trace.o
CC stubs/arch-query-cpu-def.o
CC stubs/arch-query-cpu-model-expansion.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/blk-commit-all.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-clock.o
CC stubs/cpu-get-icount.o
CC stubs/dump.o
CC stubs/error-printf.o
CC stubs/gdbstub.o
CC stubs/fdset.o
CC stubs/get-vm-name.o
CC stubs/iothread.o
CC stubs/iothread-lock.o
CC stubs/is-daemonized.o
CC stubs/machine-init-done.o
CC stubs/migr-blocker.o
CC stubs/change-state-handler.o
CC stubs/monitor.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/replay.o
CC stubs/runstate-check.o
CC stubs/set-fd-handler.o
CC stubs/sysbus.o
CC stubs/slirp.o
CC stubs/tpm.o
CC stubs/trace-control.o
CC stubs/uuid.o
CC stubs/vm-stop.o
CC stubs/vmstate.o
CC stubs/qmp_pc_dimm.o
CC stubs/target-monitor-defs.o
CC stubs/target-get-monitor-def.o
CC stubs/pc_madt_cpu_entry.o
CC stubs/vmgenid.o
CC stubs/xen-common.o
CC stubs/xen-hvm.o
CC stubs/pci-host-piix.o
CC contrib/ivshmem-client/ivshmem-client.o
CC contrib/ivshmem-client/main.o
CC contrib/ivshmem-server/ivshmem-server.o
CC contrib/ivshmem-server/main.o
CC qemu-nbd.o
CC block.o
CC blockjob.o
CC qemu-io-cmds.o
CC replication.o
CC block/vdi.o
CC block/raw-format.o
CC block/qcow.o
CC block/vmdk.o
CC block/cloop.o
CC block/bochs.o
CC block/vpc.o
CC block/vvfat.o
CC block/dmg.o
CC block/qcow2.o
CC block/qcow2-refcount.o
CC block/qcow2-cluster.o
CC block/qcow2-snapshot.o
CC block/qcow2-cache.o
CC block/qcow2-bitmap.o
CC block/qed.o
CC block/qed-l2-cache.o
CC block/qed-table.o
CC block/qed-cluster.o
CC block/qed-check.o
CC block/vhdx-endian.o
CC block/vhdx.o
CC block/vhdx-log.o
CC block/quorum.o
CC block/parallels.o
CC block/blkdebug.o
CC block/blkverify.o
CC block/blkreplay.o
CC block/block-backend.o
CC block/snapshot.o
CC block/qapi.o
CC block/file-posix.o
CC block/null.o
CC block/mirror.o
CC block/commit.o
CC block/io.o
CC block/throttle-groups.o
CC block/nbd.o
CC block/nbd-client.o
CC block/sheepdog.o
CC block/accounting.o
CC block/dirty-bitmap.o
CC block/write-threshold.o
CC block/backup.o
CC block/replication.o
CC block/throttle.o
CC block/crypto.o
CC nbd/server.o
CC nbd/client.o
CC nbd/common.o
CC scsi/utils.o
CC scsi/pr-manager.o
CC scsi/pr-manager-helper.o
CC block/dmg-bz2.o
CC crypto/init.o
CC crypto/hash.o
CC crypto/hash-glib.o
CC crypto/hmac.o
CC crypto/hmac-glib.o
CC crypto/aes.o
CC crypto/desrfb.o
CC crypto/cipher.o
CC crypto/tlscreds.o
CC crypto/tlscredsanon.o
CC crypto/tlscredsx509.o
CC crypto/secret.o
CC crypto/tlssession.o
CC crypto/random-platform.o
CC crypto/pbkdf.o
CC crypto/ivgen.o
CC crypto/ivgen-essiv.o
CC crypto/ivgen-plain.o
CC crypto/ivgen-plain64.o
CC crypto/xts.o
CC crypto/afsplit.o
CC crypto/block-qcow.o
CC crypto/block.o
CC crypto/block-luks.o
CC io/channel-buffer.o
CC io/channel.o
CC io/channel-command.o
CC io/channel-file.o
CC io/channel-socket.o
CC io/channel-watch.o
CC io/channel-tls.o
CC io/channel-websock.o
CC io/channel-util.o
CC io/dns-resolver.o
CC io/task.o
CC qom/object.o
CC qom/container.o
CC qom/qom-qobject.o
CC qom/object_interfaces.o
CC qemu-io.o
GEN qemu-img-cmds.h
CC scsi/qemu-pr-helper.o
CC qemu-bridge-helper.o
CC blockdev.o
CC blockdev-nbd.o
CC bootdevice.o
CC iothread.o
CC qdev-monitor.o
CC device-hotplug.o
CC os-posix.o
CC bt-host.o
CC bt-vhci.o
CC vl.o
CC dma-helpers.o
CC tpm.o
CC qmp-marshal.o
CC device_tree.o
CC qmp.o
CC hmp.o
CC cpus-common.o
CC audio/audio.o
CC audio/noaudio.o
CC audio/wavaudio.o
CC audio/mixeng.o
CC audio/sdlaudio.o
CC audio/ossaudio.o
CC audio/spiceaudio.o
CC audio/wavcapture.o
CC backends/rng.o
CC backends/rng-egd.o
CC backends/rng-random.o
CC backends/tpm.o
CC backends/hostmem.o
CC backends/hostmem-ram.o
CC backends/hostmem-file.o
CC backends/cryptodev.o
CC backends/cryptodev-builtin.o
CC block/stream.o
CC chardev/msmouse.o
CC chardev/testdev.o
CC chardev/spice.o
CC chardev/wctablet.o
CC disas/arm.o
CC disas/i386.o
CC fsdev/qemu-fsdev-dummy.o
CC fsdev/qemu-fsdev-opts.o
CC fsdev/qemu-fsdev-throttle.o
CC hw/acpi/core.o
CC hw/acpi/piix4.o
CC hw/acpi/pcihp.o
CC hw/acpi/ich9.o
CC hw/acpi/tco.o
CC hw/acpi/cpu_hotplug.o
CC hw/acpi/memory_hotplug.o
CC hw/acpi/cpu.o
CC hw/acpi/nvdimm.o
CC hw/acpi/vmgenid.o
CC hw/acpi/acpi_interface.o
CC hw/acpi/bios-linker-loader.o
CC hw/acpi/aml-build.o
CC hw/acpi/ipmi.o
CC hw/acpi/acpi-stub.o
CC hw/acpi/ipmi-stub.o
CC hw/audio/sb16.o
CC hw/audio/es1370.o
CC hw/audio/ac97.o
CC hw/audio/fmopl.o
CC hw/audio/adlib.o
CC hw/audio/gus.o
CC hw/audio/gusemu_hal.o
CC hw/audio/gusemu_mixer.o
CC hw/audio/cs4231a.o
CC hw/audio/intel-hda.o
CC hw/audio/hda-codec.o
CC hw/audio/pcspk.o
CC hw/audio/wm8750.o
CC hw/audio/pl041.o
CC hw/audio/lm4549.o
CC hw/audio/marvell_88w8618.o
CC hw/audio/soundhw.o
CC hw/block/block.o
CC hw/block/cdrom.o
CC hw/block/hd-geometry.o
CC hw/block/fdc.o
CC hw/block/m25p80.o
CC hw/block/nand.o
CC hw/block/pflash_cfi01.o
CC hw/block/pflash_cfi02.o
CC hw/block/xen_disk.o
CC hw/block/ecc.o
CC hw/block/onenand.o
CC hw/block/nvme.o
CC hw/bt/core.o
CC hw/bt/l2cap.o
CC hw/bt/sdp.o
CC hw/bt/hci.o
CC hw/bt/hid.o
CC hw/bt/hci-csr.o
CC hw/char/ipoctal232.o
CC hw/char/parallel.o
CC hw/char/pl011.o
CC hw/char/serial.o
CC hw/char/serial-pci.o
CC hw/char/serial-isa.o
CC hw/char/virtio-console.o
CC hw/char/xen_console.o
CC hw/char/cadence_uart.o
CC hw/char/cmsdk-apb-uart.o
CC hw/char/imx_serial.o
CC hw/char/debugcon.o
CC hw/core/qdev.o
CC hw/core/qdev-properties.o
CC hw/core/bus.o
CC hw/core/reset.o
CC hw/core/fw-path-provider.o
CC hw/core/irq.o
CC hw/core/hotplug.o
CC hw/core/nmi.o
CC hw/core/ptimer.o
CC hw/core/sysbus.o
CC hw/core/machine.o
CC hw/core/loader.o
CC hw/core/qdev-properties-system.o
CC hw/core/register.o
CC hw/core/or-irq.o
CC hw/core/platform-bus.o
CC hw/cpu/core.o
CC hw/display/ads7846.o
CC hw/display/cirrus_vga.o
CC hw/display/ssd0303.o
CC hw/display/ssd0323.o
CC hw/display/pl110.o
CC hw/display/xenfb.o
CC hw/display/vga-pci.o
CC hw/display/vga-isa.o
CC hw/display/vmware_vga.o
CC hw/display/blizzard.o
CC hw/display/exynos4210_fimd.o
CC hw/display/framebuffer.o
CC hw/display/tc6393xb.o
CC hw/display/qxl.o
CC hw/display/qxl-logger.o
CC hw/display/qxl-render.o
CC hw/dma/pl080.o
CC hw/dma/pl330.o
CC hw/dma/i8257.o
CC hw/dma/xlnx-zynq-devcfg.o
CC hw/gpio/max7310.o
CC hw/gpio/pl061.o
CC hw/gpio/zaurus.o
CC hw/gpio/gpio_key.o
CC hw/i2c/core.o
CC hw/i2c/smbus.o
CC hw/i2c/smbus_eeprom.o
CC hw/i2c/i2c-ddc.o
CC hw/i2c/versatile_i2c.o
CC hw/i2c/smbus_ich9.o
CC hw/i2c/pm_smbus.o
CC hw/i2c/bitbang_i2c.o
CC hw/i2c/exynos4210_i2c.o
CC hw/i2c/imx_i2c.o
CC hw/i2c/aspeed_i2c.o
CC hw/ide/core.o
CC hw/ide/atapi.o
CC hw/ide/qdev.o
CC hw/ide/pci.o
CC hw/ide/isa.o
CC hw/ide/piix.o
CC hw/ide/microdrive.o
CC hw/ide/ahci.o
CC hw/ide/ich.o
CC hw/ide/ahci-allwinner.o
CC hw/input/hid.o
CC hw/input/lm832x.o
CC hw/input/pckbd.o
CC hw/input/ps2.o
CC hw/input/stellaris_input.o
CC hw/input/pl050.o
CC hw/input/vmmouse.o
CC hw/input/virtio-input.o
CC hw/input/tsc2005.o
CC hw/input/virtio-input-hid.o
CC hw/input/virtio-input-host.o
CC hw/intc/i8259_common.o
CC hw/intc/i8259.o
CC hw/intc/pl190.o
CC hw/intc/imx_avic.o
CC hw/intc/realview_gic.o
CC hw/intc/ioapic_common.o
CC hw/intc/arm_gic_common.o
CC hw/intc/arm_gic.o
CC hw/intc/arm_gicv2m.o
CC hw/intc/arm_gicv3_common.o
CC hw/intc/arm_gicv3.o
CC hw/intc/arm_gicv3_redist.o
CC hw/intc/arm_gicv3_dist.o
CC hw/intc/intc.o
CC hw/intc/arm_gicv3_its_common.o
CC hw/ipack/tpci200.o
CC hw/ipack/ipack.o
CC hw/ipmi/ipmi.o
CC hw/ipmi/ipmi_bmc_sim.o
CC hw/ipmi/isa_ipmi_kcs.o
CC hw/ipmi/ipmi_bmc_extern.o
CC hw/ipmi/isa_ipmi_bt.o
CC hw/isa/isa-bus.o
CC hw/isa/apm.o
CC hw/mem/pc-dimm.o
CC hw/mem/nvdimm.o
CC hw/misc/applesmc.o
CC hw/misc/max111x.o
CC hw/misc/tmp105.o
CC hw/misc/tmp421.o
CC hw/misc/debugexit.o
CC hw/misc/sga.o
CC hw/misc/pc-testdev.o
CC hw/misc/pci-testdev.o
CC hw/misc/edu.o
CC hw/misc/unimp.o
CC hw/misc/vmcoreinfo.o
CC hw/misc/arm_l2x0.o
CC hw/misc/arm_integrator_debug.o
CC hw/misc/a9scu.o
CC hw/misc/arm11scu.o
CC hw/net/xen_nic.o
CC hw/net/ne2000.o
CC hw/net/eepro100.o
CC hw/net/pcnet-pci.o
CC hw/net/pcnet.o
CC hw/net/e1000.o
CC hw/net/e1000x_common.o
CC hw/net/net_tx_pkt.o
CC hw/net/net_rx_pkt.o
CC hw/net/e1000e.o
CC hw/net/e1000e_core.o
CC hw/net/rtl8139.o
CC hw/net/vmxnet3.o
CC hw/net/smc91c111.o
CC hw/net/lan9118.o
CC hw/net/ne2000-isa.o
CC hw/net/xgmac.o
CC hw/net/allwinner_emac.o
CC hw/net/imx_fec.o
CC hw/net/cadence_gem.o
CC hw/net/stellaris_enet.o
CC hw/net/ftgmac100.o
CC hw/net/rocker/rocker.o
CC hw/net/rocker/rocker_fp.o
CC hw/net/rocker/rocker_desc.o
CC hw/net/rocker/rocker_world.o
CC hw/net/rocker/rocker_of_dpa.o
CC hw/nvram/eeprom93xx.o
CC hw/nvram/fw_cfg.o
CC hw/nvram/chrp_nvram.o
CC hw/pci-bridge/pci_bridge_dev.o
CC hw/pci-bridge/pcie_pci_bridge.o
CC hw/pci-bridge/pcie_root_port.o
CC hw/pci-bridge/gen_pcie_root_port.o
CC hw/pci-bridge/pci_expander_bridge.o
CC hw/pci-bridge/xio3130_upstream.o
CC hw/pci-bridge/xio3130_downstream.o
CC hw/pci-bridge/ioh3420.o
CC hw/pci-bridge/i82801b11.o
CC hw/pci-host/pam.o
CC hw/pci-host/versatile.o
CC hw/pci-host/piix.o
CC hw/pci-host/q35.o
CC hw/pci/pci.o
CC hw/pci-host/gpex.o
CC hw/pci/pci_bridge.o
CC hw/pci/msix.o
CC hw/pci/msi.o
CC hw/pci/shpc.o
CC hw/pci/slotid_cap.o
CC hw/pci/pci_host.o
CC hw/pci/pcie_host.o
CC hw/pci/pcie.o
CC hw/pci/pcie_aer.o
CC hw/pci/pcie_port.o
CC hw/pci/pci-stub.o
CC hw/pcmcia/pcmcia.o
CC hw/scsi/scsi-disk.o
CC hw/scsi/scsi-generic.o
CC hw/scsi/scsi-bus.o
CC hw/scsi/lsi53c895a.o
CC hw/scsi/mptsas.o
CC hw/scsi/mptconfig.o
CC hw/scsi/mptendian.o
CC hw/scsi/megasas.o
CC hw/scsi/vmw_pvscsi.o
CC hw/scsi/esp.o
CC hw/scsi/esp-pci.o
CC hw/sd/pl181.o
CC hw/sd/ssi-sd.o
CC hw/sd/sd.o
CC hw/sd/core.o
CC hw/sd/sdhci.o
CC hw/smbios/smbios.o
CC hw/smbios/smbios_type_38.o
CC hw/smbios/smbios-stub.o
CC hw/smbios/smbios_type_38-stub.o
CC hw/ssi/pl022.o
CC hw/ssi/ssi.o
CC hw/ssi/xilinx_spips.o
CC hw/ssi/aspeed_smc.o
CC hw/ssi/stm32f2xx_spi.o
CC hw/timer/arm_timer.o
CC hw/ssi/mss-spi.o
CC hw/timer/arm_mptimer.o
CC hw/timer/armv7m_systick.o
CC hw/timer/a9gtimer.o
CC hw/timer/cadence_ttc.o
CC hw/timer/ds1338.o
CC hw/timer/hpet.o
CC hw/timer/i8254_common.o
CC hw/timer/i8254.o
CC hw/timer/pl031.o
CC hw/timer/twl92230.o
CC hw/timer/imx_epit.o
CC hw/timer/imx_gpt.o
CC hw/timer/stm32f2xx_timer.o
CC hw/timer/aspeed_timer.o
CC hw/timer/cmsdk-apb-timer.o
CC hw/timer/mss-timer.o
CC hw/tpm/tpm_tis.o
CC hw/tpm/tpm_passthrough.o
CC hw/tpm/tpm_util.o
CC hw/tpm/tpm_emulator.o
CC hw/usb/core.o
CC hw/usb/combined-packet.o
CC hw/usb/bus.o
CC hw/usb/libhw.o
CC hw/usb/desc.o
CC hw/usb/desc-msos.o
CC hw/usb/hcd-uhci.o
CC hw/usb/hcd-ohci.o
CC hw/usb/hcd-ehci.o
CC hw/usb/hcd-ehci-sysbus.o
CC hw/usb/hcd-ehci-pci.o
CC hw/usb/hcd-xhci.o
CC hw/usb/hcd-xhci-nec.o
CC hw/usb/hcd-musb.o
CC hw/usb/dev-hub.o
CC hw/usb/dev-hid.o
CC hw/usb/dev-wacom.o
CC hw/usb/dev-storage.o
CC hw/usb/dev-uas.o
CC hw/usb/dev-audio.o
CC hw/usb/dev-serial.o
CC hw/usb/dev-network.o
CC hw/usb/dev-bluetooth.o
CC hw/usb/dev-smartcard-reader.o
CC hw/usb/ccid-card-passthru.o
CC hw/usb/ccid-card-emulated.o
CC hw/usb/dev-mtp.o
CC hw/virtio/virtio-rng.o
CC hw/usb/host-stub.o
CC hw/virtio/virtio-pci.o
CC hw/virtio/virtio-bus.o
CC hw/virtio/virtio-mmio.o
CC hw/virtio/vhost-stub.o
CC hw/watchdog/watchdog.o
CC hw/watchdog/wdt_ib700.o
CC hw/watchdog/wdt_i6300esb.o
CC hw/watchdog/wdt_aspeed.o
CC hw/xen/xen_backend.o
CC hw/xen/xen_devconfig.o
CC hw/xen/xen_pvdev.o
CC hw/xen/xen-common.o
CC migration/migration.o
CC migration/socket.o
CC migration/fd.o
CC migration/exec.o
CC migration/tls.o
CC migration/channel.o
CC migration/savevm.o
CC migration/colo-comm.o
CC migration/colo.o
CC migration/colo-failover.o
CC migration/vmstate.o
CC migration/vmstate-types.o
CC migration/page_cache.o
CC migration/qemu-file.o
CC migration/global_state.o
CC migration/qemu-file-channel.o
CC migration/xbzrle.o
CC migration/postcopy-ram.o
CC migration/qjson.o
CC migration/rdma.o
CC migration/block.o
CC net/net.o
CC net/queue.o
CC net/checksum.o
CC net/util.o
CC net/socket.o
CC net/hub.o
CC net/dump.o
CC net/eth.o
CC net/l2tpv3.o
CC net/vhost-user.o
CC net/slirp.o
CC net/filter-buffer.o
CC net/filter-mirror.o
CC net/filter.o
CC net/colo-compare.o
CC net/colo.o
CC net/filter-rewriter.o
CC net/filter-replay.o
CC net/tap.o
CC net/tap-linux.o
CC qom/cpu.o
CC replay/replay.o
CC replay/replay-internal.o
CC replay/replay-time.o
CC replay/replay-events.o
CC replay/replay-input.o
CC replay/replay-char.o
CC replay/replay-snapshot.o
/tmp/qemu-test/src/replay/replay-internal.c: In function 'replay_put_array':
/tmp/qemu-test/src/replay/replay-internal.c:65: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
CC replay/replay-net.o
CC replay/replay-audio.o
CC slirp/cksum.o
CC slirp/if.o
CC slirp/ip_icmp.o
CC slirp/ip6_icmp.o
CC slirp/ip6_input.o
CC slirp/ip6_output.o
CC slirp/ip_input.o
CC slirp/ip_output.o
CC slirp/dnssearch.o
CC slirp/dhcpv6.o
CC slirp/slirp.o
CC slirp/mbuf.o
CC slirp/misc.o
CC slirp/sbuf.o
CC slirp/socket.o
CC slirp/tcp_input.o
CC slirp/tcp_output.o
CC slirp/tcp_subr.o
CC slirp/tcp_timer.o
CC slirp/udp.o
CC slirp/udp6.o
CC slirp/bootp.o
/tmp/qemu-test/src/slirp/tcp_input.c: In function 'tcp_input':
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_p' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_len' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_tos' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_id' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_off' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_ttl' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_sum' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_src.s_addr' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_dst.s_addr' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:220: warning: 'save_ip6.ip_nh' may be used uninitialized in this function
CC slirp/arp_table.o
CC slirp/tftp.o
CC slirp/ndp_table.o
CC slirp/ncsi.o
CC ui/keymaps.o
CC ui/console.o
CC ui/cursor.o
CC ui/qemu-pixman.o
CC ui/input-keymap.o
CC ui/input.o
CC ui/input-legacy.o
CC ui/input-linux.o
CC ui/spice-core.o
CC ui/spice-input.o
CC ui/spice-display.o
CC ui/sdl.o
CC ui/sdl_zoom.o
CC ui/x_keymap.o
CC ui/curses.o
CC ui/vnc.o
CC ui/vnc-enc-zlib.o
CC ui/vnc-enc-hextile.o
CC ui/vnc-enc-tight.o
CC ui/vnc-palette.o
CC ui/vnc-enc-zrle.o
CC ui/vnc-auth-vencrypt.o
CC ui/vnc-ws.o
CC ui/vnc-jobs.o
CC ui/gtk.o
VERT ui/shader/texture-blit-vert.h
VERT ui/shader/texture-blit-flip-vert.h
CC ui/console-gl.o
FRAG ui/shader/texture-blit-frag.h
CC ui/egl-helpers.o
CC ui/egl-context.o
CC chardev/char.o
CC ui/gtk-egl.o
CC chardev/char-fd.o
CC chardev/char-fe.o
CC chardev/char-file.o
CC chardev/char-io.o
CC chardev/char-mux.o
CC chardev/char-null.o
CC chardev/char-parallel.o
CC chardev/char-pipe.o
CC chardev/char-pty.o
CC chardev/char-ringbuf.o
CC chardev/char-serial.o
CC chardev/char-socket.o
CC chardev/char-stdio.o
CC chardev/char-udp.o
LINK tests/qemu-iotests/socket_scm_helper
CC qga/commands.o
CC qga/guest-agent-command-state.o
CC qga/main.o
CC qga/commands-posix.o
CC qga/channel-posix.o
CC qga/qapi-generated/qga-qapi-types.o
CC qga/qapi-generated/qga-qapi-visit.o
CC qga/qapi-generated/qga-qmp-marshal.o
AR libqemuutil.a
AS optionrom/multiboot.o
CC qemu-img.o
AS optionrom/linuxboot.o
CC ui/shader.o
CC optionrom/linuxboot_dma.o
AS optionrom/kvmvapic.o
BUILD optionrom/multiboot.img
BUILD optionrom/linuxboot.img
cc: unrecognized option '-no-integrated-as'
cc: unrecognized option '-no-integrated-as'
BUILD optionrom/multiboot.raw
BUILD optionrom/kvmvapic.img
BUILD optionrom/linuxboot_dma.img
BUILD optionrom/linuxboot.raw
BUILD optionrom/kvmvapic.raw
SIGN optionrom/multiboot.bin
SIGN optionrom/kvmvapic.bin
BUILD optionrom/linuxboot_dma.raw
SIGN optionrom/linuxboot.bin
SIGN optionrom/linuxboot_dma.bin
LINK qemu-ga
LINK ivshmem-client
LINK ivshmem-server
LINK qemu-nbd
LINK qemu-img
LINK qemu-io
LINK scsi/qemu-pr-helper
LINK qemu-bridge-helper
In file included from /usr/include/gtk-2.0/gtk/gtk.h:235,
from /tmp/qemu-test/src/include/ui/gtk.h:10,
from /tmp/qemu-test/src/ui/gtk.c:43:
/usr/include/gtk-2.0/gtk/gtkitemfactory.h:47: warning: function declaration isn't a prototype
In file included from /usr/include/gtk-2.0/gtk/gtk.h:235,
from /tmp/qemu-test/src/include/ui/gtk.h:10,
from /tmp/qemu-test/src/ui/gtk-egl.c:21:
/usr/include/gtk-2.0/gtk/gtkitemfactory.h:47: warning: function declaration isn't a prototype
GEN x86_64-softmmu/hmp-commands.h
GEN x86_64-softmmu/config-target.h
GEN x86_64-softmmu/hmp-commands-info.h
GEN aarch64-softmmu/hmp-commands.h
GEN aarch64-softmmu/config-target.h
GEN aarch64-softmmu/hmp-commands-info.h
CC x86_64-softmmu/tcg/tcg-op.o
CC x86_64-softmmu/exec.o
CC x86_64-softmmu/tcg/tcg.o
CC x86_64-softmmu/tcg/optimize.o
CC x86_64-softmmu/fpu/softfloat.o
CC x86_64-softmmu/tcg/tcg-common.o
CC x86_64-softmmu/disas.o
CC aarch64-softmmu/exec.o
GEN x86_64-softmmu/gdbstub-xml.c
CC x86_64-softmmu/arch_init.o
CC aarch64-softmmu/tcg/tcg.o
CC aarch64-softmmu/tcg/tcg-op.o
CC x86_64-softmmu/cpus.o
CC x86_64-softmmu/monitor.o
CC aarch64-softmmu/tcg/optimize.o
CC x86_64-softmmu/gdbstub.o
CC x86_64-softmmu/balloon.o
CC x86_64-softmmu/ioport.o
CC x86_64-softmmu/numa.o
CC x86_64-softmmu/qtest.o
CC x86_64-softmmu/memory.o
CC aarch64-softmmu/tcg/tcg-common.o
CC x86_64-softmmu/memory_mapping.o
CC x86_64-softmmu/dump.o
CC aarch64-softmmu/fpu/softfloat.o
CC x86_64-softmmu/migration/ram.o
CC aarch64-softmmu/disas.o
CC x86_64-softmmu/accel/accel.o
GEN aarch64-softmmu/gdbstub-xml.c
CC aarch64-softmmu/arch_init.o
CC x86_64-softmmu/accel/kvm/kvm-all.o
CC aarch64-softmmu/cpus.o
CC x86_64-softmmu/accel/stubs/hax-stub.o
CC x86_64-softmmu/accel/tcg/tcg-all.o
CC x86_64-softmmu/accel/tcg/cputlb.o
CC aarch64-softmmu/monitor.o
CC x86_64-softmmu/accel/tcg/tcg-runtime.o
CC x86_64-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/gdbstub.o
CC x86_64-softmmu/accel/tcg/cpu-exec-common.o
CC aarch64-softmmu/balloon.o
CC x86_64-softmmu/accel/tcg/translate-all.o
CC x86_64-softmmu/accel/tcg/translator.o
CC x86_64-softmmu/hw/block/virtio-blk.o
CC aarch64-softmmu/ioport.o
CC x86_64-softmmu/hw/block/dataplane/virtio-blk.o
CC aarch64-softmmu/numa.o
CC aarch64-softmmu/qtest.o
CC aarch64-softmmu/memory.o
CC x86_64-softmmu/hw/char/virtio-serial-bus.o
CC aarch64-softmmu/memory_mapping.o
CC x86_64-softmmu/hw/core/generic-loader.o
CC x86_64-softmmu/hw/core/null-machine.o
CC x86_64-softmmu/hw/display/vga.o
CC aarch64-softmmu/dump.o
CC aarch64-softmmu/migration/ram.o
CC aarch64-softmmu/accel/accel.o
CC aarch64-softmmu/accel/stubs/hax-stub.o
CC x86_64-softmmu/hw/display/virtio-gpu.o
CC x86_64-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/accel/stubs/kvm-stub.o
CC aarch64-softmmu/accel/tcg/tcg-all.o
CC x86_64-softmmu/hw/display/virtio-gpu-pci.o
CC x86_64-softmmu/hw/display/virtio-vga.o
CC x86_64-softmmu/hw/intc/apic.o
CC aarch64-softmmu/accel/tcg/cputlb.o
CC x86_64-softmmu/hw/intc/ioapic.o
CC x86_64-softmmu/hw/intc/apic_common.o
CC aarch64-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/accel/tcg/tcg-runtime.o
CC aarch64-softmmu/accel/tcg/cpu-exec-common.o
CC x86_64-softmmu/hw/isa/lpc_ich9.o
CC aarch64-softmmu/accel/tcg/translate-all.o
CC x86_64-softmmu/hw/misc/vmport.o
CC aarch64-softmmu/accel/tcg/translator.o
CC x86_64-softmmu/hw/misc/ivshmem.o
CC x86_64-softmmu/hw/misc/pvpanic.o
CC aarch64-softmmu/hw/adc/stm32f2xx_adc.o
CC x86_64-softmmu/hw/misc/hyperv_testdev.o
CC aarch64-softmmu/hw/block/virtio-blk.o
CC aarch64-softmmu/hw/block/dataplane/virtio-blk.o
CC aarch64-softmmu/hw/char/exynos4210_uart.o
CC aarch64-softmmu/hw/char/omap_uart.o
CC x86_64-softmmu/hw/misc/mmio_interface.o
CC x86_64-softmmu/hw/net/virtio-net.o
CC aarch64-softmmu/hw/char/digic-uart.o
CC aarch64-softmmu/hw/char/stm32f2xx_usart.o
CC aarch64-softmmu/hw/char/bcm2835_aux.o
CC x86_64-softmmu/hw/net/vhost_net.o
CC aarch64-softmmu/hw/char/virtio-serial-bus.o
CC x86_64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/core/null-machine.o
CC x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/hw/cpu/arm11mpcore.o
CC aarch64-softmmu/hw/cpu/realview_mpcore.o
CC aarch64-softmmu/hw/cpu/a9mpcore.o
CC x86_64-softmmu/hw/scsi/vhost-scsi-common.o
CC aarch64-softmmu/hw/cpu/a15mpcore.o
CC aarch64-softmmu/hw/display/omap_dss.o
CC aarch64-softmmu/hw/display/pxa2xx_lcd.o
CC aarch64-softmmu/hw/display/omap_lcdc.o
CC x86_64-softmmu/hw/scsi/vhost-scsi.o
CC aarch64-softmmu/hw/display/bcm2835_fb.o
CC aarch64-softmmu/hw/display/vga.o
CC aarch64-softmmu/hw/display/virtio-gpu.o
CC aarch64-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/hw/display/virtio-gpu-pci.o
CC aarch64-softmmu/hw/display/dpcd.o
CC x86_64-softmmu/hw/scsi/vhost-user-scsi.o
CC x86_64-softmmu/hw/timer/mc146818rtc.o
CC x86_64-softmmu/hw/vfio/common.o
CC x86_64-softmmu/hw/vfio/pci.o
CC x86_64-softmmu/hw/vfio/pci-quirks.o
CC x86_64-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/hw/display/xlnx_dp.o
CC x86_64-softmmu/hw/vfio/spapr.o
CC x86_64-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/dma/xlnx_dpdma.o
CC aarch64-softmmu/hw/dma/omap_dma.o
CC x86_64-softmmu/hw/virtio/virtio-balloon.o
CC x86_64-softmmu/hw/virtio/vhost.o
CC x86_64-softmmu/hw/virtio/vhost-backend.o
CC x86_64-softmmu/hw/virtio/vhost-user.o
CC x86_64-softmmu/hw/virtio/vhost-vsock.o
CC x86_64-softmmu/hw/virtio/virtio-crypto.o
CC x86_64-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/dma/soc_dma.o
CC x86_64-softmmu/hw/xen/xen-host-pci-device.o
CC aarch64-softmmu/hw/dma/pxa2xx_dma.o
CC aarch64-softmmu/hw/dma/bcm2835_dma.o
CC x86_64-softmmu/hw/xen/xen_pt.o
CC x86_64-softmmu/hw/xen/xen_pt_config_init.o
CC aarch64-softmmu/hw/gpio/omap_gpio.o
CC aarch64-softmmu/hw/gpio/imx_gpio.o
CC x86_64-softmmu/hw/xen/xen_pt_graphics.o
CC x86_64-softmmu/hw/xen/xen_pt_msi.o
CC aarch64-softmmu/hw/gpio/bcm2835_gpio.o
CC aarch64-softmmu/hw/i2c/omap_i2c.o
CC aarch64-softmmu/hw/input/pxa2xx_keypad.o
CC aarch64-softmmu/hw/input/tsc210x.o
CC aarch64-softmmu/hw/intc/armv7m_nvic.o
CC x86_64-softmmu/hw/i386/multiboot.o
CC x86_64-softmmu/hw/i386/pc.o
CC aarch64-softmmu/hw/intc/exynos4210_gic.o
CC x86_64-softmmu/hw/i386/pc_piix.o
CC x86_64-softmmu/hw/i386/pc_q35.o
CC aarch64-softmmu/hw/intc/exynos4210_combiner.o
CC x86_64-softmmu/hw/i386/pc_sysfw.o
CC aarch64-softmmu/hw/intc/omap_intc.o
CC x86_64-softmmu/hw/i386/x86-iommu.o
CC aarch64-softmmu/hw/intc/bcm2835_ic.o
CC aarch64-softmmu/hw/intc/bcm2836_control.o
CC x86_64-softmmu/hw/i386/intel_iommu.o
/tmp/qemu-test/src/hw/i386/pc_piix.c: In function 'igd_passthrough_isa_bridge_create':
/tmp/qemu-test/src/hw/i386/pc_piix.c:1072: warning: 'pch_rev_id' may be used uninitialized in this function
CC x86_64-softmmu/hw/i386/amd_iommu.o
CC x86_64-softmmu/hw/i386/kvmvapic.o
CC x86_64-softmmu/hw/i386/acpi-build.o
CC x86_64-softmmu/hw/i386/pci-assign-load-rom.o
CC aarch64-softmmu/hw/intc/allwinner-a10-pic.o
CC x86_64-softmmu/hw/i386/../xenpv/xen_machine_pv.o
CC aarch64-softmmu/hw/intc/aspeed_vic.o
CC x86_64-softmmu/hw/i386/kvm/clock.o
/tmp/qemu-test/src/hw/i386/acpi-build.c: In function 'build_append_pci_bus_devices':
/tmp/qemu-test/src/hw/i386/acpi-build.c:509: warning: 'notify_method' may be used uninitialized in this function
CC x86_64-softmmu/hw/i386/kvm/ioapic.o
CC x86_64-softmmu/hw/i386/kvm/apic.o
CC x86_64-softmmu/hw/i386/kvm/i8259.o
CC aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
CC x86_64-softmmu/hw/i386/kvm/i8254.o
CC aarch64-softmmu/hw/misc/ivshmem.o
CC x86_64-softmmu/hw/i386/kvm/pci-assign.o
CC x86_64-softmmu/hw/i386/xen/xen_platform.o
CC x86_64-softmmu/hw/i386/xen/xen_apic.o
CC aarch64-softmmu/hw/misc/arm_sysctl.o
CC x86_64-softmmu/hw/i386/xen/xen_pvdevice.o
CC x86_64-softmmu/hw/i386/xen/xen-hvm.o
CC x86_64-softmmu/hw/i386/xen/xen-mapcache.o
CC x86_64-softmmu/target/i386/helper.o
CC aarch64-softmmu/hw/misc/cbus.o
CC aarch64-softmmu/hw/misc/exynos4210_pmu.o
CC x86_64-softmmu/target/i386/cpu.o
CC aarch64-softmmu/hw/misc/exynos4210_clk.o
CC aarch64-softmmu/hw/misc/exynos4210_rng.o
CC x86_64-softmmu/target/i386/gdbstub.o
CC x86_64-softmmu/target/i386/xsave_helper.o
CC aarch64-softmmu/hw/misc/imx_ccm.o
CC x86_64-softmmu/target/i386/translate.o
CC aarch64-softmmu/hw/misc/imx31_ccm.o
CC aarch64-softmmu/hw/misc/imx25_ccm.o
CC aarch64-softmmu/hw/misc/imx6_ccm.o
CC aarch64-softmmu/hw/misc/imx6_src.o
CC x86_64-softmmu/target/i386/bpt_helper.o
CC x86_64-softmmu/target/i386/cc_helper.o
CC aarch64-softmmu/hw/misc/mst_fpga.o
CC aarch64-softmmu/hw/misc/omap_gpmc.o
CC aarch64-softmmu/hw/misc/omap_clk.o
CC aarch64-softmmu/hw/misc/omap_l4.o
CC aarch64-softmmu/hw/misc/omap_sdrc.o
CC aarch64-softmmu/hw/misc/omap_tap.o
CC x86_64-softmmu/target/i386/excp_helper.o
CC x86_64-softmmu/target/i386/fpu_helper.o
CC x86_64-softmmu/target/i386/mem_helper.o
CC x86_64-softmmu/target/i386/int_helper.o
CC aarch64-softmmu/hw/misc/bcm2835_mbox.o
CC aarch64-softmmu/hw/misc/bcm2835_property.o
CC aarch64-softmmu/hw/misc/zynq_slcr.o
CC aarch64-softmmu/hw/misc/bcm2835_rng.o
CC x86_64-softmmu/target/i386/misc_helper.o
CC x86_64-softmmu/target/i386/mpx_helper.o
CC aarch64-softmmu/hw/misc/zynq-xadc.o
CC aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
CC aarch64-softmmu/hw/misc/mps2-scc.o
CC aarch64-softmmu/hw/misc/auxbus.o
CC x86_64-softmmu/target/i386/seg_helper.o
CC x86_64-softmmu/target/i386/smm_helper.o
CC aarch64-softmmu/hw/misc/aspeed_scu.o
CC aarch64-softmmu/hw/misc/aspeed_sdmc.o
CC aarch64-softmmu/hw/misc/mmio_interface.o
CC aarch64-softmmu/hw/misc/msf2-sysreg.o
CC aarch64-softmmu/hw/net/virtio-net.o
CC x86_64-softmmu/target/i386/svm_helper.o
CC x86_64-softmmu/target/i386/machine.o
CC aarch64-softmmu/hw/net/vhost_net.o
CC aarch64-softmmu/hw/pcmcia/pxa2xx.o
CC x86_64-softmmu/target/i386/arch_memory_mapping.o
CC aarch64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC x86_64-softmmu/target/i386/arch_dump.o
CC aarch64-softmmu/hw/scsi/vhost-scsi-common.o
CC aarch64-softmmu/hw/scsi/vhost-scsi.o
CC aarch64-softmmu/hw/scsi/vhost-user-scsi.o
CC x86_64-softmmu/target/i386/monitor.o
CC x86_64-softmmu/target/i386/kvm.o
CC x86_64-softmmu/target/i386/hyperv.o
CC aarch64-softmmu/hw/sd/omap_mmc.o
CC aarch64-softmmu/hw/sd/pxa2xx_mmci.o
CC aarch64-softmmu/hw/sd/bcm2835_sdhost.o
CC aarch64-softmmu/hw/ssi/omap_spi.o
CC aarch64-softmmu/hw/ssi/imx_spi.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/hw/timer/exynos4210_mct.o
CC x86_64-softmmu/trace/control-target.o
CC aarch64-softmmu/hw/timer/exynos4210_pwm.o
CC aarch64-softmmu/hw/timer/exynos4210_rtc.o
CC aarch64-softmmu/hw/timer/omap_gptimer.o
CC aarch64-softmmu/hw/timer/omap_synctimer.o
CC aarch64-softmmu/hw/timer/pxa2xx_timer.o
CC aarch64-softmmu/hw/timer/digic-timer.o
CC aarch64-softmmu/hw/timer/allwinner-a10-pit.o
CC aarch64-softmmu/hw/usb/tusb6010.o
CC x86_64-softmmu/gdbstub-xml.o
CC aarch64-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/vfio/pci.o
CC aarch64-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/hw/vfio/calxeda-xgmac.o
CC aarch64-softmmu/hw/vfio/amd-xgbe.o
CC x86_64-softmmu/trace/generated-helpers.o
CC aarch64-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/hw/virtio/virtio-balloon.o
CC aarch64-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/virtio/vhost.o
CC aarch64-softmmu/hw/virtio/vhost-backend.o
CC aarch64-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/virtio/virtio-crypto.o
CC aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/arm/collie.o
CC aarch64-softmmu/hw/arm/exynos4_boards.o
CC aarch64-softmmu/hw/arm/boot.o
CC aarch64-softmmu/hw/arm/gumstix.o
LINK x86_64-softmmu/qemu-system-x86_64
CC aarch64-softmmu/hw/arm/highbank.o
CC aarch64-softmmu/hw/arm/digic_boards.o
CC aarch64-softmmu/hw/arm/integratorcp.o
CC aarch64-softmmu/hw/arm/mainstone.o
CC aarch64-softmmu/hw/arm/musicpal.o
CC aarch64-softmmu/hw/arm/nseries.o
CC aarch64-softmmu/hw/arm/omap_sx1.o
CC aarch64-softmmu/hw/arm/palm.o
CC aarch64-softmmu/hw/arm/realview.o
CC aarch64-softmmu/hw/arm/spitz.o
CC aarch64-softmmu/hw/arm/stellaris.o
CC aarch64-softmmu/hw/arm/tosa.o
CC aarch64-softmmu/hw/arm/versatilepb.o
CC aarch64-softmmu/hw/arm/vexpress.o
CC aarch64-softmmu/hw/arm/virt.o
CC aarch64-softmmu/hw/arm/xilinx_zynq.o
CC aarch64-softmmu/hw/arm/z2.o
CC aarch64-softmmu/hw/arm/virt-acpi-build.o
CC aarch64-softmmu/hw/arm/netduino2.o
CC aarch64-softmmu/hw/arm/sysbus-fdt.o
CC aarch64-softmmu/hw/arm/armv7m.o
CC aarch64-softmmu/hw/arm/exynos4210.o
CC aarch64-softmmu/hw/arm/pxa2xx.o
CC aarch64-softmmu/hw/arm/pxa2xx_gpio.o
CC aarch64-softmmu/hw/arm/pxa2xx_pic.o
CC aarch64-softmmu/hw/arm/digic.o
CC aarch64-softmmu/hw/arm/omap1.o
CC aarch64-softmmu/hw/arm/omap2.o
CC aarch64-softmmu/hw/arm/strongarm.o
CC aarch64-softmmu/hw/arm/allwinner-a10.o
CC aarch64-softmmu/hw/arm/cubieboard.o
CC aarch64-softmmu/hw/arm/bcm2835_peripherals.o
CC aarch64-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/hw/arm/raspi.o
CC aarch64-softmmu/hw/arm/stm32f205_soc.o
CC aarch64-softmmu/hw/arm/xlnx-zynqmp.o
CC aarch64-softmmu/hw/arm/xlnx-zcu102.o
CC aarch64-softmmu/hw/arm/fsl-imx25.o
CC aarch64-softmmu/hw/arm/imx25_pdk.o
CC aarch64-softmmu/hw/arm/fsl-imx31.o
CC aarch64-softmmu/hw/arm/fsl-imx6.o
CC aarch64-softmmu/hw/arm/kzm.o
CC aarch64-softmmu/hw/arm/sabrelite.o
CC aarch64-softmmu/hw/arm/aspeed_soc.o
CC aarch64-softmmu/hw/arm/aspeed.o
CC aarch64-softmmu/hw/arm/mps2.o
CC aarch64-softmmu/hw/arm/msf2-soc.o
CC aarch64-softmmu/hw/arm/msf2-som.o
CC aarch64-softmmu/target/arm/arm-semi.o
CC aarch64-softmmu/target/arm/machine.o
CC aarch64-softmmu/target/arm/psci.o
CC aarch64-softmmu/target/arm/arch_dump.o
CC aarch64-softmmu/target/arm/monitor.o
CC aarch64-softmmu/target/arm/kvm-stub.o
CC aarch64-softmmu/target/arm/translate.o
CC aarch64-softmmu/target/arm/op_helper.o
CC aarch64-softmmu/target/arm/helper.o
CC aarch64-softmmu/target/arm/cpu.o
CC aarch64-softmmu/target/arm/neon_helper.o
CC aarch64-softmmu/target/arm/iwmmxt_helper.o
CC aarch64-softmmu/target/arm/gdbstub.o
CC aarch64-softmmu/target/arm/cpu64.o
CC aarch64-softmmu/target/arm/translate-a64.o
CC aarch64-softmmu/target/arm/helper-a64.o
CC aarch64-softmmu/target/arm/gdbstub64.o
CC aarch64-softmmu/target/arm/crypto_helper.o
CC aarch64-softmmu/target/arm/arm-powerctl.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/trace/control-target.o
/tmp/qemu-test/src/target/arm/translate-a64.c: In function 'handle_shri_with_rndacc':
/tmp/qemu-test/src/target/arm/translate-a64.c:6390: warning: 'tcg_src_hi' may be used uninitialized in this function
/tmp/qemu-test/src/target/arm/translate-a64.c: In function 'disas_simd_scalar_two_reg_misc':
/tmp/qemu-test/src/target/arm/translate-a64.c:8117: warning: 'rmode' may be used uninitialized in this function
CC aarch64-softmmu/gdbstub-xml.o
CC aarch64-softmmu/trace/generated-helpers.o
LINK aarch64-softmmu/qemu-system-aarch64
mkdir -p dtc/libfdt
mkdir -p dtc/tests
TEST tests/qapi-schema/alternate-any.out
TEST tests/qapi-schema/alternate-array.out
TEST tests/qapi-schema/alternate-clash.out
TEST tests/qapi-schema/alternate-conflict-dict.out
TEST tests/qapi-schema/alternate-base.out
TEST tests/qapi-schema/alternate-conflict-enum-bool.out
TEST tests/qapi-schema/alternate-conflict-enum-int.out
TEST tests/qapi-schema/alternate-conflict-string.out
TEST tests/qapi-schema/alternate-conflict-bool-string.out
TEST tests/qapi-schema/alternate-conflict-num-string.out
TEST tests/qapi-schema/alternate-empty.out
TEST tests/qapi-schema/alternate-unknown.out
TEST tests/qapi-schema/args-alternate.out
TEST tests/qapi-schema/alternate-nested.out
TEST tests/qapi-schema/args-any.out
TEST tests/qapi-schema/args-array-empty.out
TEST tests/qapi-schema/args-array-unknown.out
TEST tests/qapi-schema/args-bad-boxed.out
TEST tests/qapi-schema/args-boxed-anon.out
TEST tests/qapi-schema/args-boxed-empty.out
TEST tests/qapi-schema/args-boxed-string.out
TEST tests/qapi-schema/args-int.out
TEST tests/qapi-schema/args-invalid.out
TEST tests/qapi-schema/args-member-array-bad.out
TEST tests/qapi-schema/args-member-case.out
TEST tests/qapi-schema/args-member-unknown.out
TEST tests/qapi-schema/args-name-clash.out
TEST tests/qapi-schema/args-union.out
TEST tests/qapi-schema/args-unknown.out
TEST tests/qapi-schema/bad-base.out
TEST tests/qapi-schema/bad-data.out
TEST tests/qapi-schema/bad-ident.out
TEST tests/qapi-schema/bad-type-bool.out
TEST tests/qapi-schema/bad-type-dict.out
TEST tests/qapi-schema/bad-type-int.out
TEST tests/qapi-schema/base-cycle-direct.out
TEST tests/qapi-schema/base-cycle-indirect.out
TEST tests/qapi-schema/command-int.out
TEST tests/qapi-schema/comments.out
TEST tests/qapi-schema/doc-bad-alternate-member.out
TEST tests/qapi-schema/doc-bad-command-arg.out
TEST tests/qapi-schema/doc-bad-symbol.out
TEST tests/qapi-schema/doc-bad-union-member.out
TEST tests/qapi-schema/doc-before-include.out
TEST tests/qapi-schema/doc-before-pragma.out
TEST tests/qapi-schema/doc-duplicated-arg.out
TEST tests/qapi-schema/doc-duplicated-return.out
TEST tests/qapi-schema/doc-duplicated-since.out
TEST tests/qapi-schema/doc-empty-arg.out
TEST tests/qapi-schema/doc-empty-section.out
TEST tests/qapi-schema/doc-empty-symbol.out
TEST tests/qapi-schema/doc-good.out
TEST tests/qapi-schema/doc-interleaved-section.out
TEST tests/qapi-schema/doc-invalid-end.out
TEST tests/qapi-schema/doc-invalid-end2.out
TEST tests/qapi-schema/doc-invalid-section.out
TEST tests/qapi-schema/doc-invalid-return.out
TEST tests/qapi-schema/doc-invalid-start.out
TEST tests/qapi-schema/doc-missing.out
TEST tests/qapi-schema/doc-missing-colon.out
TEST tests/qapi-schema/doc-missing-expr.out
TEST tests/qapi-schema/doc-missing-space.out
TEST tests/qapi-schema/doc-no-symbol.out
TEST tests/qapi-schema/double-data.out
TEST tests/qapi-schema/double-type.out
TEST tests/qapi-schema/duplicate-key.out
TEST tests/qapi-schema/empty.out
TEST tests/qapi-schema/enum-bad-prefix.out
TEST tests/qapi-schema/enum-bad-name.out
TEST tests/qapi-schema/enum-clash-member.out
TEST tests/qapi-schema/enum-dict-member.out
TEST tests/qapi-schema/enum-int-member.out
TEST tests/qapi-schema/enum-member-case.out
TEST tests/qapi-schema/enum-missing-data.out
TEST tests/qapi-schema/enum-wrong-data.out
TEST tests/qapi-schema/escape-outside-string.out
TEST tests/qapi-schema/escape-too-big.out
TEST tests/qapi-schema/escape-too-short.out
TEST tests/qapi-schema/event-boxed-empty.out
TEST tests/qapi-schema/event-case.out
TEST tests/qapi-schema/event-nest-struct.out
TEST tests/qapi-schema/flat-union-array-branch.out
TEST tests/qapi-schema/flat-union-bad-base.out
TEST tests/qapi-schema/flat-union-bad-discriminator.out
TEST tests/qapi-schema/flat-union-base-any.out
TEST tests/qapi-schema/flat-union-base-union.out
TEST tests/qapi-schema/flat-union-clash-member.out
TEST tests/qapi-schema/flat-union-empty.out
TEST tests/qapi-schema/flat-union-incomplete-branch.out
TEST tests/qapi-schema/flat-union-inline.out
TEST tests/qapi-schema/flat-union-int-branch.out
TEST tests/qapi-schema/flat-union-invalid-branch-key.out
TEST tests/qapi-schema/flat-union-invalid-discriminator.out
TEST tests/qapi-schema/flat-union-no-base.out
TEST tests/qapi-schema/flat-union-optional-discriminator.out
TEST tests/qapi-schema/flat-union-string-discriminator.out
TEST tests/qapi-schema/funny-char.out
TEST tests/qapi-schema/ident-with-escape.out
TEST tests/qapi-schema/include-before-err.out
TEST tests/qapi-schema/include-cycle.out
TEST tests/qapi-schema/include-extra-junk.out
TEST tests/qapi-schema/include-format-err.out
TEST tests/qapi-schema/include-nested-err.out
TEST tests/qapi-schema/include-no-file.out
TEST tests/qapi-schema/include-non-file.out
TEST tests/qapi-schema/include-relpath.out
TEST tests/qapi-schema/include-repetition.out
TEST tests/qapi-schema/include-self-cycle.out
TEST tests/qapi-schema/indented-expr.out
TEST tests/qapi-schema/include-simple.out
TEST tests/qapi-schema/leading-comma-list.out
TEST tests/qapi-schema/leading-comma-object.out
TEST tests/qapi-schema/missing-colon.out
TEST tests/qapi-schema/missing-comma-list.out
TEST tests/qapi-schema/missing-comma-object.out
TEST tests/qapi-schema/missing-type.out
TEST tests/qapi-schema/nested-struct-data.out
TEST tests/qapi-schema/non-objects.out
TEST tests/qapi-schema/pragma-doc-required-crap.out
TEST tests/qapi-schema/pragma-extra-junk.out
TEST tests/qapi-schema/pragma-name-case-whitelist-crap.out
TEST tests/qapi-schema/pragma-non-dict.out
TEST tests/qapi-schema/pragma-returns-whitelist-crap.out
TEST tests/qapi-schema/qapi-schema-test.out
TEST tests/qapi-schema/redefined-builtin.out
TEST tests/qapi-schema/quoted-structural-chars.out
TEST tests/qapi-schema/redefined-command.out
TEST tests/qapi-schema/redefined-event.out
TEST tests/qapi-schema/redefined-type.out
TEST tests/qapi-schema/reserved-command-q.out
TEST tests/qapi-schema/reserved-enum-q.out
TEST tests/qapi-schema/reserved-member-has.out
TEST tests/qapi-schema/reserved-member-q.out
TEST tests/qapi-schema/reserved-member-underscore.out
TEST tests/qapi-schema/reserved-member-u.out
TEST tests/qapi-schema/reserved-type-kind.out
TEST tests/qapi-schema/reserved-type-list.out
TEST tests/qapi-schema/returns-alternate.out
TEST tests/qapi-schema/returns-array-bad.out
TEST tests/qapi-schema/returns-dict.out
TEST tests/qapi-schema/returns-unknown.out
TEST tests/qapi-schema/returns-whitelist.out
TEST tests/qapi-schema/struct-base-clash-deep.out
TEST tests/qapi-schema/struct-base-clash.out
TEST tests/qapi-schema/struct-data-invalid.out
TEST tests/qapi-schema/struct-member-invalid.out
TEST tests/qapi-schema/trailing-comma-list.out
TEST tests/qapi-schema/trailing-comma-object.out
TEST tests/qapi-schema/type-bypass-bad-gen.out
TEST tests/qapi-schema/unclosed-list.out
TEST tests/qapi-schema/unclosed-object.out
TEST tests/qapi-schema/unclosed-string.out
TEST tests/qapi-schema/unicode-str.out
TEST tests/qapi-schema/union-base-empty.out
TEST tests/qapi-schema/union-base-no-discriminator.out
TEST tests/qapi-schema/union-branch-case.out
TEST tests/qapi-schema/union-clash-branches.out
TEST tests/qapi-schema/union-empty.out
TEST tests/qapi-schema/union-invalid-base.out
TEST tests/qapi-schema/union-optional-branch.out
TEST tests/qapi-schema/union-unknown.out
TEST tests/qapi-schema/unknown-escape.out
TEST tests/qapi-schema/unknown-expr-key.out
GEN tests/qapi-schema/doc-good.test.texi
CC tests/check-qdict.o
CC tests/test-char.o
CC tests/check-qnum.o
CC tests/check-qstring.o
CC tests/check-qlist.o
CC tests/check-qnull.o
CC tests/check-qjson.o
CC tests/check-qlit.o
CC tests/test-qobject-output-visitor.o
GEN tests/test-qapi-visit.c
GEN tests/test-qapi-types.c
GEN tests/test-qapi-event.c
GEN tests/test-qmp-introspect.c
CC tests/test-clone-visitor.o
CC tests/test-qobject-input-visitor.o
CC tests/test-qmp-commands.o
GEN tests/test-qmp-marshal.c
CC tests/test-string-input-visitor.o
CC tests/test-string-output-visitor.o
CC tests/test-qmp-event.o
CC tests/test-opts-visitor.o
CC tests/test-coroutine.o
CC tests/iothread.o
CC tests/test-visitor-serialization.o
CC tests/test-aio.o
CC tests/test-iov.o
CC tests/test-aio-multithread.o
CC tests/test-throttle.o
CC tests/test-thread-pool.o
CC tests/test-hbitmap.o
CC tests/test-blockjob.o
CC tests/test-blockjob-txn.o
CC tests/test-x86-cpuid.o
CC tests/test-xbzrle.o
CC tests/test-vmstate.o
CC tests/test-cutils.o
CC tests/test-shift128.o
CC tests/test-mul64.o
CC tests/test-int128.o
CC tests/rcutorture.o
CC tests/test-rcu-list.o
CC tests/test-qdist.o
CC tests/test-qht.o
CC tests/test-qht-par.o
/tmp/qemu-test/src/tests/test-int128.c:180: warning: '__noclone__' attribute directive ignored
CC tests/qht-bench.o
CC tests/test-bitops.o
CC tests/test-bitcnt.o
CC tests/check-qom-interface.o
CC tests/check-qom-proplist.o
CC tests/test-qemu-opts.o
CC tests/test-keyval.o
CC tests/test-write-threshold.o
CC tests/test-crypto-hash.o
CC tests/test-crypto-hmac.o
CC tests/test-crypto-cipher.o
CC tests/test-crypto-secret.o
CC tests/test-qga.o
CC tests/libqtest.o
CC tests/test-timed-average.o
CC tests/test-io-task.o
CC tests/test-io-channel-socket.o
CC tests/io-channel-helpers.o
CC tests/test-io-channel-file.o
CC tests/test-io-channel-command.o
CC tests/test-io-channel-buffer.o
CC tests/test-base64.o
CC tests/test-crypto-ivgen.o
CC tests/test-crypto-afsplit.o
CC tests/test-crypto-xts.o
CC tests/test-crypto-block.o
CC tests/test-logging.o
CC tests/test-replication.o
CC tests/test-bufferiszero.o
CC tests/ptimer-test.o
CC tests/test-uuid.o
CC tests/ptimer-test-stubs.o
CC tests/test-qapi-util.o
CC tests/vhost-user-test.o
CC tests/libqos/pci.o
CC tests/libqos/fw_cfg.o
CC tests/libqos/malloc.o
CC tests/libqos/i2c.o
CC tests/libqos/libqos.o
CC tests/libqos/malloc-spapr.o
CC tests/libqos/libqos-spapr.o
CC tests/libqos/rtas.o
CC tests/libqos/pci-spapr.o
CC tests/libqos/pci-pc.o
CC tests/libqos/malloc-pc.o
CC tests/libqos/libqos-pc.o
CC tests/libqos/ahci.o
CC tests/libqos/virtio.o
CC tests/libqos/virtio-pci.o
CC tests/libqos/virtio-mmio.o
CC tests/libqos/malloc-generic.o
CC tests/endianness-test.o
CC tests/fdc-test.o
CC tests/ide-test.o
CC tests/ahci-test.o
CC tests/hd-geo-test.o
CC tests/boot-order-test.o
CC tests/bios-tables-test.o
CC tests/boot-sector.o
CC tests/acpi-utils.o
CC tests/boot-serial-test.o
CC tests/pxe-test.o
CC tests/rtc-test.o
CC tests/ipmi-kcs-test.o
CC tests/ipmi-bt-test.o
CC tests/i440fx-test.o
CC tests/drive_del-test.o
CC tests/fw_cfg-test.o
CC tests/wdt_ib700-test.o
CC tests/tco-test.o
CC tests/e1000-test.o
CC tests/e1000e-test.o
CC tests/rtl8139-test.o
CC tests/pcnet-test.o
CC tests/eepro100-test.o
CC tests/ne2000-test.o
CC tests/nvme-test.o
CC tests/ac97-test.o
CC tests/es1370-test.o
CC tests/virtio-net-test.o
CC tests/virtio-balloon-test.o
CC tests/virtio-blk-test.o
CC tests/virtio-rng-test.o
CC tests/virtio-scsi-test.o
CC tests/virtio-serial-test.o
CC tests/virtio-console-test.o
CC tests/tpci200-test.o
CC tests/ipoctal232-test.o
CC tests/display-vga-test.o
CC tests/intel-hda-test.o
CC tests/ivshmem-test.o
CC tests/megasas-test.o
CC tests/vmxnet3-test.o
CC tests/pvpanic-test.o
CC tests/i82801b11-test.o
CC tests/ioh3420-test.o
CC tests/usb-hcd-ohci-test.o
CC tests/libqos/usb.o
CC tests/usb-hcd-uhci-test.o
CC tests/usb-hcd-ehci-test.o
CC tests/usb-hcd-xhci-test.o
CC tests/pc-cpu-test.o
CC tests/vmgenid-test.o
CC tests/q35-test.o
CC tests/test-netfilter.o
CC tests/test-filter-mirror.o
CC tests/test-filter-redirector.o
CC tests/migration-test.o
CC tests/test-x86-cpuid-compat.o
CC tests/numa-test.o
CC tests/qmp-test.o
CC tests/device-introspect-test.o
CC tests/qom-test.o
CC tests/test-hmp.o
LINK tests/check-qdict
LINK tests/test-char
LINK tests/check-qnum
LINK tests/check-qstring
LINK tests/check-qlist
LINK tests/check-qnull
LINK tests/check-qjson
LINK tests/check-qlit
CC tests/test-qapi-visit.o
CC tests/test-qapi-types.o
CC tests/test-qmp-introspect.o
CC tests/test-qapi-event.o
CC tests/test-qmp-marshal.o
LINK tests/test-coroutine
LINK tests/test-iov
LINK tests/test-aio
LINK tests/test-aio-multithread
LINK tests/test-throttle
LINK tests/test-thread-pool
LINK tests/test-hbitmap
LINK tests/test-blockjob
LINK tests/test-blockjob-txn
LINK tests/test-x86-cpuid
LINK tests/test-xbzrle
LINK tests/test-vmstate
LINK tests/test-cutils
LINK tests/test-shift128
LINK tests/test-mul64
LINK tests/test-int128
LINK tests/rcutorture
LINK tests/test-rcu-list
LINK tests/test-qdist
LINK tests/test-qht
LINK tests/qht-bench
LINK tests/test-bitops
LINK tests/test-bitcnt
LINK tests/check-qom-interface
LINK tests/check-qom-proplist
LINK tests/test-qemu-opts
LINK tests/test-keyval
LINK tests/test-write-threshold
LINK tests/test-crypto-hash
LINK tests/test-crypto-hmac
LINK tests/test-crypto-cipher
LINK tests/test-crypto-secret
LINK tests/test-qga
LINK tests/test-timed-average
LINK tests/test-io-task
LINK tests/test-io-channel-socket
LINK tests/test-io-channel-file
LINK tests/test-io-channel-command
LINK tests/test-io-channel-buffer
LINK tests/test-base64
LINK tests/test-crypto-ivgen
LINK tests/test-crypto-afsplit
LINK tests/test-crypto-xts
LINK tests/test-crypto-block
LINK tests/test-logging
LINK tests/test-replication
LINK tests/test-bufferiszero
LINK tests/test-uuid
LINK tests/ptimer-test
LINK tests/test-qapi-util
LINK tests/vhost-user-test
LINK tests/endianness-test
LINK tests/fdc-test
LINK tests/ide-test
LINK tests/ahci-test
LINK tests/hd-geo-test
LINK tests/boot-order-test
LINK tests/bios-tables-test
LINK tests/boot-serial-test
LINK tests/pxe-test
LINK tests/rtc-test
LINK tests/ipmi-kcs-test
LINK tests/ipmi-bt-test
LINK tests/i440fx-test
LINK tests/fw_cfg-test
LINK tests/drive_del-test
LINK tests/wdt_ib700-test
LINK tests/tco-test
LINK tests/e1000-test
LINK tests/e1000e-test
LINK tests/rtl8139-test
LINK tests/pcnet-test
LINK tests/eepro100-test
LINK tests/ne2000-test
LINK tests/nvme-test
LINK tests/ac97-test
LINK tests/es1370-test
LINK tests/virtio-net-test
LINK tests/virtio-balloon-test
LINK tests/virtio-blk-test
LINK tests/virtio-rng-test
LINK tests/virtio-scsi-test
LINK tests/virtio-serial-test
LINK tests/virtio-console-test
LINK tests/tpci200-test
LINK tests/ipoctal232-test
LINK tests/display-vga-test
LINK tests/intel-hda-test
LINK tests/ivshmem-test
LINK tests/megasas-test
LINK tests/vmxnet3-test
LINK tests/pvpanic-test
LINK tests/i82801b11-test
LINK tests/ioh3420-test
LINK tests/usb-hcd-ohci-test
LINK tests/usb-hcd-uhci-test
LINK tests/usb-hcd-ehci-test
LINK tests/usb-hcd-xhci-test
LINK tests/pc-cpu-test
LINK tests/q35-test
LINK tests/vmgenid-test
LINK tests/test-netfilter
LINK tests/test-filter-mirror
LINK tests/test-filter-redirector
LINK tests/migration-test
LINK tests/test-x86-cpuid-compat
LINK tests/numa-test
LINK tests/qmp-test
LINK tests/device-introspect-test
LINK tests/qom-test
LINK tests/test-hmp
GTESTER tests/check-qdict
GTESTER tests/check-qstring
GTESTER tests/check-qnum
GTESTER tests/test-char
GTESTER tests/check-qlist
GTESTER tests/check-qnull
GTESTER tests/check-qlit
GTESTER tests/check-qjson
LINK tests/test-qobject-output-visitor
LINK tests/test-clone-visitor
LINK tests/test-qobject-input-visitor
LINK tests/test-qmp-commands
LINK tests/test-string-input-visitor
LINK tests/test-string-output-visitor
LINK tests/test-qmp-event
LINK tests/test-opts-visitor
GTESTER tests/test-coroutine
LINK tests/test-visitor-serialization
GTESTER tests/test-aio-multithread
GTESTER tests/test-iov
GTESTER tests/test-aio
GTESTER tests/test-throttle
GTESTER tests/test-thread-pool
GTESTER tests/test-hbitmap
GTESTER tests/test-blockjob
GTESTER tests/test-blockjob-txn
GTESTER tests/test-x86-cpuid
GTESTER tests/test-xbzrle
GTESTER tests/test-vmstate
Failed to load simple/primitive:b_1
Failed to load simple/primitive:i64_2
Failed to load simple/primitive:i32_1
Failed to load simple/primitive:i32_1
Failed to load test/with_tmp:a
Failed to load test/tmp_child_parent:f
Failed to load test/tmp_child:parent
Failed to load test/with_tmp:tmp
Failed to load test/tmp_child:diff
Failed to load test/with_tmp:tmp
Failed to load test/tmp_child:diff
Failed to load test/with_tmp:tmp
GTESTER tests/test-cutils
GTESTER tests/test-shift128
GTESTER tests/test-mul64
GTESTER tests/test-int128
GTESTER tests/rcutorture
GTESTER tests/test-rcu-list
GTESTER tests/test-qdist
GTESTER tests/test-qht
LINK tests/test-qht-par
GTESTER tests/test-bitops
GTESTER tests/test-bitcnt
GTESTER tests/check-qom-interface
GTESTER tests/check-qom-proplist
GTESTER tests/test-qemu-opts
GTESTER tests/test-keyval
GTESTER tests/test-write-threshold
GTESTER tests/test-crypto-hash
GTESTER tests/test-crypto-hmac
GTESTER tests/test-crypto-cipher
GTESTER tests/test-crypto-secret
GTESTER tests/test-qga
GTESTER tests/test-timed-average
GTESTER tests/test-io-task
GTESTER tests/test-io-channel-socket
GTESTER tests/test-io-channel-file
GTESTER tests/test-io-channel-command
GTESTER tests/test-io-channel-buffer
GTESTER tests/test-base64
GTESTER tests/test-crypto-ivgen
GTESTER tests/test-crypto-afsplit
GTESTER tests/test-crypto-xts
GTESTER tests/test-crypto-block
GTESTER tests/test-logging
GTESTER tests/test-replication
GTESTER tests/test-bufferiszero
GTESTER tests/test-uuid
GTESTER tests/ptimer-test
GTESTER tests/test-qapi-util
GTESTER check-qtest-x86_64
GTESTER check-qtest-aarch64
GTESTER tests/test-qobject-output-visitor
GTESTER tests/test-clone-visitor
GTESTER tests/test-qobject-input-visitor
GTESTER tests/test-qmp-commands
GTESTER tests/test-string-input-visitor
GTESTER tests/test-string-output-visitor
GTESTER tests/test-qmp-event
GTESTER tests/test-opts-visitor
GTESTER tests/test-visitor-serialization
GTESTER tests/test-qht-par
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
mkdir -p dtc/libfdt
mkdir -p dtc/tests
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/share/qemu"
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/var"/run
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin"
install -c -m 0755 qemu-ga ivshmem-client ivshmem-server qemu-nbd qemu-img qemu-io scsi/qemu-pr-helper "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin"
strip "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/qemu-ga" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/ivshmem-client" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/ivshmem-server" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/qemu-nbd" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/qemu-img" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/qemu-io" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/qemu-pr-helper"
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/libexec"
install -c -m 0755 qemu-bridge-helper "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/libexec"
strip "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/libexec/qemu-bridge-helper"
set -e; for x in bios.bin bios-256k.bin sgabios.bin vgabios.bin vgabios-cirrus.bin vgabios-stdvga.bin vgabios-vmware.bin vgabios-qxl.bin vgabios-virtio.bin acpi-dsdt.aml ppc_rom.bin openbios-sparc32 openbios-sparc64 openbios-ppc QEMU,tcx.bin QEMU,cgthree.bin pxe-e1000.rom pxe-eepro100.rom pxe-ne2k_pci.rom pxe-pcnet.rom pxe-rtl8139.rom pxe-virtio.rom efi-e1000.rom efi-eepro100.rom efi-ne2k_pci.rom efi-pcnet.rom efi-rtl8139.rom efi-virtio.rom efi-e1000e.rom efi-vmxnet3.rom qemu-icon.bmp qemu_logo_no_text.svg bamboo.dtb petalogix-s3adsp1800.dtb petalogix-ml605.dtb multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin s390-ccw.img s390-netboot.img spapr-rtas.bin slof.bin skiboot.lid palcode-clipper u-boot.e500 qemu_vga.ndrv; do \
install -c -m 0644 /tmp/qemu-test/src/pc-bios/$x "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/share/qemu"; \
done
make -C po install
make[1]: Entering directory `/tmp/qemu-test/build/po'
GEN /tmp/qemu-test/src/po/messages.po
GEN /tmp/qemu-test/src/po/bg.po
GEN /tmp/qemu-test/src/po/fr_FR.po
GEN /tmp/qemu-test/src/po/it.po
GEN /tmp/qemu-test/src/po/de_DE.po
GEN /tmp/qemu-test/src/po/hu.po
GEN /tmp/qemu-test/src/po/tr.po
GEN /tmp/qemu-test/src/po/zh_CN.po
GEN de_DE.mo
GEN bg.mo
GEN hu.mo
GEN zh_CN.mo
GEN fr_FR.mo
GEN tr.mo
GEN it.mo
for obj in bg.mo de_DE.mo fr_FR.mo hu.mo it.mo tr.mo zh_CN.mo; do \
base=`basename $obj .mo`; \
install -d /tmp/qemu-test/build/=destdir/tmp/qemu-test/install/share/locale/$base/LC_MESSAGES; \
install -m644 $obj /tmp/qemu-test/build/=destdir/tmp/qemu-test/install/share/locale/$base/LC_MESSAGES/qemu.mo; \
done
make[1]: Leaving directory `/tmp/qemu-test/build/po'
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/share/qemu/keymaps"
set -e; for x in da en-gb et fr fr-ch is lt modifiers no pt-br sv ar de en-us fi fr-be hr it lv nl pl ru th common de-ch es fo fr-ca hu ja mk nl-be pt sl tr bepo cz; do \
install -c -m 0644 /tmp/qemu-test/src/pc-bios/keymaps/$x "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/share/qemu/keymaps"; \
done
install -c -m 0644 /tmp/qemu-test/build/trace-events-all "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/share/qemu/trace-events-all"
for d in x86_64-softmmu aarch64-softmmu; do \
make --no-print-directory BUILD_DIR=/tmp/qemu-test/build TARGET_DIR=$d/ -C $d install || exit 1 ; \
done
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin"
install -c -m 0755 qemu-system-x86_64 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin"
strip "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/qemu-system-x86_64"
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin"
install -c -m 0755 qemu-system-aarch64 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin"
strip "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/qemu-system-aarch64"
CLEANUP /var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.43.05.28101
make[1]: Leaving directory '/var/tmp/patchew-tester-tmp-lx9ko0qg/src'
real 7m57.172s
user 0m4.195s
sys 0m4.632s
BUILD min-glib
make[1]: Entering directory '/var/tmp/patchew-tester-tmp-lx9ko0qg/src'
GEN /var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.50.58.7918/qemu.tar
Cloning into '/var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.50.58.7918/qemu.tar.vroot'...
done.
Checking out files: 44% (2528/5656)
Checking out files: 45% (2546/5656)
Checking out files: 46% (2602/5656)
Checking out files: 47% (2659/5656)
Checking out files: 48% (2715/5656)
Checking out files: 49% (2772/5656)
Checking out files: 50% (2828/5656)
Checking out files: 51% (2885/5656)
Checking out files: 52% (2942/5656)
Checking out files: 53% (2998/5656)
Checking out files: 54% (3055/5656)
Checking out files: 55% (3111/5656)
Checking out files: 56% (3168/5656)
Checking out files: 57% (3224/5656)
Checking out files: 58% (3281/5656)
Checking out files: 59% (3338/5656)
Checking out files: 60% (3394/5656)
Checking out files: 61% (3451/5656)
Checking out files: 62% (3507/5656)
Checking out files: 63% (3564/5656)
Checking out files: 64% (3620/5656)
Checking out files: 65% (3677/5656)
Checking out files: 66% (3733/5656)
Checking out files: 67% (3790/5656)
Checking out files: 68% (3847/5656)
Checking out files: 69% (3903/5656)
Checking out files: 70% (3960/5656)
Checking out files: 71% (4016/5656)
Checking out files: 72% (4073/5656)
Checking out files: 73% (4129/5656)
Checking out files: 74% (4186/5656)
Checking out files: 75% (4242/5656)
Checking out files: 76% (4299/5656)
Checking out files: 77% (4356/5656)
Checking out files: 78% (4412/5656)
Checking out files: 79% (4469/5656)
Checking out files: 80% (4525/5656)
Checking out files: 81% (4582/5656)
Checking out files: 82% (4638/5656)
Checking out files: 83% (4695/5656)
Checking out files: 84% (4752/5656)
Checking out files: 85% (4808/5656)
Checking out files: 86% (4865/5656)
Checking out files: 87% (4921/5656)
Checking out files: 88% (4978/5656)
Checking out files: 89% (5034/5656)
Checking out files: 90% (5091/5656)
Checking out files: 91% (5147/5656)
Checking out files: 92% (5204/5656)
Checking out files: 93% (5261/5656)
Checking out files: 94% (5317/5656)
Checking out files: 95% (5374/5656)
Checking out files: 96% (5430/5656)
Checking out files: 97% (5487/5656)
Checking out files: 98% (5543/5656)
Checking out files: 99% (5600/5656)
Checking out files: 99% (5609/5656)
Checking out files: 100% (5656/5656)
Checking out files: 100% (5656/5656), done.
Your branch is up-to-date with 'origin/test'.
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.50.58.7918/qemu.tar.vroot/dtc'...
Submodule path 'dtc': checked out '558cd81bdd432769b59bff01240c44f82cfb1a9d'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into '/var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.50.58.7918/qemu.tar.vroot/ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '10739aa26051a5d49d88132604539d3ed085e72e'
COPY RUNNER
RUN test-build in qemu:min-glib
Environment variables:
HOSTNAME=ab53203056cb
MAKEFLAGS= -j8
J=8
CCACHE_DIR=/var/tmp/ccache
EXTRA_CONFIGURE_OPTS=
V=
SHOW_ENV=1
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
TARGET_LIST=
SHLVL=1
HOME=/root
TEST_DIR=/tmp/qemu-test
FEATURES= dtc
DEBUG=
_=/usr/bin/env
Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/tmp/qemu-test/install
No C++ compiler available; disabling C++ specific optional code
Install prefix /tmp/qemu-test/install
BIOS directory /tmp/qemu-test/install/share/qemu
firmware path /tmp/qemu-test/install/share/qemu-firmware
binary directory /tmp/qemu-test/install/bin
library directory /tmp/qemu-test/install/lib
module directory /tmp/qemu-test/install/lib/qemu
libexec directory /tmp/qemu-test/install/libexec
include directory /tmp/qemu-test/install/include
config directory /tmp/qemu-test/install/etc
local state directory /tmp/qemu-test/install/var
Manual directory /tmp/qemu-test/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /tmp/qemu-test/src
GIT submodules
C compiler cc
Host C compiler cc
C++ compiler
Objective-C compiler cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -I/usr/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all
LDFLAGS -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU x86_64
host big endian no
target list x86_64-softmmu aarch64-softmmu
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
SDL support yes (1.2.14)
GTK support no
GTK GL support no
VTE support no
TLS priority NORMAL
GNUTLS support no
GNUTLS rnd no
libgcrypt no
libgcrypt kdf no
nettle no
nettle kdf no
libtasn1 no
curses support no
virgl support no
curl support no
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support no
Multipath support no
VNC support yes
VNC SASL support no
VNC JPEG support no
VNC PNG support no
xen support no
brlapi support no
bluez support no
Documentation no
PIE yes
vde support no
netmap support no
Linux AIO support no
ATTR/XATTR support yes
Install blobs yes
KVM support yes
HAX support no
TCG support yes
TCG debug enabled no
TCG interpreter no
RDMA support no
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
libcap-ng support no
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
vhost-user support yes
Trace backends log
spice support no
rbd support no
xfsctl support no
smartcard support no
libusb no
usb net redir no
OpenGL support no
OpenGL dmabufs no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support no
coroutine backend ucontext
coroutine pool yes
debug stack usage no
crypto afalg no
GlusterFS support no
gcov gcov
gcov enabled no
TPM support yes
libssh2 support no
TPM passthrough yes
TPM emulator yes
QOM debugging yes
Live block migration yes
lzo support no
snappy support no
bzip2 support no
NUMA host support no
tcmalloc support no
jemalloc support no
avx2 optimization no
replication support yes
VxHS block device no
capstone no
GEN x86_64-softmmu/config-devices.mak.tmp
GEN aarch64-softmmu/config-devices.mak.tmp
mkdir -p dtc/libfdt
mkdir -p dtc/tests
GEN qemu-options.def
GEN config-host.h
GEN qmp-commands.h
GEN qapi-types.h
GEN qapi-visit.h
GEN qapi-event.h
GEN x86_64-softmmu/config-devices.mak
GEN qmp-marshal.c
GEN aarch64-softmmu/config-devices.mak
GEN qapi-types.c
GEN qapi-visit.c
GEN qapi-event.c
GEN qmp-introspect.h
GEN qmp-introspect.c
GEN trace/generated-tcg-tracers.h
GEN trace/generated-helpers-wrappers.h
GEN trace/generated-helpers.h
GEN trace/generated-helpers.c
GEN module_block.h
GEN ui/input-keymap-linux-to-qcode.c
GEN ui/input-keymap-qcode-to-qnum.c
GEN ui/input-keymap-qnum-to-qcode.c
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN tests/test-qapi-event.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
GEN hw/intc/trace.h
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/xen/trace.h
GEN hw/ide/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN accel/kvm/trace.h
GEN nbd/trace.h
GEN scsi/trace.h
GEN trace-root.c
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/xen/trace.c
GEN hw/ide/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN nbd/trace.c
GEN scsi/trace.c
GEN config-all-devices.mak
DEP /tmp/qemu-test/src/dtc/tests/dumptrees.c
DEP /tmp/qemu-test/src/dtc/tests/trees.S
DEP /tmp/qemu-test/src/dtc/tests/testutils.c
DEP /tmp/qemu-test/src/dtc/tests/value-labels.c
DEP /tmp/qemu-test/src/dtc/tests/asm_tree_dump.c
DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c
DEP /tmp/qemu-test/src/dtc/tests/check_path.c
DEP /tmp/qemu-test/src/dtc/tests/overlay_bad_fixup.c
DEP /tmp/qemu-test/src/dtc/tests/overlay.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/property_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/integer-expressions.c
DEP /tmp/qemu-test/src/dtc/tests/utilfdt_test.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset_aliases.c
DEP /tmp/qemu-test/src/dtc/tests/add_subnode_with_nops.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_unordered.c
DEP /tmp/qemu-test/src/dtc/tests/dtb_reverse.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_ordered.c
DEP /tmp/qemu-test/src/dtc/tests/extra-terminating-null.c
DEP /tmp/qemu-test/src/dtc/tests/incbin.c
DEP /tmp/qemu-test/src/dtc/tests/boot-cpuid.c
DEP /tmp/qemu-test/src/dtc/tests/phandle_format.c
DEP /tmp/qemu-test/src/dtc/tests/path-references.c
DEP /tmp/qemu-test/src/dtc/tests/string_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/references.c
DEP /tmp/qemu-test/src/dtc/tests/propname_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop2.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop1.c
DEP /tmp/qemu-test/src/dtc/tests/del_node.c
DEP /tmp/qemu-test/src/dtc/tests/del_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop.c
DEP /tmp/qemu-test/src/dtc/tests/set_name.c
DEP /tmp/qemu-test/src/dtc/tests/open_pack.c
DEP /tmp/qemu-test/src/dtc/tests/rw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/nopulate.c
DEP /tmp/qemu-test/src/dtc/tests/move_and_save.c
DEP /tmp/qemu-test/src/dtc/tests/mangle-layout.c
DEP /tmp/qemu-test/src/dtc/tests/sw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/nop_node.c
DEP /tmp/qemu-test/src/dtc/tests/nop_property.c
DEP /tmp/qemu-test/src/dtc/tests/stringlist.c
DEP /tmp/qemu-test/src/dtc/tests/setprop_inplace.c
DEP /tmp/qemu-test/src/dtc/tests/addr_size_cells.c
DEP /tmp/qemu-test/src/dtc/tests/notfound.c
DEP /tmp/qemu-test/src/dtc/tests/sized_cells.c
DEP /tmp/qemu-test/src/dtc/tests/char_literal.c
DEP /tmp/qemu-test/src/dtc/tests/get_alias.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_check_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_prop_value.c
DEP /tmp/qemu-test/src/dtc/tests/parent_offset.c
DEP /tmp/qemu-test/src/dtc/tests/supernode_atdepth_offset.c
DEP /tmp/qemu-test/src/dtc/tests/get_path.c
DEP /tmp/qemu-test/src/dtc/tests/get_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/getprop.c
DEP /tmp/qemu-test/src/dtc/tests/get_name.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_offset.c
DEP /tmp/qemu-test/src/dtc/tests/find_property.c
DEP /tmp/qemu-test/src/dtc/tests/root_node.c
DEP /tmp/qemu-test/src/dtc/tests/get_mem_rsv.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_overlay.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_addresses.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_empty_tree.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_strerror.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_rw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_wip.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_sw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_ro.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt.c
DEP /tmp/qemu-test/src/dtc/fdtput.c
DEP /tmp/qemu-test/src/dtc/fdtdump.c
DEP /tmp/qemu-test/src/dtc/fdtget.c
LEX convert-dtsv0-lexer.lex.c
make[1]: flex: Command not found
DEP /tmp/qemu-test/src/dtc/util.c
DEP /tmp/qemu-test/src/dtc/srcpos.c
BISON dtc-parser.tab.c
make[1]: bison: Command not found
LEX dtc-lexer.lex.c
make[1]: flex: Command not found
DEP /tmp/qemu-test/src/dtc/treesource.c
DEP /tmp/qemu-test/src/dtc/livetree.c
DEP /tmp/qemu-test/src/dtc/fstree.c
DEP /tmp/qemu-test/src/dtc/flattree.c
DEP /tmp/qemu-test/src/dtc/checks.c
DEP /tmp/qemu-test/src/dtc/dtc.c
DEP /tmp/qemu-test/src/dtc/data.c
CHK version_gen.h
LEX convert-dtsv0-lexer.lex.c
make[1]: flex: Command not found
BISON dtc-parser.tab.c
make[1]: bison: Command not found
UPD version_gen.h
LEX dtc-lexer.lex.c
make[1]: flex: Command not found
DEP /tmp/qemu-test/src/dtc/util.c
LEX convert-dtsv0-lexer.lex.c
make[1]: flex: Command not found
LEX dtc-lexer.lex.c
make[1]: flex: Command not found
BISON dtc-parser.tab.c
make[1]: bison: Command not found
CC libfdt/fdt.o
CC libfdt/fdt_ro.o
CC libfdt/fdt_wip.o
CC libfdt/fdt_sw.o
CC libfdt/fdt_rw.o
CC libfdt/fdt_strerror.o
CC libfdt/fdt_empty_tree.o
CC libfdt/fdt_addresses.o
CC libfdt/fdt_overlay.o
AR libfdt/libfdt.a
ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
mkdir -p dtc/libfdt
mkdir -p dtc/tests
LEX convert-dtsv0-lexer.lex.c
make[1]: flex: Command not found
BISON dtc-parser.tab.c
make[1]: bison: Command not found
LEX dtc-lexer.lex.c
make[1]: flex: Command not found
GEN qga/qapi-generated/qga-qapi-types.h
CC tests/qemu-iotests/socket_scm_helper.o
GEN qga/qapi-generated/qga-qmp-commands.h
GEN qga/qapi-generated/qga-qapi-types.c
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qmp-marshal.c
CC qmp-introspect.o
GEN qga/qapi-generated/qga-qapi-visit.c
CC qapi-types.o
CC qapi-visit.o
CC qapi-event.o
CC qapi/qapi-visit-core.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qobject-input-visitor.o
CC qapi/qobject-output-visitor.o
CC qapi/qmp-registry.o
CC qapi/qmp-dispatch.o
CC qapi/string-input-visitor.o
CC qapi/string-output-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/opts-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qnum.o
CC qobject/qdict.o
CC qobject/qstring.o
CC qobject/qlist.o
CC qobject/qbool.o
CC qobject/qlit.o
CC qobject/qjson.o
CC qobject/json-lexer.o
CC qobject/qobject.o
CC qobject/json-streamer.o
CC qobject/json-parser.o
CC trace/qmp.o
CC trace/control.o
CC util/osdep.o
CC util/cutils.o
CC util/unicode.o
CC util/qemu-timer-common.o
CC util/bufferiszero.o
CC util/lockcnt.o
CC util/aiocb.o
CC util/async.o
CC util/thread-pool.o
CC util/qemu-timer.o
CC util/main-loop.o
CC util/iohandler.o
CC util/aio-posix.o
CC util/compatfd.o
CC util/event_notifier-posix.o
CC util/oslib-posix.o
CC util/mmap-alloc.o
CC util/qemu-openpty.o
CC util/qemu-thread-posix.o
CC util/memfd.o
CC util/envlist.o
CC util/path.o
CC util/module.o
CC util/host-utils.o
CC util/bitmap.o
CC util/bitops.o
CC util/hbitmap.o
CC util/fifo8.o
CC util/acl.o
CC util/cacheinfo.o
CC util/qemu-error.o
CC util/error.o
CC util/id.o
CC util/iov.o
CC util/qemu-config.o
CC util/qemu-sockets.o
CC util/uri.o
CC util/notify.o
CC util/qemu-option.o
CC util/keyval.o
CC util/qemu-progress.o
CC util/hexdump.o
CC util/crc32c.o
CC util/uuid.o
CC util/throttle.o
CC util/getauxval.o
CC util/readline.o
CC util/rcu.o
CC util/qemu-coroutine.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-io.o
CC util/coroutine-ucontext.o
CC util/qemu-coroutine-sleep.o
CC util/buffer.o
CC util/timed-average.o
CC util/base64.o
CC util/log.o
CC util/pagesize.o
CC util/qdist.o
CC util/qht.o
CC util/range.o
CC util/stats64.o
CC util/systemd.o
CC trace-root.o
CC util/trace.o
CC crypto/trace.o
CC io/trace.o
CC migration/trace.o
CC chardev/trace.o
CC block/trace.o
CC hw/block/trace.o
CC hw/block/dataplane/trace.o
CC hw/char/trace.o
CC hw/intc/trace.o
CC hw/net/trace.o
CC hw/virtio/trace.o
CC hw/audio/trace.o
CC hw/misc/trace.o
CC hw/usb/trace.o
CC hw/scsi/trace.o
CC hw/nvram/trace.o
CC hw/display/trace.o
CC hw/input/trace.o
CC hw/timer/trace.o
CC hw/dma/trace.o
CC hw/sparc/trace.o
CC hw/sd/trace.o
CC hw/isa/trace.o
CC hw/mem/trace.o
CC hw/i386/trace.o
CC hw/i386/xen/trace.o
CC hw/9pfs/trace.o
CC hw/ppc/trace.o
CC hw/pci/trace.o
CC hw/s390x/trace.o
CC hw/vfio/trace.o
CC hw/acpi/trace.o
CC hw/arm/trace.o
CC hw/alpha/trace.o
CC hw/xen/trace.o
CC hw/ide/trace.o
CC ui/trace.o
CC audio/trace.o
CC net/trace.o
CC target/arm/trace.o
CC target/i386/trace.o
CC target/mips/trace.o
CC target/sparc/trace.o
CC target/s390x/trace.o
CC target/ppc/trace.o
CC qom/trace.o
CC linux-user/trace.o
CC qapi/trace.o
CC accel/tcg/trace.o
CC accel/kvm/trace.o
CC nbd/trace.o
CC scsi/trace.o
CC stubs/arch-query-cpu-def.o
CC crypto/pbkdf-stub.o
CC stubs/arch-query-cpu-model-expansion.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/blk-commit-all.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-clock.o
CC stubs/cpu-get-icount.o
CC stubs/error-printf.o
CC stubs/fdset.o
CC stubs/dump.o
CC stubs/gdbstub.o
CC stubs/get-vm-name.o
CC stubs/iothread.o
CC stubs/iothread-lock.o
CC stubs/is-daemonized.o
CC stubs/machine-init-done.o
CC stubs/migr-blocker.o
CC stubs/change-state-handler.o
CC stubs/monitor.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/replay.o
CC stubs/runstate-check.o
CC stubs/set-fd-handler.o
CC stubs/slirp.o
CC stubs/sysbus.o
CC stubs/tpm.o
CC stubs/trace-control.o
CC stubs/uuid.o
CC stubs/vm-stop.o
CC stubs/vmstate.o
CC stubs/qmp_pc_dimm.o
CC stubs/target-monitor-defs.o
CC stubs/pc_madt_cpu_entry.o
CC stubs/target-get-monitor-def.o
CC stubs/vmgenid.o
CC stubs/xen-common.o
CC stubs/xen-hvm.o
CC stubs/pci-host-piix.o
CC contrib/ivshmem-client/ivshmem-client.o
CC contrib/ivshmem-client/main.o
CC contrib/ivshmem-server/ivshmem-server.o
CC contrib/ivshmem-server/main.o
CC qemu-nbd.o
CC block.o
CC blockjob.o
CC qemu-io-cmds.o
CC replication.o
CC block/raw-format.o
CC block/vdi.o
CC block/qcow.o
CC block/vmdk.o
CC block/cloop.o
CC block/bochs.o
CC block/dmg.o
CC block/vvfat.o
CC block/qcow2.o
CC block/vpc.o
CC block/qcow2-refcount.o
CC block/qcow2-cluster.o
CC block/qcow2-snapshot.o
CC block/qcow2-cache.o
CC block/qcow2-bitmap.o
CC block/qed.o
CC block/qed-l2-cache.o
CC block/qed-table.o
CC block/qed-cluster.o
CC block/qed-check.o
CC block/vhdx.o
CC block/vhdx-log.o
CC block/vhdx-endian.o
CC block/parallels.o
CC block/quorum.o
CC block/blkdebug.o
CC block/blkverify.o
CC block/blkreplay.o
CC block/block-backend.o
CC block/snapshot.o
CC block/qapi.o
CC block/file-posix.o
CC block/null.o
CC block/mirror.o
CC block/commit.o
CC block/io.o
CC block/throttle-groups.o
CC block/nbd.o
CC block/nbd-client.o
CC block/sheepdog.o
CC block/accounting.o
CC block/dirty-bitmap.o
CC block/write-threshold.o
CC block/backup.o
CC block/throttle.o
CC block/replication.o
CC block/crypto.o
CC nbd/server.o
CC nbd/client.o
CC nbd/common.o
CC scsi/utils.o
CC scsi/pr-manager.o
CC scsi/pr-manager-helper.o
CC crypto/init.o
CC crypto/hash.o
CC crypto/hash-glib.o
CC crypto/hmac.o
CC crypto/hmac-glib.o
CC crypto/aes.o
CC crypto/desrfb.o
CC crypto/cipher.o
CC crypto/tlscreds.o
CC crypto/tlscredsanon.o
CC crypto/tlscredsx509.o
CC crypto/tlssession.o
CC crypto/secret.o
CC crypto/random-platform.o
CC crypto/pbkdf.o
CC crypto/ivgen.o
CC crypto/ivgen-essiv.o
CC crypto/ivgen-plain.o
CC crypto/ivgen-plain64.o
CC crypto/afsplit.o
CC crypto/xts.o
CC crypto/block.o
CC crypto/block-qcow.o
CC crypto/block-luks.o
CC io/channel.o
CC io/channel-buffer.o
CC io/channel-command.o
CC io/channel-file.o
CC io/channel-tls.o
CC io/channel-socket.o
CC io/channel-watch.o
CC io/channel-websock.o
CC io/channel-util.o
CC io/dns-resolver.o
CC io/task.o
CC qom/object.o
CC qom/container.o
CC qom/qom-qobject.o
CC qom/object_interfaces.o
GEN qemu-img-cmds.h
CC qemu-io.o
CC scsi/qemu-pr-helper.o
CC blockdev.o
CC qemu-bridge-helper.o
CC blockdev-nbd.o
CC bootdevice.o
CC iothread.o
CC qdev-monitor.o
CC os-posix.o
CC device-hotplug.o
CC bt-host.o
CC bt-vhci.o
CC dma-helpers.o
CC vl.o
CC tpm.o
CC device_tree.o
CC qmp-marshal.o
CC qmp.o
CC hmp.o
CC cpus-common.o
CC audio/audio.o
CC audio/noaudio.o
CC audio/wavaudio.o
CC audio/sdlaudio.o
CC audio/mixeng.o
CC audio/ossaudio.o
CC audio/wavcapture.o
CC backends/rng.o
CC backends/rng-egd.o
CC backends/rng-random.o
CC backends/tpm.o
CC backends/hostmem.o
CC backends/hostmem-ram.o
CC backends/cryptodev.o
CC backends/hostmem-file.o
CC block/stream.o
CC backends/cryptodev-builtin.o
CC chardev/msmouse.o
CC chardev/wctablet.o
CC chardev/testdev.o
CC disas/arm.o
CC disas/i386.o
CC fsdev/qemu-fsdev-opts.o
CC fsdev/qemu-fsdev-throttle.o
CC fsdev/qemu-fsdev-dummy.o
CC hw/acpi/core.o
CC hw/acpi/piix4.o
CC hw/acpi/pcihp.o
CC hw/acpi/ich9.o
CC hw/acpi/tco.o
CC hw/acpi/cpu_hotplug.o
CC hw/acpi/memory_hotplug.o
CC hw/acpi/cpu.o
CC hw/acpi/nvdimm.o
CC hw/acpi/vmgenid.o
CC hw/acpi/acpi_interface.o
CC hw/acpi/bios-linker-loader.o
CC hw/acpi/aml-build.o
CC hw/acpi/ipmi.o
CC hw/acpi/acpi-stub.o
CC hw/acpi/ipmi-stub.o
CC hw/audio/sb16.o
CC hw/audio/es1370.o
CC hw/audio/ac97.o
CC hw/audio/fmopl.o
CC hw/audio/adlib.o
CC hw/audio/gus.o
CC hw/audio/gusemu_hal.o
CC hw/audio/gusemu_mixer.o
CC hw/audio/cs4231a.o
CC hw/audio/intel-hda.o
CC hw/audio/hda-codec.o
CC hw/audio/pcspk.o
CC hw/audio/wm8750.o
CC hw/audio/pl041.o
CC hw/audio/lm4549.o
CC hw/audio/marvell_88w8618.o
CC hw/audio/soundhw.o
CC hw/block/block.o
CC hw/block/cdrom.o
CC hw/block/hd-geometry.o
CC hw/block/fdc.o
CC hw/block/m25p80.o
CC hw/block/nand.o
CC hw/block/pflash_cfi01.o
CC hw/block/pflash_cfi02.o
CC hw/block/ecc.o
CC hw/block/onenand.o
CC hw/block/nvme.o
CC hw/bt/core.o
CC hw/bt/l2cap.o
CC hw/bt/sdp.o
CC hw/bt/hci.o
CC hw/bt/hid.o
CC hw/bt/hci-csr.o
CC hw/char/ipoctal232.o
CC hw/char/pl011.o
CC hw/char/parallel.o
CC hw/char/serial.o
CC hw/char/serial-isa.o
CC hw/char/serial-pci.o
CC hw/char/virtio-console.o
CC hw/char/cadence_uart.o
CC hw/char/cmsdk-apb-uart.o
CC hw/char/debugcon.o
CC hw/char/imx_serial.o
CC hw/core/qdev.o
CC hw/core/qdev-properties.o
CC hw/core/bus.o
CC hw/core/reset.o
CC hw/core/fw-path-provider.o
CC hw/core/irq.o
CC hw/core/hotplug.o
CC hw/core/nmi.o
CC hw/core/ptimer.o
CC hw/core/sysbus.o
CC hw/core/machine.o
CC hw/core/loader.o
CC hw/core/qdev-properties-system.o
CC hw/core/register.o
CC hw/core/or-irq.o
CC hw/core/platform-bus.o
CC hw/cpu/core.o
CC hw/display/ads7846.o
CC hw/display/cirrus_vga.o
CC hw/display/pl110.o
CC hw/display/ssd0303.o
CC hw/display/ssd0323.o
CC hw/display/vga-pci.o
CC hw/display/vga-isa.o
CC hw/display/vmware_vga.o
CC hw/display/blizzard.o
CC hw/display/exynos4210_fimd.o
CC hw/display/framebuffer.o
CC hw/display/tc6393xb.o
CC hw/dma/pl080.o
CC hw/dma/pl330.o
CC hw/dma/i8257.o
CC hw/dma/xlnx-zynq-devcfg.o
CC hw/gpio/max7310.o
CC hw/gpio/pl061.o
CC hw/gpio/zaurus.o
CC hw/gpio/gpio_key.o
CC hw/i2c/core.o
CC hw/i2c/smbus.o
CC hw/i2c/smbus_eeprom.o
CC hw/i2c/versatile_i2c.o
CC hw/i2c/smbus_ich9.o
CC hw/i2c/i2c-ddc.o
CC hw/i2c/pm_smbus.o
CC hw/i2c/bitbang_i2c.o
CC hw/i2c/exynos4210_i2c.o
CC hw/i2c/imx_i2c.o
CC hw/i2c/aspeed_i2c.o
CC hw/ide/core.o
CC hw/ide/atapi.o
CC hw/ide/qdev.o
CC hw/ide/pci.o
CC hw/ide/isa.o
CC hw/ide/piix.o
CC hw/ide/ahci.o
CC hw/ide/microdrive.o
CC hw/ide/ich.o
CC hw/ide/ahci-allwinner.o
CC hw/input/hid.o
CC hw/input/lm832x.o
CC hw/input/pckbd.o
CC hw/input/ps2.o
CC hw/input/stellaris_input.o
CC hw/input/pl050.o
CC hw/input/tsc2005.o
CC hw/input/vmmouse.o
CC hw/input/virtio-input.o
CC hw/input/virtio-input-hid.o
CC hw/input/virtio-input-host.o
CC hw/intc/i8259_common.o
CC hw/intc/i8259.o
CC hw/intc/pl190.o
CC hw/intc/imx_avic.o
CC hw/intc/realview_gic.o
CC hw/intc/ioapic_common.o
CC hw/intc/arm_gic_common.o
CC hw/intc/arm_gic.o
CC hw/intc/arm_gicv2m.o
CC hw/intc/arm_gicv3_common.o
CC hw/intc/arm_gicv3.o
CC hw/intc/arm_gicv3_dist.o
CC hw/intc/arm_gicv3_redist.o
CC hw/intc/arm_gicv3_its_common.o
CC hw/ipack/ipack.o
CC hw/ipack/tpci200.o
CC hw/ipmi/ipmi.o
CC hw/intc/intc.o
CC hw/ipmi/ipmi_bmc_sim.o
CC hw/ipmi/ipmi_bmc_extern.o
CC hw/ipmi/isa_ipmi_bt.o
CC hw/ipmi/isa_ipmi_kcs.o
CC hw/isa/isa-bus.o
CC hw/isa/apm.o
CC hw/mem/pc-dimm.o
CC hw/mem/nvdimm.o
CC hw/misc/applesmc.o
CC hw/misc/max111x.o
CC hw/misc/tmp105.o
CC hw/misc/tmp421.o
CC hw/misc/debugexit.o
CC hw/misc/sga.o
CC hw/misc/pc-testdev.o
CC hw/misc/pci-testdev.o
CC hw/misc/edu.o
CC hw/misc/vmcoreinfo.o
CC hw/misc/unimp.o
CC hw/misc/arm_l2x0.o
CC hw/misc/arm_integrator_debug.o
CC hw/misc/a9scu.o
CC hw/misc/arm11scu.o
CC hw/net/ne2000.o
CC hw/net/eepro100.o
CC hw/net/pcnet-pci.o
CC hw/net/pcnet.o
CC hw/net/e1000.o
CC hw/net/e1000x_common.o
CC hw/net/net_tx_pkt.o
CC hw/net/net_rx_pkt.o
CC hw/net/e1000e.o
CC hw/net/rtl8139.o
CC hw/net/e1000e_core.o
CC hw/net/vmxnet3.o
CC hw/net/smc91c111.o
CC hw/net/lan9118.o
CC hw/net/ne2000-isa.o
CC hw/net/xgmac.o
CC hw/net/allwinner_emac.o
CC hw/net/imx_fec.o
CC hw/net/cadence_gem.o
CC hw/net/stellaris_enet.o
CC hw/net/ftgmac100.o
CC hw/net/rocker/rocker.o
CC hw/net/rocker/rocker_fp.o
CC hw/net/rocker/rocker_desc.o
CC hw/net/rocker/rocker_world.o
CC hw/net/rocker/rocker_of_dpa.o
CC hw/nvram/eeprom93xx.o
CC hw/nvram/fw_cfg.o
CC hw/pci-bridge/pci_bridge_dev.o
CC hw/nvram/chrp_nvram.o
CC hw/pci-bridge/pcie_pci_bridge.o
CC hw/pci-bridge/gen_pcie_root_port.o
CC hw/pci-bridge/pcie_root_port.o
CC hw/pci-bridge/xio3130_upstream.o
CC hw/pci-bridge/pci_expander_bridge.o
CC hw/pci-bridge/xio3130_downstream.o
CC hw/pci-bridge/ioh3420.o
CC hw/pci-bridge/i82801b11.o
CC hw/pci-host/pam.o
CC hw/pci-host/versatile.o
CC hw/pci-host/piix.o
CC hw/pci-host/q35.o
CC hw/pci-host/gpex.o
CC hw/pci/pci.o
CC hw/pci/pci_bridge.o
CC hw/pci/msix.o
CC hw/pci/msi.o
CC hw/pci/shpc.o
CC hw/pci/slotid_cap.o
CC hw/pci/pci_host.o
CC hw/pci/pcie_host.o
CC hw/pci/pcie_aer.o
CC hw/pci/pcie.o
CC hw/pci/pcie_port.o
CC hw/pci/pci-stub.o
CC hw/pcmcia/pcmcia.o
CC hw/scsi/scsi-disk.o
CC hw/scsi/scsi-generic.o
CC hw/scsi/scsi-bus.o
CC hw/scsi/mptsas.o
CC hw/scsi/lsi53c895a.o
CC hw/scsi/mptconfig.o
CC hw/scsi/mptendian.o
CC hw/scsi/megasas.o
CC hw/scsi/vmw_pvscsi.o
CC hw/scsi/esp.o
CC hw/sd/pl181.o
CC hw/scsi/esp-pci.o
CC hw/sd/ssi-sd.o
CC hw/sd/sd.o
CC hw/sd/core.o
CC hw/sd/sdhci.o
CC hw/smbios/smbios.o
CC hw/smbios/smbios_type_38.o
CC hw/smbios/smbios-stub.o
CC hw/smbios/smbios_type_38-stub.o
CC hw/ssi/pl022.o
CC hw/ssi/ssi.o
CC hw/ssi/xilinx_spips.o
CC hw/ssi/aspeed_smc.o
CC hw/ssi/stm32f2xx_spi.o
CC hw/ssi/mss-spi.o
CC hw/timer/arm_timer.o
CC hw/timer/arm_mptimer.o
CC hw/timer/armv7m_systick.o
CC hw/timer/a9gtimer.o
CC hw/timer/cadence_ttc.o
CC hw/timer/ds1338.o
CC hw/timer/hpet.o
CC hw/timer/i8254_common.o
CC hw/timer/i8254.o
CC hw/timer/pl031.o
CC hw/timer/twl92230.o
CC hw/timer/imx_epit.o
CC hw/timer/imx_gpt.o
CC hw/timer/stm32f2xx_timer.o
CC hw/timer/aspeed_timer.o
CC hw/timer/mss-timer.o
CC hw/timer/cmsdk-apb-timer.o
CC hw/tpm/tpm_tis.o
CC hw/tpm/tpm_util.o
CC hw/tpm/tpm_passthrough.o
CC hw/tpm/tpm_emulator.o
CC hw/usb/core.o
CC hw/usb/combined-packet.o
CC hw/usb/bus.o
CC hw/usb/libhw.o
CC hw/usb/desc.o
CC hw/usb/desc-msos.o
CC hw/usb/hcd-uhci.o
CC hw/usb/hcd-ohci.o
CC hw/usb/hcd-ehci.o
CC hw/usb/hcd-ehci-pci.o
CC hw/usb/hcd-ehci-sysbus.o
CC hw/usb/hcd-xhci.o
CC hw/usb/hcd-xhci-nec.o
CC hw/usb/hcd-musb.o
CC hw/usb/dev-hub.o
CC hw/usb/dev-hid.o
CC hw/usb/dev-wacom.o
CC hw/usb/dev-storage.o
CC hw/usb/dev-uas.o
CC hw/usb/dev-audio.o
CC hw/usb/dev-serial.o
CC hw/usb/dev-network.o
CC hw/usb/dev-bluetooth.o
CC hw/usb/dev-smartcard-reader.o
CC hw/usb/dev-mtp.o
CC hw/usb/host-stub.o
CC hw/virtio/virtio-rng.o
CC hw/virtio/virtio-bus.o
CC hw/virtio/virtio-pci.o
CC hw/virtio/virtio-mmio.o
CC hw/virtio/vhost-stub.o
CC hw/watchdog/watchdog.o
CC hw/watchdog/wdt_i6300esb.o
CC hw/watchdog/wdt_ib700.o
CC hw/watchdog/wdt_aspeed.o
CC migration/migration.o
CC migration/socket.o
CC migration/fd.o
CC migration/exec.o
CC migration/tls.o
CC migration/channel.o
CC migration/colo-comm.o
CC migration/savevm.o
CC migration/colo.o
CC migration/colo-failover.o
CC migration/vmstate.o
CC migration/vmstate-types.o
CC migration/page_cache.o
CC migration/global_state.o
CC migration/qemu-file.o
CC migration/qemu-file-channel.o
CC migration/xbzrle.o
CC migration/postcopy-ram.o
CC migration/qjson.o
CC migration/block.o
CC net/queue.o
CC net/checksum.o
CC net/net.o
CC net/util.o
CC net/hub.o
CC net/socket.o
CC net/dump.o
CC net/eth.o
CC net/l2tpv3.o
CC net/vhost-user.o
CC net/slirp.o
CC net/filter-buffer.o
CC net/filter.o
CC net/filter-mirror.o
CC net/colo-compare.o
CC net/colo.o
CC net/filter-rewriter.o
CC net/filter-replay.o
CC net/tap.o
CC qom/cpu.o
CC net/tap-linux.o
CC replay/replay.o
CC replay/replay-internal.o
CC replay/replay-events.o
CC replay/replay-time.o
CC replay/replay-input.o
CC replay/replay-char.o
CC replay/replay-snapshot.o
CC replay/replay-net.o
CC replay/replay-audio.o
CC slirp/cksum.o
CC slirp/if.o
CC slirp/ip_icmp.o
/tmp/qemu-test/src/replay/replay-internal.c: In function 'replay_put_array':
/tmp/qemu-test/src/replay/replay-internal.c:65: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
CC slirp/ip6_icmp.o
CC slirp/ip6_input.o
CC slirp/ip6_output.o
CC slirp/ip_input.o
CC slirp/ip_output.o
CC slirp/dnssearch.o
CC slirp/dhcpv6.o
CC slirp/slirp.o
CC slirp/mbuf.o
CC slirp/misc.o
CC slirp/sbuf.o
CC slirp/socket.o
CC slirp/tcp_input.o
CC slirp/tcp_output.o
CC slirp/tcp_subr.o
CC slirp/tcp_timer.o
CC slirp/udp.o
CC slirp/udp6.o
CC slirp/bootp.o
CC slirp/tftp.o
CC slirp/arp_table.o
CC slirp/ndp_table.o
/tmp/qemu-test/src/slirp/tcp_input.c: In function 'tcp_input':
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_p' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_len' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_tos' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_id' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_off' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_ttl' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_sum' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_src.s_addr' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_dst.s_addr' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:220: warning: 'save_ip6.ip_nh' may be used uninitialized in this function
CC slirp/ncsi.o
CC ui/keymaps.o
CC ui/console.o
CC ui/cursor.o
CC ui/qemu-pixman.o
CC ui/input.o
CC ui/input-keymap.o
CC ui/input-legacy.o
CC ui/input-linux.o
CC ui/sdl.o
CC ui/sdl_zoom.o
CC ui/vnc.o
CC ui/x_keymap.o
CC ui/vnc-enc-zlib.o
CC ui/vnc-enc-hextile.o
CC ui/vnc-enc-tight.o
CC ui/vnc-palette.o
CC ui/vnc-enc-zrle.o
CC ui/vnc-auth-vencrypt.o
CC ui/vnc-ws.o
CC ui/vnc-jobs.o
CC chardev/char-fd.o
CC chardev/char-fe.o
CC chardev/char.o
CC chardev/char-file.o
CC chardev/char-io.o
CC chardev/char-mux.o
CC chardev/char-null.o
CC chardev/char-parallel.o
CC chardev/char-pipe.o
CC chardev/char-pty.o
CC chardev/char-ringbuf.o
CC chardev/char-serial.o
CC chardev/char-socket.o
CC chardev/char-stdio.o
CC chardev/char-udp.o
LINK tests/qemu-iotests/socket_scm_helper
CC qga/commands.o
CC qga/guest-agent-command-state.o
CC qga/main.o
CC qga/commands-posix.o
CC qga/channel-posix.o
CC qga/qapi-generated/qga-qapi-types.o
CC qga/qapi-generated/qga-qapi-visit.o
CC qga/qapi-generated/qga-qmp-marshal.o
CC qemu-img.o
AR libqemuutil.a
AS optionrom/multiboot.o
AS optionrom/linuxboot.o
CC optionrom/linuxboot_dma.o
AS optionrom/kvmvapic.o
cc: unrecognized option '-no-integrated-as'
cc: unrecognized option '-no-integrated-as'
BUILD optionrom/linuxboot_dma.img
BUILD optionrom/linuxboot_dma.raw
BUILD optionrom/multiboot.img
SIGN optionrom/linuxboot_dma.bin
BUILD optionrom/multiboot.raw
BUILD optionrom/linuxboot.img
SIGN optionrom/multiboot.bin
BUILD optionrom/kvmvapic.img
BUILD optionrom/linuxboot.raw
BUILD optionrom/kvmvapic.raw
SIGN optionrom/linuxboot.bin
SIGN optionrom/kvmvapic.bin
LINK qemu-ga
LINK ivshmem-client
LINK ivshmem-server
LINK qemu-nbd
LINK qemu-img
LINK qemu-io
LINK scsi/qemu-pr-helper
LINK qemu-bridge-helper
GEN aarch64-softmmu/hmp-commands.h
GEN x86_64-softmmu/hmp-commands.h
GEN x86_64-softmmu/hmp-commands-info.h
GEN aarch64-softmmu/hmp-commands-info.h
GEN x86_64-softmmu/config-target.h
GEN aarch64-softmmu/config-target.h
CC aarch64-softmmu/exec.o
CC aarch64-softmmu/tcg/tcg-op.o
CC aarch64-softmmu/fpu/softfloat.o
CC aarch64-softmmu/tcg/tcg.o
CC aarch64-softmmu/tcg/optimize.o
CC aarch64-softmmu/disas.o
CC aarch64-softmmu/tcg/tcg-common.o
CC x86_64-softmmu/exec.o
GEN aarch64-softmmu/gdbstub-xml.c
CC aarch64-softmmu/arch_init.o
CC aarch64-softmmu/cpus.o
CC aarch64-softmmu/monitor.o
CC x86_64-softmmu/tcg/tcg.o
CC aarch64-softmmu/gdbstub.o
CC aarch64-softmmu/balloon.o
CC aarch64-softmmu/ioport.o
CC aarch64-softmmu/qtest.o
CC aarch64-softmmu/numa.o
CC aarch64-softmmu/memory.o
CC x86_64-softmmu/tcg/tcg-op.o
CC aarch64-softmmu/memory_mapping.o
CC aarch64-softmmu/dump.o
CC aarch64-softmmu/migration/ram.o
CC aarch64-softmmu/accel/accel.o
CC aarch64-softmmu/accel/stubs/hax-stub.o
CC x86_64-softmmu/tcg/optimize.o
CC aarch64-softmmu/accel/stubs/kvm-stub.o
CC x86_64-softmmu/tcg/tcg-common.o
CC aarch64-softmmu/accel/tcg/tcg-all.o
CC aarch64-softmmu/accel/tcg/cputlb.o
CC aarch64-softmmu/accel/tcg/tcg-runtime.o
CC aarch64-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/accel/tcg/cpu-exec-common.o
CC x86_64-softmmu/fpu/softfloat.o
CC x86_64-softmmu/disas.o
GEN x86_64-softmmu/gdbstub-xml.c
CC aarch64-softmmu/accel/tcg/translate-all.o
CC x86_64-softmmu/arch_init.o
CC x86_64-softmmu/cpus.o
CC aarch64-softmmu/accel/tcg/translator.o
CC aarch64-softmmu/hw/adc/stm32f2xx_adc.o
CC x86_64-softmmu/monitor.o
CC aarch64-softmmu/hw/block/virtio-blk.o
CC aarch64-softmmu/hw/block/dataplane/virtio-blk.o
CC x86_64-softmmu/gdbstub.o
CC x86_64-softmmu/balloon.o
CC x86_64-softmmu/ioport.o
CC x86_64-softmmu/numa.o
CC aarch64-softmmu/hw/char/exynos4210_uart.o
CC aarch64-softmmu/hw/char/omap_uart.o
CC aarch64-softmmu/hw/char/digic-uart.o
CC x86_64-softmmu/qtest.o
CC x86_64-softmmu/memory.o
CC x86_64-softmmu/memory_mapping.o
CC aarch64-softmmu/hw/char/stm32f2xx_usart.o
CC aarch64-softmmu/hw/char/bcm2835_aux.o
CC aarch64-softmmu/hw/char/virtio-serial-bus.o
CC aarch64-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/core/null-machine.o
CC x86_64-softmmu/dump.o
CC aarch64-softmmu/hw/cpu/arm11mpcore.o
CC aarch64-softmmu/hw/cpu/a9mpcore.o
CC aarch64-softmmu/hw/cpu/realview_mpcore.o
CC x86_64-softmmu/migration/ram.o
CC aarch64-softmmu/hw/cpu/a15mpcore.o
CC aarch64-softmmu/hw/display/omap_dss.o
CC x86_64-softmmu/accel/accel.o
CC x86_64-softmmu/accel/stubs/hax-stub.o
CC x86_64-softmmu/accel/kvm/kvm-all.o
CC aarch64-softmmu/hw/display/omap_lcdc.o
CC aarch64-softmmu/hw/display/pxa2xx_lcd.o
CC aarch64-softmmu/hw/display/bcm2835_fb.o
CC aarch64-softmmu/hw/display/vga.o
CC x86_64-softmmu/accel/tcg/tcg-all.o
CC aarch64-softmmu/hw/display/virtio-gpu.o
CC x86_64-softmmu/accel/tcg/cputlb.o
CC x86_64-softmmu/accel/tcg/tcg-runtime.o
CC x86_64-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/hw/display/virtio-gpu-3d.o
CC x86_64-softmmu/accel/tcg/cpu-exec-common.o
CC aarch64-softmmu/hw/display/virtio-gpu-pci.o
CC aarch64-softmmu/hw/display/dpcd.o
CC x86_64-softmmu/accel/tcg/translate-all.o
CC x86_64-softmmu/accel/tcg/translator.o
CC aarch64-softmmu/hw/display/xlnx_dp.o
CC aarch64-softmmu/hw/dma/xlnx_dpdma.o
CC x86_64-softmmu/hw/block/virtio-blk.o
CC aarch64-softmmu/hw/dma/omap_dma.o
CC aarch64-softmmu/hw/dma/soc_dma.o
CC aarch64-softmmu/hw/dma/pxa2xx_dma.o
CC x86_64-softmmu/hw/block/dataplane/virtio-blk.o
CC aarch64-softmmu/hw/dma/bcm2835_dma.o
CC aarch64-softmmu/hw/gpio/omap_gpio.o
CC aarch64-softmmu/hw/gpio/imx_gpio.o
CC aarch64-softmmu/hw/gpio/bcm2835_gpio.o
CC aarch64-softmmu/hw/i2c/omap_i2c.o
CC aarch64-softmmu/hw/input/pxa2xx_keypad.o
CC x86_64-softmmu/hw/char/virtio-serial-bus.o
CC x86_64-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/input/tsc210x.o
CC aarch64-softmmu/hw/intc/armv7m_nvic.o
CC aarch64-softmmu/hw/intc/exynos4210_gic.o
CC aarch64-softmmu/hw/intc/exynos4210_combiner.o
CC x86_64-softmmu/hw/core/null-machine.o
CC x86_64-softmmu/hw/display/vga.o
CC aarch64-softmmu/hw/intc/omap_intc.o
CC aarch64-softmmu/hw/intc/bcm2835_ic.o
CC x86_64-softmmu/hw/display/virtio-gpu.o
CC aarch64-softmmu/hw/intc/bcm2836_control.o
CC aarch64-softmmu/hw/intc/allwinner-a10-pic.o
CC aarch64-softmmu/hw/intc/aspeed_vic.o
CC aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
CC x86_64-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/hw/misc/ivshmem.o
CC aarch64-softmmu/hw/misc/arm_sysctl.o
CC x86_64-softmmu/hw/display/virtio-gpu-pci.o
CC aarch64-softmmu/hw/misc/cbus.o
CC aarch64-softmmu/hw/misc/exynos4210_pmu.o
CC aarch64-softmmu/hw/misc/exynos4210_clk.o
CC aarch64-softmmu/hw/misc/exynos4210_rng.o
CC x86_64-softmmu/hw/display/virtio-vga.o
CC x86_64-softmmu/hw/intc/apic.o
CC aarch64-softmmu/hw/misc/imx_ccm.o
CC aarch64-softmmu/hw/misc/imx31_ccm.o
CC x86_64-softmmu/hw/intc/apic_common.o
CC aarch64-softmmu/hw/misc/imx25_ccm.o
CC aarch64-softmmu/hw/misc/imx6_ccm.o
CC aarch64-softmmu/hw/misc/imx6_src.o
CC aarch64-softmmu/hw/misc/mst_fpga.o
CC aarch64-softmmu/hw/misc/omap_clk.o
CC aarch64-softmmu/hw/misc/omap_gpmc.o
CC x86_64-softmmu/hw/intc/ioapic.o
CC x86_64-softmmu/hw/isa/lpc_ich9.o
CC x86_64-softmmu/hw/misc/vmport.o
CC aarch64-softmmu/hw/misc/omap_l4.o
CC x86_64-softmmu/hw/misc/ivshmem.o
CC aarch64-softmmu/hw/misc/omap_sdrc.o
CC aarch64-softmmu/hw/misc/omap_tap.o
CC x86_64-softmmu/hw/misc/pvpanic.o
CC x86_64-softmmu/hw/misc/hyperv_testdev.o
CC aarch64-softmmu/hw/misc/bcm2835_mbox.o
CC x86_64-softmmu/hw/misc/mmio_interface.o
CC aarch64-softmmu/hw/misc/bcm2835_property.o
CC x86_64-softmmu/hw/net/virtio-net.o
CC aarch64-softmmu/hw/misc/bcm2835_rng.o
CC x86_64-softmmu/hw/net/vhost_net.o
CC aarch64-softmmu/hw/misc/zynq_slcr.o
CC x86_64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/misc/zynq-xadc.o
CC x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
CC x86_64-softmmu/hw/scsi/vhost-scsi-common.o
CC aarch64-softmmu/hw/misc/mps2-scc.o
CC x86_64-softmmu/hw/scsi/vhost-scsi.o
CC x86_64-softmmu/hw/scsi/vhost-user-scsi.o
CC aarch64-softmmu/hw/misc/auxbus.o
CC x86_64-softmmu/hw/timer/mc146818rtc.o
CC x86_64-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/misc/aspeed_scu.o
CC aarch64-softmmu/hw/misc/aspeed_sdmc.o
CC x86_64-softmmu/hw/vfio/pci.o
CC x86_64-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/misc/mmio_interface.o
CC x86_64-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/hw/misc/msf2-sysreg.o
CC aarch64-softmmu/hw/net/virtio-net.o
CC aarch64-softmmu/hw/net/vhost_net.o
CC x86_64-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/hw/pcmcia/pxa2xx.o
CC x86_64-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC x86_64-softmmu/hw/virtio/virtio-balloon.o
CC aarch64-softmmu/hw/scsi/vhost-scsi-common.o
CC aarch64-softmmu/hw/scsi/vhost-scsi.o
CC x86_64-softmmu/hw/virtio/vhost.o
CC aarch64-softmmu/hw/scsi/vhost-user-scsi.o
CC x86_64-softmmu/hw/virtio/vhost-backend.o
CC aarch64-softmmu/hw/sd/omap_mmc.o
CC aarch64-softmmu/hw/sd/pxa2xx_mmci.o
CC aarch64-softmmu/hw/sd/bcm2835_sdhost.o
CC aarch64-softmmu/hw/ssi/omap_spi.o
CC x86_64-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/ssi/imx_spi.o
CC aarch64-softmmu/hw/timer/exynos4210_mct.o
CC x86_64-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/timer/exynos4210_pwm.o
CC aarch64-softmmu/hw/timer/exynos4210_rtc.o
CC x86_64-softmmu/hw/virtio/virtio-crypto.o
CC x86_64-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/timer/omap_gptimer.o
CC x86_64-softmmu/hw/i386/multiboot.o
CC aarch64-softmmu/hw/timer/omap_synctimer.o
CC aarch64-softmmu/hw/timer/pxa2xx_timer.o
CC aarch64-softmmu/hw/timer/digic-timer.o
CC x86_64-softmmu/hw/i386/pc.o
CC x86_64-softmmu/hw/i386/pc_piix.o
CC x86_64-softmmu/hw/i386/pc_q35.o
CC aarch64-softmmu/hw/timer/allwinner-a10-pit.o
CC aarch64-softmmu/hw/usb/tusb6010.o
CC aarch64-softmmu/hw/vfio/common.o
CC x86_64-softmmu/hw/i386/pc_sysfw.o
CC aarch64-softmmu/hw/vfio/pci.o
CC aarch64-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/vfio/platform.o
/tmp/qemu-test/src/hw/i386/pc_piix.c: In function 'igd_passthrough_isa_bridge_create':
/tmp/qemu-test/src/hw/i386/pc_piix.c:1072: warning: 'pch_rev_id' may be used uninitialized in this function
CC x86_64-softmmu/hw/i386/x86-iommu.o
CC aarch64-softmmu/hw/vfio/calxeda-xgmac.o
CC x86_64-softmmu/hw/i386/intel_iommu.o
CC aarch64-softmmu/hw/vfio/amd-xgbe.o
CC x86_64-softmmu/hw/i386/amd_iommu.o
CC x86_64-softmmu/hw/i386/kvmvapic.o
CC aarch64-softmmu/hw/vfio/spapr.o
CC x86_64-softmmu/hw/i386/acpi-build.o
CC x86_64-softmmu/hw/i386/pci-assign-load-rom.o
CC x86_64-softmmu/hw/i386/kvm/clock.o
CC aarch64-softmmu/hw/virtio/virtio.o
CC x86_64-softmmu/hw/i386/kvm/apic.o
/tmp/qemu-test/src/hw/i386/acpi-build.c: In function 'build_append_pci_bus_devices':
/tmp/qemu-test/src/hw/i386/acpi-build.c:509: warning: 'notify_method' may be used uninitialized in this function
CC x86_64-softmmu/hw/i386/kvm/i8259.o
CC x86_64-softmmu/hw/i386/kvm/ioapic.o
CC x86_64-softmmu/hw/i386/kvm/i8254.o
CC aarch64-softmmu/hw/virtio/virtio-balloon.o
CC x86_64-softmmu/hw/i386/kvm/pci-assign.o
CC x86_64-softmmu/target/i386/helper.o
CC x86_64-softmmu/target/i386/cpu.o
CC aarch64-softmmu/hw/virtio/vhost.o
CC x86_64-softmmu/target/i386/gdbstub.o
CC aarch64-softmmu/hw/virtio/vhost-backend.o
CC x86_64-softmmu/target/i386/translate.o
CC x86_64-softmmu/target/i386/xsave_helper.o
CC x86_64-softmmu/target/i386/bpt_helper.o
CC aarch64-softmmu/hw/virtio/vhost-user.o
CC x86_64-softmmu/target/i386/cc_helper.o
CC aarch64-softmmu/hw/virtio/vhost-vsock.o
CC x86_64-softmmu/target/i386/excp_helper.o
CC x86_64-softmmu/target/i386/fpu_helper.o
CC aarch64-softmmu/hw/virtio/virtio-crypto.o
CC x86_64-softmmu/target/i386/int_helper.o
CC x86_64-softmmu/target/i386/misc_helper.o
CC aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
CC x86_64-softmmu/target/i386/mem_helper.o
CC x86_64-softmmu/target/i386/mpx_helper.o
CC aarch64-softmmu/hw/arm/boot.o
CC x86_64-softmmu/target/i386/seg_helper.o
CC x86_64-softmmu/target/i386/smm_helper.o
CC aarch64-softmmu/hw/arm/collie.o
CC aarch64-softmmu/hw/arm/exynos4_boards.o
CC aarch64-softmmu/hw/arm/gumstix.o
CC x86_64-softmmu/target/i386/svm_helper.o
CC aarch64-softmmu/hw/arm/highbank.o
CC x86_64-softmmu/target/i386/machine.o
CC x86_64-softmmu/target/i386/arch_memory_mapping.o
CC aarch64-softmmu/hw/arm/digic_boards.o
CC x86_64-softmmu/target/i386/arch_dump.o
CC x86_64-softmmu/target/i386/monitor.o
CC x86_64-softmmu/target/i386/kvm.o
CC x86_64-softmmu/target/i386/hyperv.o
CC aarch64-softmmu/hw/arm/integratorcp.o
CC aarch64-softmmu/hw/arm/mainstone.o
CC aarch64-softmmu/hw/arm/musicpal.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/trace/control-target.o
CC aarch64-softmmu/hw/arm/nseries.o
CC aarch64-softmmu/hw/arm/omap_sx1.o
CC x86_64-softmmu/gdbstub-xml.o
CC aarch64-softmmu/hw/arm/palm.o
CC aarch64-softmmu/hw/arm/realview.o
CC aarch64-softmmu/hw/arm/spitz.o
CC x86_64-softmmu/trace/generated-helpers.o
CC aarch64-softmmu/hw/arm/stellaris.o
CC aarch64-softmmu/hw/arm/tosa.o
CC aarch64-softmmu/hw/arm/versatilepb.o
CC aarch64-softmmu/hw/arm/vexpress.o
CC aarch64-softmmu/hw/arm/virt.o
CC aarch64-softmmu/hw/arm/xilinx_zynq.o
CC aarch64-softmmu/hw/arm/z2.o
CC aarch64-softmmu/hw/arm/virt-acpi-build.o
LINK x86_64-softmmu/qemu-system-x86_64
CC aarch64-softmmu/hw/arm/netduino2.o
CC aarch64-softmmu/hw/arm/sysbus-fdt.o
CC aarch64-softmmu/hw/arm/armv7m.o
CC aarch64-softmmu/hw/arm/exynos4210.o
CC aarch64-softmmu/hw/arm/pxa2xx.o
CC aarch64-softmmu/hw/arm/pxa2xx_gpio.o
CC aarch64-softmmu/hw/arm/pxa2xx_pic.o
CC aarch64-softmmu/hw/arm/digic.o
CC aarch64-softmmu/hw/arm/omap1.o
CC aarch64-softmmu/hw/arm/omap2.o
CC aarch64-softmmu/hw/arm/strongarm.o
CC aarch64-softmmu/hw/arm/allwinner-a10.o
CC aarch64-softmmu/hw/arm/cubieboard.o
CC aarch64-softmmu/hw/arm/bcm2835_peripherals.o
CC aarch64-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/hw/arm/raspi.o
CC aarch64-softmmu/hw/arm/stm32f205_soc.o
CC aarch64-softmmu/hw/arm/xlnx-zynqmp.o
CC aarch64-softmmu/hw/arm/xlnx-zcu102.o
CC aarch64-softmmu/hw/arm/imx25_pdk.o
CC aarch64-softmmu/hw/arm/fsl-imx25.o
CC aarch64-softmmu/hw/arm/fsl-imx31.o
CC aarch64-softmmu/hw/arm/kzm.o
CC aarch64-softmmu/hw/arm/fsl-imx6.o
CC aarch64-softmmu/hw/arm/sabrelite.o
CC aarch64-softmmu/hw/arm/aspeed_soc.o
CC aarch64-softmmu/hw/arm/aspeed.o
CC aarch64-softmmu/hw/arm/mps2.o
CC aarch64-softmmu/hw/arm/msf2-soc.o
CC aarch64-softmmu/hw/arm/msf2-som.o
CC aarch64-softmmu/target/arm/arm-semi.o
CC aarch64-softmmu/target/arm/machine.o
CC aarch64-softmmu/target/arm/psci.o
CC aarch64-softmmu/target/arm/arch_dump.o
CC aarch64-softmmu/target/arm/monitor.o
CC aarch64-softmmu/target/arm/kvm-stub.o
CC aarch64-softmmu/target/arm/translate.o
CC aarch64-softmmu/target/arm/op_helper.o
CC aarch64-softmmu/target/arm/helper.o
CC aarch64-softmmu/target/arm/cpu.o
CC aarch64-softmmu/target/arm/neon_helper.o
CC aarch64-softmmu/target/arm/iwmmxt_helper.o
CC aarch64-softmmu/target/arm/gdbstub.o
CC aarch64-softmmu/target/arm/cpu64.o
CC aarch64-softmmu/target/arm/translate-a64.o
CC aarch64-softmmu/target/arm/helper-a64.o
CC aarch64-softmmu/target/arm/gdbstub64.o
CC aarch64-softmmu/target/arm/crypto_helper.o
CC aarch64-softmmu/target/arm/arm-powerctl.o
/tmp/qemu-test/src/target/arm/translate-a64.c: In function 'handle_shri_with_rndacc':
/tmp/qemu-test/src/target/arm/translate-a64.c:6390: warning: 'tcg_src_hi' may be used uninitialized in this function
/tmp/qemu-test/src/target/arm/translate-a64.c: In function 'disas_simd_scalar_two_reg_misc':
/tmp/qemu-test/src/target/arm/translate-a64.c:8117: warning: 'rmode' may be used uninitialized in this function
GEN trace/generated-helpers.c
CC aarch64-softmmu/trace/control-target.o
CC aarch64-softmmu/gdbstub-xml.o
CC aarch64-softmmu/trace/generated-helpers.o
LINK aarch64-softmmu/qemu-system-aarch64
mkdir -p dtc/libfdt
mkdir -p dtc/tests
LEX convert-dtsv0-lexer.lex.c
BISON dtc-parser.tab.c
make[1]: flex: Command not found
make[1]: bison: Command not found
LEX dtc-lexer.lex.c
make[1]: flex: Command not found
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/share/qemu"
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/var"/run
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin"
install -c -m 0755 qemu-ga ivshmem-client ivshmem-server qemu-nbd qemu-img qemu-io scsi/qemu-pr-helper "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin"
strip "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/qemu-ga" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/ivshmem-client" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/ivshmem-server" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/qemu-nbd" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/qemu-img" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/qemu-io" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/qemu-pr-helper"
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/libexec"
install -c -m 0755 qemu-bridge-helper "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/libexec"
strip "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/libexec/qemu-bridge-helper"
set -e; for x in bios.bin bios-256k.bin sgabios.bin vgabios.bin vgabios-cirrus.bin vgabios-stdvga.bin vgabios-vmware.bin vgabios-qxl.bin vgabios-virtio.bin acpi-dsdt.aml ppc_rom.bin openbios-sparc32 openbios-sparc64 openbios-ppc QEMU,tcx.bin QEMU,cgthree.bin pxe-e1000.rom pxe-eepro100.rom pxe-ne2k_pci.rom pxe-pcnet.rom pxe-rtl8139.rom pxe-virtio.rom efi-e1000.rom efi-eepro100.rom efi-ne2k_pci.rom efi-pcnet.rom efi-rtl8139.rom efi-virtio.rom efi-e1000e.rom efi-vmxnet3.rom qemu-icon.bmp qemu_logo_no_text.svg bamboo.dtb petalogix-s3adsp1800.dtb petalogix-ml605.dtb multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin s390-ccw.img s390-netboot.img spapr-rtas.bin slof.bin skiboot.lid palcode-clipper u-boot.e500 qemu_vga.ndrv; do \
install -c -m 0644 /tmp/qemu-test/src/pc-bios/$x "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/share/qemu"; \
done
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/share/qemu/keymaps"
set -e; for x in da en-gb et fr fr-ch is lt modifiers no pt-br sv ar de en-us fi fr-be hr it lv nl pl ru th common de-ch es fo fr-ca hu ja mk nl-be pt sl tr bepo cz; do \
install -c -m 0644 /tmp/qemu-test/src/pc-bios/keymaps/$x "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/share/qemu/keymaps"; \
done
install -c -m 0644 /tmp/qemu-test/build/trace-events-all "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/share/qemu/trace-events-all"
for d in x86_64-softmmu aarch64-softmmu; do \
make --no-print-directory BUILD_DIR=/tmp/qemu-test/build TARGET_DIR=$d/ -C $d install || exit 1 ; \
done
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin"
install -c -m 0755 qemu-system-x86_64 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin"
strip "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/qemu-system-x86_64"
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin"
install -c -m 0755 qemu-system-aarch64 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin"
strip "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/bin/qemu-system-aarch64"
CLEANUP /var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.50.58.7918
make[1]: Leaving directory '/var/tmp/patchew-tester-tmp-lx9ko0qg/src'
real 1m45.508s
user 0m3.979s
sys 0m4.156s
BUILD fedora
make[1]: Entering directory '/var/tmp/patchew-tester-tmp-lx9ko0qg/src'
GEN /var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.52.44.14388/qemu.tar
Cloning into '/var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.52.44.14388/qemu.tar.vroot'...
done.
Checking out files: 45% (2568/5656)
Checking out files: 46% (2602/5656)
Checking out files: 47% (2659/5656)
Checking out files: 48% (2715/5656)
Checking out files: 49% (2772/5656)
Checking out files: 50% (2828/5656)
Checking out files: 51% (2885/5656)
Checking out files: 52% (2942/5656)
Checking out files: 53% (2998/5656)
Checking out files: 54% (3055/5656)
Checking out files: 55% (3111/5656)
Checking out files: 56% (3168/5656)
Checking out files: 57% (3224/5656)
Checking out files: 58% (3281/5656)
Checking out files: 59% (3338/5656)
Checking out files: 60% (3394/5656)
Checking out files: 61% (3451/5656)
Checking out files: 62% (3507/5656)
Checking out files: 63% (3564/5656)
Checking out files: 64% (3620/5656)
Checking out files: 65% (3677/5656)
Checking out files: 66% (3733/5656)
Checking out files: 67% (3790/5656)
Checking out files: 68% (3847/5656)
Checking out files: 69% (3903/5656)
Checking out files: 70% (3960/5656)
Checking out files: 71% (4016/5656)
Checking out files: 72% (4073/5656)
Checking out files: 73% (4129/5656)
Checking out files: 74% (4186/5656)
Checking out files: 75% (4242/5656)
Checking out files: 76% (4299/5656)
Checking out files: 77% (4356/5656)
Checking out files: 78% (4412/5656)
Checking out files: 79% (4469/5656)
Checking out files: 80% (4525/5656)
Checking out files: 81% (4582/5656)
Checking out files: 82% (4638/5656)
Checking out files: 83% (4695/5656)
Checking out files: 84% (4752/5656)
Checking out files: 85% (4808/5656)
Checking out files: 86% (4865/5656)
Checking out files: 87% (4921/5656)
Checking out files: 88% (4978/5656)
Checking out files: 89% (5034/5656)
Checking out files: 90% (5091/5656)
Checking out files: 91% (5147/5656)
Checking out files: 92% (5204/5656)
Checking out files: 93% (5261/5656)
Checking out files: 94% (5317/5656)
Checking out files: 95% (5374/5656)
Checking out files: 96% (5430/5656)
Checking out files: 97% (5487/5656)
Checking out files: 98% (5543/5656)
Checking out files: 99% (5600/5656)
Checking out files: 100% (5656/5656)
Checking out files: 100% (5656/5656), done.
Your branch is up-to-date with 'origin/test'.
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.52.44.14388/qemu.tar.vroot/dtc'...
Submodule path 'dtc': checked out '558cd81bdd432769b59bff01240c44f82cfb1a9d'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into '/var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.52.44.14388/qemu.tar.vroot/ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '10739aa26051a5d49d88132604539d3ed085e72e'
COPY RUNNER
RUN test-mingw in qemu:fedora
Packages installed:
PyYAML-3.11-13.fc25.x86_64
SDL-devel-1.2.15-21.fc24.x86_64
bc-1.06.95-16.fc24.x86_64
bison-3.0.4-4.fc24.x86_64
bzip2-1.0.6-21.fc25.x86_64
ccache-3.3.4-1.fc25.x86_64
clang-3.9.1-2.fc25.x86_64
findutils-4.6.0-8.fc25.x86_64
flex-2.6.0-3.fc25.x86_64
gcc-6.4.1-1.fc25.x86_64
gcc-c++-6.4.1-1.fc25.x86_64
gettext-0.19.8.1-3.fc25.x86_64
git-2.9.5-1.fc25.x86_64
glib2-devel-2.50.3-1.fc25.x86_64
hostname-3.15-8.fc25.x86_64
libaio-devel-0.3.110-6.fc24.x86_64
libfdt-devel-1.4.2-1.fc25.x86_64
make-4.1-6.fc25.x86_64
mingw32-SDL-1.2.15-7.fc24.noarch
mingw32-bzip2-1.0.6-7.fc24.noarch
mingw32-curl-7.47.0-1.fc24.noarch
mingw32-glib2-2.50.3-1.fc25.noarch
mingw32-gmp-6.1.1-1.fc25.noarch
mingw32-gnutls-3.5.5-2.fc25.noarch
mingw32-gtk2-2.24.31-2.fc25.noarch
mingw32-gtk3-3.22.17-1.fc25.noarch
mingw32-libjpeg-turbo-1.5.1-1.fc25.noarch
mingw32-libpng-1.6.27-1.fc25.noarch
mingw32-libssh2-1.4.3-5.fc24.noarch
mingw32-libtasn1-4.9-1.fc25.noarch
mingw32-nettle-3.3-1.fc25.noarch
mingw32-pixman-0.34.0-1.fc25.noarch
mingw32-pkg-config-0.28-6.fc24.x86_64
mingw64-SDL-1.2.15-7.fc24.noarch
mingw64-bzip2-1.0.6-7.fc24.noarch
mingw64-curl-7.47.0-1.fc24.noarch
mingw64-glib2-2.50.3-1.fc25.noarch
mingw64-gmp-6.1.1-1.fc25.noarch
mingw64-gnutls-3.5.5-2.fc25.noarch
mingw64-gtk2-2.24.31-2.fc25.noarch
mingw64-gtk3-3.22.17-1.fc25.noarch
mingw64-libjpeg-turbo-1.5.1-1.fc25.noarch
mingw64-libpng-1.6.27-1.fc25.noarch
mingw64-libssh2-1.4.3-5.fc24.noarch
mingw64-libtasn1-4.9-1.fc25.noarch
mingw64-nettle-3.3-1.fc25.noarch
mingw64-pixman-0.34.0-1.fc25.noarch
mingw64-pkg-config-0.28-6.fc24.x86_64
nettle-devel-3.3-1.fc25.x86_64
package python2 is not installed
perl-5.24.2-387.fc25.x86_64
pixman-devel-0.34.0-2.fc24.x86_64
sparse-0.5.0-10.fc25.x86_64
tar-1.29-3.fc25.x86_64
which-2.21-1.fc25.x86_64
zlib-devel-1.2.8-10.fc24.x86_64
Environment variables:
PACKAGES=ccache gettext git tar PyYAML sparse flex bison python2 bzip2 hostname glib2-devel pixman-devel zlib-devel SDL-devel libfdt-devel gcc gcc-c++ clang make perl which bc findutils libaio-devel nettle-devel mingw32-pixman mingw32-glib2 mingw32-gmp mingw32-SDL mingw32-pkg-config mingw32-gtk2 mingw32-gtk3 mingw32-gnutls mingw32-nettle mingw32-libtasn1 mingw32-libjpeg-turbo mingw32-libpng mingw32-curl mingw32-libssh2 mingw32-bzip2 mingw64-pixman mingw64-glib2 mingw64-gmp mingw64-SDL mingw64-pkg-config mingw64-gtk2 mingw64-gtk3 mingw64-gnutls mingw64-nettle mingw64-libtasn1 mingw64-libjpeg-turbo mingw64-libpng mingw64-curl mingw64-libssh2 mingw64-bzip2
HOSTNAME=9b0fc759f0f6
MAKEFLAGS= -j8
J=8
CCACHE_DIR=/var/tmp/ccache
EXTRA_CONFIGURE_OPTS=
V=
SHOW_ENV=1
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
TARGET_LIST=
FGC=f25
SHLVL=1
HOME=/root
TEST_DIR=/tmp/qemu-test
DISTTAG=f25container
FEATURES=mingw clang pyyaml dtc
DEBUG=
_=/usr/bin/env
Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/tmp/qemu-test/install --cross-prefix=x86_64-w64-mingw32- --enable-trace-backends=simple --enable-debug --enable-gnutls --enable-nettle --enable-curl --enable-vnc --enable-bzip2 --enable-guest-agent --with-sdlabi=1.2 --with-gtkabi=2.0
Install prefix /tmp/qemu-test/install
BIOS directory /tmp/qemu-test/install
firmware path /tmp/qemu-test/install/share/qemu-firmware
binary directory /tmp/qemu-test/install
library directory /tmp/qemu-test/install/lib
module directory /tmp/qemu-test/install/lib
libexec directory /tmp/qemu-test/install/libexec
include directory /tmp/qemu-test/install/include
config directory /tmp/qemu-test/install
local state directory queried at runtime
Windows SDK no
Source path /tmp/qemu-test/src
GIT submodules
C compiler x86_64-w64-mingw32-gcc
Host C compiler cc
C++ compiler x86_64-w64-mingw32-g++
Objective-C compiler clang
ARFLAGS rv
CFLAGS -g
QEMU_CFLAGS -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -Werror -mms-bitfields -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/glib-2.0 -I/usr/x86_64-w64-mingw32/sys-root/mingw/lib/glib-2.0/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -m64 -mcx16 -mthreads -D__USE_MINGW_ANSI_STDIO=1 -DWIN32_LEAN_AND_MEAN -DWINVER=0x501 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/libpng16
LDFLAGS -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase -Wl,--warn-common -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU x86_64
host big endian no
target list x86_64-softmmu aarch64-softmmu
gprof enabled no
sparse enabled no
strip binaries no
profiler no
static build no
SDL support yes (1.2.15)
GTK support yes (2.24.31)
GTK GL support no
VTE support no
TLS priority NORMAL
GNUTLS support yes
GNUTLS rnd yes
libgcrypt no
libgcrypt kdf no
nettle yes (3.3)
nettle kdf yes
libtasn1 yes
curses support no
virgl support no
curl support yes
mingw32 support yes
Audio drivers dsound
Block whitelist (rw)
Block whitelist (ro)
VirtFS support no
Multipath support no
VNC support yes
VNC SASL support no
VNC JPEG support yes
VNC PNG support yes
xen support no
brlapi support no
bluez support no
Documentation no
PIE no
vde support no
netmap support no
Linux AIO support no
ATTR/XATTR support no
Install blobs yes
KVM support no
HAX support yes
TCG support yes
TCG debug enabled yes
TCG interpreter no
RDMA support no
fdt support yes
preadv support no
fdatasync no
madvise no
posix_madvise no
libcap-ng support no
vhost-net support no
vhost-scsi support no
vhost-vsock support no
vhost-user support no
Trace backends simple
Trace output file trace-<pid>
spice support no
rbd support no
xfsctl support no
smartcard support no
libusb no
usb net redir no
OpenGL support no
OpenGL dmabufs no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info yes
QGA MSI support no
seccomp support no
coroutine backend win32
coroutine pool yes
debug stack usage no
crypto afalg no
GlusterFS support no
gcov gcov
gcov enabled no
TPM support yes
libssh2 support yes
TPM passthrough no
TPM emulator no
QOM debugging yes
Live block migration yes
lzo support no
snappy support no
bzip2 support yes
NUMA host support no
tcmalloc support no
jemalloc support no
avx2 optimization yes
replication support yes
VxHS block device no
capstone no
mkdir -p dtc/libfdt
mkdir -p dtc/tests
GEN x86_64-softmmu/config-devices.mak.tmp
GEN aarch64-softmmu/config-devices.mak.tmp
GEN config-host.h
GEN qmp-commands.h
GEN qapi-types.h
GEN qemu-options.def
GEN qapi-visit.h
GEN qapi-event.h
GEN aarch64-softmmu/config-devices.mak
GEN qmp-marshal.c
GEN x86_64-softmmu/config-devices.mak
GEN qapi-types.c
GEN qapi-visit.c
GEN qapi-event.c
GEN qmp-introspect.h
GEN qmp-introspect.c
GEN trace/generated-tcg-tracers.h
GEN trace/generated-helpers-wrappers.h
GEN trace/generated-helpers.h
GEN module_block.h
GEN trace/generated-helpers.c
GEN ui/input-keymap-linux-to-qcode.c
GEN ui/input-keymap-qcode-to-qnum.c
GEN ui/input-keymap-qnum-to-qcode.c
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
GEN hw/intc/trace.h
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/xen/trace.h
GEN hw/ide/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN accel/kvm/trace.h
GEN nbd/trace.h
GEN scsi/trace.h
GEN trace-root.c
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/xen/trace.c
GEN hw/ide/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN nbd/trace.c
GEN scsi/trace.c
GEN config-all-devices.mak
DEP /tmp/qemu-test/src/dtc/tests/dumptrees.c
DEP /tmp/qemu-test/src/dtc/tests/trees.S
DEP /tmp/qemu-test/src/dtc/tests/testutils.c
DEP /tmp/qemu-test/src/dtc/tests/value-labels.c
DEP /tmp/qemu-test/src/dtc/tests/asm_tree_dump.c
DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c
DEP /tmp/qemu-test/src/dtc/tests/check_path.c
DEP /tmp/qemu-test/src/dtc/tests/overlay_bad_fixup.c
DEP /tmp/qemu-test/src/dtc/tests/overlay.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/property_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/integer-expressions.c
DEP /tmp/qemu-test/src/dtc/tests/utilfdt_test.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset_aliases.c
DEP /tmp/qemu-test/src/dtc/tests/add_subnode_with_nops.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_unordered.c
DEP /tmp/qemu-test/src/dtc/tests/dtb_reverse.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_ordered.c
DEP /tmp/qemu-test/src/dtc/tests/extra-terminating-null.c
DEP /tmp/qemu-test/src/dtc/tests/incbin.c
DEP /tmp/qemu-test/src/dtc/tests/boot-cpuid.c
DEP /tmp/qemu-test/src/dtc/tests/phandle_format.c
DEP /tmp/qemu-test/src/dtc/tests/path-references.c
DEP /tmp/qemu-test/src/dtc/tests/references.c
DEP /tmp/qemu-test/src/dtc/tests/string_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/propname_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop2.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop1.c
DEP /tmp/qemu-test/src/dtc/tests/del_node.c
DEP /tmp/qemu-test/src/dtc/tests/del_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop.c
DEP /tmp/qemu-test/src/dtc/tests/set_name.c
DEP /tmp/qemu-test/src/dtc/tests/rw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/open_pack.c
DEP /tmp/qemu-test/src/dtc/tests/nopulate.c
DEP /tmp/qemu-test/src/dtc/tests/mangle-layout.c
DEP /tmp/qemu-test/src/dtc/tests/move_and_save.c
DEP /tmp/qemu-test/src/dtc/tests/sw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/nop_node.c
DEP /tmp/qemu-test/src/dtc/tests/nop_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop_inplace.c
DEP /tmp/qemu-test/src/dtc/tests/addr_size_cells.c
DEP /tmp/qemu-test/src/dtc/tests/stringlist.c
DEP /tmp/qemu-test/src/dtc/tests/notfound.c
DEP /tmp/qemu-test/src/dtc/tests/sized_cells.c
DEP /tmp/qemu-test/src/dtc/tests/char_literal.c
DEP /tmp/qemu-test/src/dtc/tests/get_alias.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_check_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/parent_offset.c
DEP /tmp/qemu-test/src/dtc/tests/get_path.c
DEP /tmp/qemu-test/src/dtc/tests/supernode_atdepth_offset.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_prop_value.c
DEP /tmp/qemu-test/src/dtc/tests/get_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/getprop.c
DEP /tmp/qemu-test/src/dtc/tests/get_name.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_offset.c
DEP /tmp/qemu-test/src/dtc/tests/find_property.c
DEP /tmp/qemu-test/src/dtc/tests/root_node.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_overlay.c
DEP /tmp/qemu-test/src/dtc/tests/get_mem_rsv.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_addresses.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_empty_tree.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_strerror.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_rw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_sw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_wip.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_ro.c
DEP /tmp/qemu-test/src/dtc/util.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt.c
DEP /tmp/qemu-test/src/dtc/fdtput.c
DEP /tmp/qemu-test/src/dtc/fdtget.c
LEX convert-dtsv0-lexer.lex.c
DEP /tmp/qemu-test/src/dtc/fdtdump.c
DEP /tmp/qemu-test/src/dtc/srcpos.c
BISON dtc-parser.tab.c
LEX dtc-lexer.lex.c
DEP /tmp/qemu-test/src/dtc/treesource.c
DEP /tmp/qemu-test/src/dtc/livetree.c
DEP /tmp/qemu-test/src/dtc/fstree.c
DEP /tmp/qemu-test/src/dtc/flattree.c
DEP /tmp/qemu-test/src/dtc/data.c
DEP /tmp/qemu-test/src/dtc/dtc.c
DEP /tmp/qemu-test/src/dtc/checks.c
DEP convert-dtsv0-lexer.lex.c
DEP dtc-lexer.lex.c
DEP dtc-parser.tab.c
CHK version_gen.h
UPD version_gen.h
DEP /tmp/qemu-test/src/dtc/util.c
CC libfdt/fdt.o
CC libfdt/fdt_ro.o
CC libfdt/fdt_wip.o
CC libfdt/fdt_sw.o
CC libfdt/fdt_strerror.o
CC libfdt/fdt_rw.o
CC libfdt/fdt_empty_tree.o
CC libfdt/fdt_addresses.o
CC libfdt/fdt_overlay.o
AR libfdt/libfdt.a
x86_64-w64-mingw32-ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
RC version.o
mkdir -p dtc/libfdt
mkdir -p dtc/tests
GEN qga/qapi-generated/qga-qapi-types.h
GEN qga/qapi-generated/qga-qmp-commands.h
GEN qga/qapi-generated/qga-qapi-visit.c
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qapi-types.c
CC qmp-introspect.o
CC qapi-types.o
GEN qga/qapi-generated/qga-qmp-marshal.c
CC qapi-visit.o
CC qapi-event.o
CC qapi/qapi-visit-core.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qobject-input-visitor.o
CC qapi/qobject-output-visitor.o
CC qapi/qmp-registry.o
CC qapi/qmp-dispatch.o
CC qapi/string-input-visitor.o
CC qapi/string-output-visitor.o
CC qapi/opts-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qnum.o
CC qobject/qstring.o
CC qobject/qdict.o
CC qobject/qlist.o
CC qobject/qbool.o
CC qobject/qlit.o
CC qobject/qjson.o
CC qobject/qobject.o
CC qobject/json-lexer.o
CC qobject/json-streamer.o
CC trace/simple.o
CC qobject/json-parser.o
CC trace/control.o
CC util/osdep.o
CC trace/qmp.o
CC util/unicode.o
CC util/cutils.o
CC util/qemu-timer-common.o
CC util/bufferiszero.o
CC util/lockcnt.o
CC util/aiocb.o
CC util/thread-pool.o
CC util/async.o
CC util/main-loop.o
CC util/qemu-timer.o
CC util/iohandler.o
CC util/aio-win32.o
CC util/oslib-win32.o
CC util/event_notifier-win32.o
CC util/qemu-thread-win32.o
CC util/envlist.o
CC util/path.o
CC util/module.o
CC util/host-utils.o
CC util/bitmap.o
CC util/bitops.o
CC util/hbitmap.o
CC util/fifo8.o
CC util/acl.o
CC util/cacheinfo.o
CC util/error.o
CC util/qemu-error.o
CC util/id.o
CC util/iov.o
CC util/qemu-config.o
CC util/qemu-sockets.o
CC util/uri.o
CC util/notify.o
CC util/qemu-option.o
CC util/qemu-progress.o
CC util/keyval.o
CC util/hexdump.o
CC util/crc32c.o
CC util/uuid.o
CC util/throttle.o
CC util/getauxval.o
CC util/readline.o
CC util/rcu.o
CC util/qemu-coroutine.o
CC util/qemu-coroutine-io.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-sleep.o
CC util/coroutine-win32.o
CC util/buffer.o
CC util/timed-average.o
CC util/base64.o
CC util/log.o
CC util/pagesize.o
CC util/qdist.o
CC util/range.o
CC util/qht.o
CC util/stats64.o
CC util/systemd.o
CC trace-root.o
CC util/trace.o
CC crypto/trace.o
CC io/trace.o
CC migration/trace.o
CC block/trace.o
CC chardev/trace.o
CC hw/block/trace.o
CC hw/block/dataplane/trace.o
CC hw/char/trace.o
CC hw/intc/trace.o
CC hw/net/trace.o
CC hw/virtio/trace.o
CC hw/misc/trace.o
CC hw/audio/trace.o
CC hw/scsi/trace.o
CC hw/usb/trace.o
CC hw/nvram/trace.o
CC hw/display/trace.o
CC hw/input/trace.o
CC hw/timer/trace.o
CC hw/sparc/trace.o
CC hw/dma/trace.o
CC hw/sd/trace.o
CC hw/isa/trace.o
CC hw/i386/trace.o
CC hw/mem/trace.o
CC hw/i386/xen/trace.o
CC hw/9pfs/trace.o
CC hw/ppc/trace.o
CC hw/pci/trace.o
CC hw/s390x/trace.o
CC hw/vfio/trace.o
CC hw/arm/trace.o
CC hw/acpi/trace.o
CC hw/alpha/trace.o
CC hw/xen/trace.o
CC hw/ide/trace.o
CC audio/trace.o
CC ui/trace.o
CC net/trace.o
CC target/arm/trace.o
CC target/i386/trace.o
CC target/mips/trace.o
CC target/sparc/trace.o
CC target/ppc/trace.o
CC target/s390x/trace.o
CC qom/trace.o
CC linux-user/trace.o
CC qapi/trace.o
CC accel/tcg/trace.o
CC accel/kvm/trace.o
CC nbd/trace.o
CC scsi/trace.o
CC crypto/pbkdf-stub.o
CC stubs/arch-query-cpu-model-expansion.o
CC stubs/arch-query-cpu-def.o
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/blk-commit-all.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-icount.o
CC stubs/cpu-get-clock.o
CC stubs/dump.o
CC stubs/fdset.o
CC stubs/gdbstub.o
CC stubs/get-vm-name.o
CC stubs/error-printf.o
CC stubs/is-daemonized.o
CC stubs/iothread.o
CC stubs/machine-init-done.o
CC stubs/iothread-lock.o
CC stubs/migr-blocker.o
CC stubs/change-state-handler.o
CC stubs/monitor.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/runstate-check.o
CC stubs/replay.o
CC stubs/set-fd-handler.o
CC stubs/slirp.o
CC stubs/sysbus.o
CC stubs/tpm.o
CC stubs/trace-control.o
CC stubs/vm-stop.o
CC stubs/vmstate.o
CC stubs/uuid.o
CC stubs/fd-register.o
CC stubs/qmp_pc_dimm.o
CC stubs/target-monitor-defs.o
CC stubs/target-get-monitor-def.o
CC stubs/pc_madt_cpu_entry.o
CC stubs/vmgenid.o
CC stubs/xen-hvm.o
CC stubs/xen-common.o
CC stubs/pci-host-piix.o
GEN qemu-img-cmds.h
CC block.o
CC blockjob.o
CC qemu-io-cmds.o
CC block/raw-format.o
CC replication.o
CC block/qcow.o
CC block/vdi.o
CC block/vmdk.o
CC block/cloop.o
CC block/bochs.o
CC block/vpc.o
CC block/vvfat.o
CC block/dmg.o
CC block/qcow2.o
CC block/qcow2-refcount.o
CC block/qcow2-cluster.o
CC block/qcow2-snapshot.o
CC block/qcow2-cache.o
CC block/qcow2-bitmap.o
CC block/qed.o
CC block/qed-l2-cache.o
CC block/qed-table.o
CC block/qed-cluster.o
CC block/qed-check.o
CC block/vhdx.o
CC block/vhdx-endian.o
CC block/vhdx-log.o
CC block/quorum.o
CC block/parallels.o
CC block/blkdebug.o
CC block/blkverify.o
CC block/blkreplay.o
CC block/block-backend.o
CC block/snapshot.o
CC block/qapi.o
CC block/file-win32.o
CC block/win32-aio.o
CC block/null.o
CC block/mirror.o
CC block/commit.o
CC block/io.o
CC block/throttle-groups.o
CC block/nbd.o
CC block/sheepdog.o
CC block/nbd-client.o
CC block/accounting.o
CC block/write-threshold.o
CC block/dirty-bitmap.o
CC block/backup.o
CC block/replication.o
CC block/throttle.o
CC nbd/server.o
CC block/crypto.o
CC nbd/client.o
CC nbd/common.o
CC scsi/utils.o
CC block/curl.o
CC block/dmg-bz2.o
CC block/ssh.o
CC crypto/hash.o
CC crypto/init.o
CC crypto/hash-nettle.o
CC crypto/hmac.o
CC crypto/hmac-nettle.o
CC crypto/aes.o
CC crypto/desrfb.o
CC crypto/tlscreds.o
CC crypto/cipher.o
CC crypto/tlscredsanon.o
CC crypto/tlscredsx509.o
CC crypto/tlssession.o
CC crypto/secret.o
CC crypto/random-gnutls.o
CC crypto/pbkdf.o
CC crypto/pbkdf-nettle.o
CC crypto/ivgen.o
CC crypto/ivgen-essiv.o
CC crypto/ivgen-plain.o
CC crypto/ivgen-plain64.o
CC crypto/afsplit.o
CC crypto/xts.o
CC crypto/block-qcow.o
CC crypto/block.o
CC crypto/block-luks.o
CC io/channel.o
CC io/channel-buffer.o
CC io/channel-file.o
CC io/channel-command.o
CC io/channel-socket.o
CC io/channel-tls.o
CC io/channel-watch.o
CC io/channel-websock.o
CC io/channel-util.o
CC io/dns-resolver.o
CC io/task.o
CC qom/object.o
CC qom/container.o
CC qom/qom-qobject.o
CC qom/object_interfaces.o
CC qemu-io.o
CC blockdev.o
CC blockdev-nbd.o
CC bootdevice.o
CC iothread.o
CC qdev-monitor.o
CC device-hotplug.o
CC os-win32.o
CC bt-host.o
CC bt-vhci.o
CC dma-helpers.o
CC vl.o
CC tpm.o
CC device_tree.o
CC qmp-marshal.o
CC hmp.o
CC qmp.o
CC cpus-common.o
CC audio/audio.o
CC audio/noaudio.o
CC audio/wavaudio.o
CC audio/mixeng.o
CC audio/sdlaudio.o
CC audio/audio_win_int.o
CC audio/dsoundaudio.o
CC backends/rng.o
CC backends/rng-egd.o
CC audio/wavcapture.o
CC backends/tpm.o
CC backends/hostmem.o
CC backends/hostmem-ram.o
CC backends/cryptodev.o
CC backends/cryptodev-builtin.o
CC block/stream.o
CC chardev/msmouse.o
CC chardev/wctablet.o
CC chardev/testdev.o
CC disas/arm.o
CC disas/i386.o
CXX disas/arm-a64.o
CXX disas/libvixl/vixl/utils.o
CXX disas/libvixl/vixl/compiler-intrinsics.o
CXX disas/libvixl/vixl/a64/instructions-a64.o
CXX disas/libvixl/vixl/a64/disasm-a64.o
CXX disas/libvixl/vixl/a64/decoder-a64.o
CC hw/acpi/core.o
CC hw/acpi/piix4.o
CC hw/acpi/pcihp.o
CC hw/acpi/ich9.o
CC hw/acpi/tco.o
CC hw/acpi/cpu_hotplug.o
CC hw/acpi/memory_hotplug.o
CC hw/acpi/cpu.o
CC hw/acpi/nvdimm.o
CC hw/acpi/vmgenid.o
CC hw/acpi/acpi_interface.o
CC hw/acpi/bios-linker-loader.o
CC hw/acpi/aml-build.o
CC hw/acpi/ipmi.o
CC hw/acpi/acpi-stub.o
CC hw/acpi/ipmi-stub.o
CC hw/audio/sb16.o
CC hw/audio/es1370.o
CC hw/audio/ac97.o
CC hw/audio/fmopl.o
CC hw/audio/adlib.o
CC hw/audio/gus.o
CC hw/audio/gusemu_hal.o
CC hw/audio/gusemu_mixer.o
CC hw/audio/cs4231a.o
CC hw/audio/intel-hda.o
CC hw/audio/hda-codec.o
CC hw/audio/pcspk.o
CC hw/audio/wm8750.o
CC hw/audio/pl041.o
CC hw/audio/lm4549.o
CC hw/audio/marvell_88w8618.o
CC hw/audio/soundhw.o
CC hw/block/block.o
CC hw/block/cdrom.o
CC hw/block/fdc.o
CC hw/block/hd-geometry.o
CC hw/block/m25p80.o
CC hw/block/nand.o
CC hw/block/pflash_cfi01.o
CC hw/block/pflash_cfi02.o
CC hw/block/ecc.o
CC hw/block/onenand.o
CC hw/block/nvme.o
CC hw/bt/core.o
CC hw/bt/l2cap.o
CC hw/bt/sdp.o
CC hw/bt/hci.o
CC hw/bt/hci-csr.o
CC hw/bt/hid.o
CC hw/char/ipoctal232.o
CC hw/char/parallel.o
CC hw/char/pl011.o
CC hw/char/serial-isa.o
CC hw/char/serial.o
CC hw/char/serial-pci.o
CC hw/char/virtio-console.o
CC hw/char/cadence_uart.o
CC hw/char/cmsdk-apb-uart.o
CC hw/char/debugcon.o
CC hw/char/imx_serial.o
CC hw/core/qdev.o
CC hw/core/qdev-properties.o
CC hw/core/bus.o
CC hw/core/reset.o
CC hw/core/fw-path-provider.o
CC hw/core/irq.o
CC hw/core/hotplug.o
CC hw/core/nmi.o
CC hw/core/ptimer.o
CC hw/core/sysbus.o
CC hw/core/machine.o
CC hw/core/loader.o
CC hw/core/qdev-properties-system.o
CC hw/core/register.o
CC hw/core/or-irq.o
CC hw/core/platform-bus.o
CC hw/display/ads7846.o
CC hw/cpu/core.o
CC hw/display/cirrus_vga.o
CC hw/display/pl110.o
CC hw/display/ssd0303.o
CC hw/display/ssd0323.o
CC hw/display/vga-pci.o
CC hw/display/vmware_vga.o
CC hw/display/vga-isa.o
CC hw/display/blizzard.o
CC hw/display/exynos4210_fimd.o
CC hw/display/framebuffer.o
CC hw/display/tc6393xb.o
CC hw/dma/pl330.o
CC hw/dma/pl080.o
CC hw/dma/i8257.o
CC hw/dma/xlnx-zynq-devcfg.o
CC hw/gpio/max7310.o
CC hw/gpio/pl061.o
CC hw/gpio/zaurus.o
CC hw/i2c/core.o
CC hw/gpio/gpio_key.o
CC hw/i2c/smbus.o
CC hw/i2c/smbus_eeprom.o
CC hw/i2c/i2c-ddc.o
CC hw/i2c/versatile_i2c.o
CC hw/i2c/smbus_ich9.o
CC hw/i2c/pm_smbus.o
CC hw/i2c/bitbang_i2c.o
CC hw/i2c/exynos4210_i2c.o
CC hw/i2c/imx_i2c.o
CC hw/i2c/aspeed_i2c.o
CC hw/ide/core.o
CC hw/ide/atapi.o
CC hw/ide/qdev.o
CC hw/ide/pci.o
CC hw/ide/isa.o
CC hw/ide/piix.o
CC hw/ide/microdrive.o
CC hw/ide/ahci.o
CC hw/ide/ich.o
CC hw/ide/ahci-allwinner.o
CC hw/input/hid.o
CC hw/input/lm832x.o
CC hw/input/pckbd.o
CC hw/input/pl050.o
CC hw/input/ps2.o
CC hw/input/stellaris_input.o
CC hw/input/tsc2005.o
CC hw/input/vmmouse.o
CC hw/input/virtio-input.o
CC hw/input/virtio-input-hid.o
CC hw/intc/i8259_common.o
CC hw/intc/i8259.o
CC hw/intc/pl190.o
CC hw/intc/imx_avic.o
CC hw/intc/realview_gic.o
CC hw/intc/ioapic_common.o
CC hw/intc/arm_gic_common.o
CC hw/intc/arm_gic.o
CC hw/intc/arm_gicv2m.o
CC hw/intc/arm_gicv3_common.o
CC hw/intc/arm_gicv3.o
CC hw/intc/arm_gicv3_dist.o
CC hw/intc/arm_gicv3_redist.o
CC hw/intc/arm_gicv3_its_common.o
CC hw/intc/intc.o
CC hw/ipack/ipack.o
CC hw/ipack/tpci200.o
CC hw/ipmi/ipmi.o
CC hw/ipmi/ipmi_bmc_sim.o
CC hw/ipmi/ipmi_bmc_extern.o
CC hw/ipmi/isa_ipmi_kcs.o
CC hw/isa/isa-bus.o
CC hw/ipmi/isa_ipmi_bt.o
CC hw/isa/apm.o
CC hw/mem/pc-dimm.o
CC hw/mem/nvdimm.o
CC hw/misc/applesmc.o
CC hw/misc/max111x.o
CC hw/misc/tmp105.o
CC hw/misc/tmp421.o
CC hw/misc/debugexit.o
CC hw/misc/sga.o
CC hw/misc/pc-testdev.o
CC hw/misc/pci-testdev.o
CC hw/misc/unimp.o
CC hw/misc/edu.o
CC hw/misc/vmcoreinfo.o
CC hw/misc/arm_l2x0.o
CC hw/misc/arm_integrator_debug.o
CC hw/misc/a9scu.o
CC hw/misc/arm11scu.o
CC hw/net/ne2000.o
CC hw/net/eepro100.o
CC hw/net/pcnet-pci.o
CC hw/net/pcnet.o
CC hw/net/e1000.o
CC hw/net/e1000x_common.o
CC hw/net/net_tx_pkt.o
CC hw/net/net_rx_pkt.o
CC hw/net/e1000e.o
CC hw/net/e1000e_core.o
CC hw/net/rtl8139.o
CC hw/net/vmxnet3.o
CC hw/net/lan9118.o
CC hw/net/smc91c111.o
CC hw/net/ne2000-isa.o
CC hw/net/xgmac.o
CC hw/net/allwinner_emac.o
CC hw/net/imx_fec.o
CC hw/net/cadence_gem.o
CC hw/net/ftgmac100.o
CC hw/net/stellaris_enet.o
CC hw/net/rocker/rocker.o
CC hw/net/rocker/rocker_fp.o
CC hw/net/rocker/rocker_desc.o
CC hw/net/rocker/rocker_world.o
CC hw/net/rocker/rocker_of_dpa.o
CC hw/nvram/eeprom93xx.o
CC hw/nvram/fw_cfg.o
CC hw/nvram/chrp_nvram.o
CC hw/pci-bridge/pci_bridge_dev.o
CC hw/pci-bridge/pcie_pci_bridge.o
CC hw/pci-bridge/pcie_root_port.o
CC hw/pci-bridge/gen_pcie_root_port.o
CC hw/pci-bridge/pci_expander_bridge.o
CC hw/pci-bridge/xio3130_upstream.o
CC hw/pci-bridge/xio3130_downstream.o
CC hw/pci-bridge/ioh3420.o
CC hw/pci-bridge/i82801b11.o
CC hw/pci-host/pam.o
CC hw/pci-host/versatile.o
CC hw/pci-host/piix.o
CC hw/pci-host/q35.o
CC hw/pci-host/gpex.o
CC hw/pci/pci.o
CC hw/pci/pci_bridge.o
CC hw/pci/msix.o
CC hw/pci/msi.o
CC hw/pci/shpc.o
CC hw/pci/slotid_cap.o
CC hw/pci/pci_host.o
CC hw/pci/pcie_host.o
CC hw/pci/pcie.o
CC hw/pci/pcie_aer.o
CC hw/pci/pcie_port.o
CC hw/pci/pci-stub.o
CC hw/pcmcia/pcmcia.o
CC hw/scsi/scsi-disk.o
CC hw/scsi/scsi-generic.o
CC hw/scsi/scsi-bus.o
CC hw/scsi/lsi53c895a.o
CC hw/scsi/mptsas.o
CC hw/scsi/mptconfig.o
CC hw/scsi/mptendian.o
CC hw/scsi/megasas.o
CC hw/scsi/esp.o
CC hw/scsi/esp-pci.o
CC hw/scsi/vmw_pvscsi.o
CC hw/sd/pl181.o
CC hw/sd/ssi-sd.o
CC hw/sd/sd.o
CC hw/sd/core.o
CC hw/sd/sdhci.o
CC hw/smbios/smbios.o
CC hw/smbios/smbios_type_38.o
CC hw/smbios/smbios-stub.o
CC hw/smbios/smbios_type_38-stub.o
CC hw/ssi/pl022.o
CC hw/ssi/ssi.o
CC hw/ssi/xilinx_spips.o
CC hw/ssi/aspeed_smc.o
CC hw/ssi/stm32f2xx_spi.o
CC hw/ssi/mss-spi.o
CC hw/timer/armv7m_systick.o
CC hw/timer/arm_timer.o
CC hw/timer/arm_mptimer.o
CC hw/timer/a9gtimer.o
CC hw/timer/cadence_ttc.o
CC hw/timer/ds1338.o
CC hw/timer/hpet.o
CC hw/timer/i8254_common.o
CC hw/timer/i8254.o
CC hw/timer/pl031.o
CC hw/timer/twl92230.o
CC hw/timer/imx_epit.o
CC hw/timer/imx_gpt.o
CC hw/timer/stm32f2xx_timer.o
CC hw/timer/aspeed_timer.o
CC hw/timer/mss-timer.o
CC hw/timer/cmsdk-apb-timer.o
CC hw/tpm/tpm_tis.o
CC hw/usb/core.o
CC hw/usb/combined-packet.o
CC hw/usb/bus.o
CC hw/usb/libhw.o
CC hw/usb/desc.o
CC hw/usb/desc-msos.o
CC hw/usb/hcd-uhci.o
CC hw/usb/hcd-ohci.o
CC hw/usb/hcd-ehci.o
CC hw/usb/hcd-ehci-pci.o
CC hw/usb/hcd-ehci-sysbus.o
CC hw/usb/hcd-xhci.o
CC hw/usb/hcd-xhci-nec.o
CC hw/usb/hcd-musb.o
CC hw/usb/dev-hub.o
CC hw/usb/dev-hid.o
CC hw/usb/dev-wacom.o
CC hw/usb/dev-storage.o
CC hw/usb/dev-uas.o
CC hw/usb/dev-audio.o
CC hw/usb/dev-serial.o
CC hw/usb/dev-network.o
CC hw/usb/dev-bluetooth.o
CC hw/usb/dev-smartcard-reader.o
CC hw/usb/host-stub.o
CC hw/virtio/virtio-rng.o
CC hw/virtio/virtio-pci.o
CC hw/virtio/virtio-bus.o
CC hw/virtio/virtio-mmio.o
CC hw/virtio/vhost-stub.o
CC hw/watchdog/watchdog.o
CC hw/watchdog/wdt_i6300esb.o
CC hw/watchdog/wdt_ib700.o
CC hw/watchdog/wdt_aspeed.o
CC migration/migration.o
CC migration/socket.o
CC migration/fd.o
CC migration/exec.o
CC migration/tls.o
CC migration/channel.o
CC migration/savevm.o
CC migration/colo-comm.o
CC migration/colo-failover.o
CC migration/colo.o
CC migration/vmstate.o
CC migration/vmstate-types.o
CC migration/page_cache.o
CC migration/qemu-file.o
CC migration/global_state.o
CC migration/qemu-file-channel.o
CC migration/postcopy-ram.o
CC migration/xbzrle.o
CC migration/qjson.o
CC migration/block.o
CC net/net.o
CC net/checksum.o
CC net/queue.o
CC net/util.o
CC net/socket.o
CC net/hub.o
CC net/dump.o
CC net/eth.o
CC net/slirp.o
CC net/filter.o
CC net/filter-buffer.o
CC net/filter-mirror.o
CC net/colo-compare.o
CC net/colo.o
CC net/filter-rewriter.o
CC net/filter-replay.o
CC net/tap-win32.o
CC qom/cpu.o
CC replay/replay.o
CC replay/replay-internal.o
CC replay/replay-events.o
CC replay/replay-time.o
CC replay/replay-input.o
CC replay/replay-char.o
CC replay/replay-snapshot.o
CC replay/replay-net.o
CC replay/replay-audio.o
CC slirp/if.o
CC slirp/cksum.o
CC slirp/ip_icmp.o
CC slirp/ip6_icmp.o
CC slirp/ip6_input.o
CC slirp/ip6_output.o
CC slirp/ip_input.o
CC slirp/dnssearch.o
CC slirp/ip_output.o
CC slirp/dhcpv6.o
CC slirp/slirp.o
CC slirp/mbuf.o
CC slirp/misc.o
CC slirp/sbuf.o
CC slirp/socket.o
CC slirp/tcp_input.o
CC slirp/tcp_output.o
CC slirp/tcp_subr.o
CC slirp/tcp_timer.o
CC slirp/udp.o
CC slirp/udp6.o
CC slirp/bootp.o
CC slirp/tftp.o
CC slirp/arp_table.o
CC slirp/ndp_table.o
CC slirp/ncsi.o
CC ui/keymaps.o
CC ui/console.o
CC ui/cursor.o
CC ui/qemu-pixman.o
CC ui/input.o
CC ui/input-keymap.o
CC ui/input-legacy.o
CC ui/sdl.o
CC ui/sdl_zoom.o
CC ui/vnc.o
CC ui/x_keymap.o
CC ui/vnc-enc-zlib.o
CC ui/vnc-enc-hextile.o
CC ui/vnc-enc-tight.o
CC ui/vnc-palette.o
CC ui/vnc-enc-zrle.o
CC ui/vnc-auth-vencrypt.o
CC ui/vnc-ws.o
CC ui/vnc-jobs.o
CC ui/gtk.o
CC chardev/char.o
CC chardev/char-console.o
CC chardev/char-fe.o
CC chardev/char-file.o
CC chardev/char-io.o
CC chardev/char-mux.o
CC chardev/char-null.o
CC chardev/char-pipe.o
CC chardev/char-ringbuf.o
CC chardev/char-serial.o
CC chardev/char-socket.o
CC chardev/char-stdio.o
CC chardev/char-udp.o
CC chardev/char-win.o
CC chardev/char-win-stdio.o
CC qga/commands.o
CC qga/main.o
CC qga/guest-agent-command-state.o
CC qga/commands-win32.o
CC qga/channel-win32.o
CC qga/service-win32.o
CC qga/vss-win32.o
AS optionrom/multiboot.o
AS optionrom/linuxboot.o
CC optionrom/linuxboot_dma.o
AS optionrom/kvmvapic.o
BUILD optionrom/multiboot.img
BUILD optionrom/linuxboot.img
BUILD optionrom/linuxboot_dma.img
CC qga/qapi-generated/qga-qapi-types.o
BUILD optionrom/multiboot.raw
BUILD optionrom/linuxboot.raw
CC qga/qapi-generated/qga-qapi-visit.o
CC qga/qapi-generated/qga-qmp-marshal.o
BUILD optionrom/kvmvapic.img
AR libqemuutil.a
BUILD optionrom/linuxboot_dma.raw
BUILD optionrom/kvmvapic.raw
CC qemu-img.o
SIGN optionrom/multiboot.bin
SIGN optionrom/linuxboot.bin
SIGN optionrom/kvmvapic.bin
SIGN optionrom/linuxboot_dma.bin
LINK qemu-io.exe
LINK qemu-img.exe
/tmp/qemu-test/src/qga/commands-win32.c: In function 'guest_get_network_stats':
/tmp/qemu-test/src/qga/commands-win32.c:1183:20: error: 'MIB_IF_ROW2 {aka struct _MIB_IF_ROW2}' has no member named 'dwIndex'
a_mid_ifrow.dwIndex = if_index;
^
/tmp/qemu-test/src/qga/commands-win32.c:1185:42: error: 'MIB_IF_ROW2 {aka struct _MIB_IF_ROW2}' has no member named 'dwInOctets'; did you mean 'InOctets'?
stats->rx_bytes = a_mid_ifrow.dwInOctets;
^
/tmp/qemu-test/src/qga/commands-win32.c:1186:44: error: 'MIB_IF_ROW2 {aka struct _MIB_IF_ROW2}' has no member named 'dwInUcastPkts'; did you mean 'InUcastPkts'?
stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
^
/tmp/qemu-test/src/qga/commands-win32.c:1187:41: error: 'MIB_IF_ROW2 {aka struct _MIB_IF_ROW2}' has no member named 'dwInErrors'; did you mean 'InErrors'?
stats->rx_errs = a_mid_ifrow.dwInErrors;
^
/tmp/qemu-test/src/qga/commands-win32.c:1188:44: error: 'MIB_IF_ROW2 {aka struct _MIB_IF_ROW2}' has no member named 'dwInDiscards'; did you mean 'InDiscards'?
stats->rx_dropped = a_mid_ifrow.dwInDiscards;
^
/tmp/qemu-test/src/qga/commands-win32.c:1189:42: error: 'MIB_IF_ROW2 {aka struct _MIB_IF_ROW2}' has no member named 'dwOutOctets'; did you mean 'OutOctets'?
stats->tx_bytes = a_mid_ifrow.dwOutOctets;
^
/tmp/qemu-test/src/qga/commands-win32.c:1190:44: error: 'MIB_IF_ROW2 {aka struct _MIB_IF_ROW2}' has no member named 'dwOutUcastPkts'; did you mean 'OutUcastPkts'?
stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
^
/tmp/qemu-test/src/qga/commands-win32.c:1191:41: error: 'MIB_IF_ROW2 {aka struct _MIB_IF_ROW2}' has no member named 'dwOutErrors'; did you mean 'OutErrors'?
stats->tx_errs = a_mid_ifrow.dwOutErrors;
^
/tmp/qemu-test/src/qga/commands-win32.c:1192:44: error: 'MIB_IF_ROW2 {aka struct _MIB_IF_ROW2}' has no member named 'dwOutDiscards'; did you mean 'OutDiscards'?
stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
^
/tmp/qemu-test/src/rules.mak:66: recipe for target 'qga/commands-win32.o' failed
make: *** [qga/commands-win32.o] Error 1
make: *** Waiting for unfinished jobs....
Traceback (most recent call last):
File "./tests/docker/docker.py", line 385, in <module>
sys.exit(main())
File "./tests/docker/docker.py", line 382, in main
return args.cmdobj.run(args, argv)
File "./tests/docker/docker.py", line 239, in run
return Docker().run(argv, args.keep, quiet=args.quiet)
File "./tests/docker/docker.py", line 207, in run
quiet=quiet)
File "./tests/docker/docker.py", line 125, in _do_check
return subprocess.check_call(self._command + cmd, **kwargs)
File "/usr/lib64/python2.7/subprocess.py", line 186, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['docker', 'run', '--label', 'com.qemu.instance.uuid=d03931a6c0bf11e7b8c152540069c830', '-u', '0', '--security-opt', 'seccomp=unconfined', '--rm', '--net=none', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=8', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/root/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-lx9ko0qg/src/docker-src.2017-11-03-13.52.44.14388:/var/tmp/qemu:z,ro', 'qemu:fedora', '/var/tmp/qemu/run', 'test-mingw']' returned non-zero exit status 2
make[1]: *** [tests/docker/Makefile.include:129: docker-run] Error 1
make[1]: Leaving directory '/var/tmp/patchew-tester-tmp-lx9ko0qg/src'
make: *** [tests/docker/Makefile.include:163: docker-run-test-mingw@fedora] Error 2
real 1m47.192s
user 0m3.861s
sys 0m3.900s
=== OUTPUT END ===
Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
Quoting ZhiPeng Lu (2017-11-03 09:54:20)
> The data obtained by GetIfEntry is 32 bits, and it may overflow. Thus using GetIfEntry2 instead of GetIfEntry.
>
> Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
> ---
> qga/commands-win32.c | 31 ++++++++++++++++++-------------
> 1 file changed, 18 insertions(+), 13 deletions(-)
>
> diff --git a/qga/commands-win32.c b/qga/commands-win32.c
> index 0322188..d096dc2 100644
> --- a/qga/commands-win32.c
> +++ b/qga/commands-win32.c
> @@ -1173,20 +1173,25 @@ static int guest_get_network_stats(const char *name,
> GuestNetworkInterfaceStat *stats)
> {
> DWORD if_index = 0;
> - MIB_IFROW a_mid_ifrow;
> - memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
> + OSVERSIONINFO OSver;
> if_index = get_interface_index(name);
> - a_mid_ifrow.dwIndex = if_index;
> - if (NO_ERROR == GetIfEntry(&a_mid_ifrow)) {
> - stats->rx_bytes = a_mid_ifrow.dwInOctets;
> - stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> - stats->rx_errs = a_mid_ifrow.dwInErrors;
> - stats->rx_dropped = a_mid_ifrow.dwInDiscards;
> - stats->tx_bytes = a_mid_ifrow.dwOutOctets;
> - stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
> - stats->tx_errs = a_mid_ifrow.dwOutErrors;
> - stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
> - return 0;
> + OSver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
> + GetVersionEx(&OSver);
> + if (OSver.dwMajorVersion >= 6) {
> + MIB_IF_ROW2 a_mid_ifrow;
> + memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
> + a_mid_ifrow.dwIndex = if_index;
> + if (NO_ERROR == GetIfEntry2(&a_mid_ifrow)) {
> + stats->rx_bytes = a_mid_ifrow.dwInOctets;
> + stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> + stats->rx_errs = a_mid_ifrow.dwInErrors;
> + stats->rx_dropped = a_mid_ifrow.dwInDiscards;
> + stats->tx_bytes = a_mid_ifrow.dwOutOctets;
> + stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
> + stats->tx_errs = a_mid_ifrow.dwOutErrors;
> + stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
> + return 0;
This fails to build in my fc20 mingw64 environment:
/home/mdroth/w/qemu4.git/qga/commands-win32.c:1184:20: error: 'MIB_IF_ROW2' has no member named 'dwIndex'
a_mid_ifrow.dwIndex = if_index;
^
/home/mdroth/w/qemu4.git/qga/commands-win32.c:1186:42: error: 'MIB_IF_ROW2' has no member named 'dwInOctets'
stats->rx_bytes = a_mid_ifrow.dwInOctets;
^
/home/mdroth/w/qemu4.git/qga/commands-win32.c:1187:44: error: 'MIB_IF_ROW2' has no member named 'dwInUcastPkts'
stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
etc ...
The patch seems to assume MIB_IFROW and MIB_IF_ROW2 have the same field names
for the stats, but according to this they're slightly different:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa814491(v=vs.85).aspx
This change on top of your patch seems to work:
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
index e17fc3c284..58e470877f 100644
--- a/qga/commands-win32.c
+++ b/qga/commands-win32.c
@@ -1181,16 +1181,16 @@ static int guest_get_network_stats(const char *name,
if (os_ver.dwMajorVersion >= 6) {
MIB_IF_ROW2 a_mid_ifrow;
memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
- a_mid_ifrow.dwIndex = if_index;
+ a_mid_ifrow.InterfaceIndex = if_index;
if (NO_ERROR == GetIfEntry2(&a_mid_ifrow)) {
- stats->rx_bytes = a_mid_ifrow.dwInOctets;
- stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
- stats->rx_errs = a_mid_ifrow.dwInErrors;
- stats->rx_dropped = a_mid_ifrow.dwInDiscards;
- stats->tx_bytes = a_mid_ifrow.dwOutOctets;
- stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
- stats->tx_errs = a_mid_ifrow.dwOutErrors;
- stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
+ stats->rx_bytes = a_mid_ifrow.InOctets;
+ stats->rx_packets = a_mid_ifrow.InUcastPkts;
+ stats->rx_errs = a_mid_ifrow.InErrors;
+ stats->rx_dropped = a_mid_ifrow.InDiscards;
+ stats->tx_bytes = a_mid_ifrow.OutOctets;
+ stats->tx_packets = a_mid_ifrow.OutUcastPkts;
+ stats->tx_errs = a_mid_ifrow.OutErrors;
+ stats->tx_dropped = a_mid_ifrow.OutDiscards;
return 0;
}
}
I have the modified patch staged here:
https://github.com/mdroth/qemu/commit/de597a8b27722ce4f9cc660f930f7dccc712712d
Let me know if it looks okay and I'll send a pull request for rc1
> + }
> }
> return -1;
> }
> --
> 1.8.3.1
>
PkkgaGF2ZSB0aGUgbW9kaWZpZWQgcGF0Y2ggc3RhZ2VkIGhlcmU6DQoNCg0KDQo+ICBodHRwczov L2dpdGh1Yi5jb20vbWRyb3RoL3FlbXUvY29tbWl0L2RlNTk3YThiMjc3MjJjZTRmOWNjNjYwZjkz MGY3ZGNjYzcxMjcxMmQ+TGV0IG1lIGtub3cgaWYgaXQgbG9va3Mgb2theSBhbmQgSSdsbCBzZW5k IGEgcHVsbCByZXF1ZXN0IGZvciByYzENCg0KDQogDQoNCg0KdGhlIGNvZGUgcmlnaHQsIGJ1dCBy dW5uaW5nIFFHQSBvbiB0aGUgV2luZG93cyBYUCwgZXJyb3I6IGNhbiBub3QgZmluZCB0aGUgbGlu ayB0byAgR2V0SWZFbnRyeTIgaW4gaXBobHBhcGkuRExMLg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQrkuLrkuoborqnmgqjnmoRWUGxhdOiZmuaLn+acuuaVhemanOWSjGRv Y2tlcuaVhemanOW+l+WIsOmrmOaViOeahOWkhOeQhu+8jOivt+S4iuaKpeaVhemanOWIsDogJFZQ bGF05oqA5pyv5pSv5oyB44CCDQoNCg0K6Iqm5b+X5pyLIGx1emhpcGVuZw0KDQoNCg0KDQoNCg0K SVTlvIDlj5Hlt6XnqIvluIggSVQgRGV2ZWxvcG1lbnQKRW5naW5lZXINCuaTjeS9nOezu+e7n+S6 p+WTgemDqC/kuK3lv4PnoJTnqbbpmaIv57O757uf5Lqn5ZOBIE9TIFByb2R1Y3QgRGVwdC4vQ2Vu dHJhbCBS77yGRCBJbnN0aXR1dGUvU3lzdGVtIFByb2R1Y3QNCg0KDQoNCg0KDQoNCg0KDQoNCuWb m+W3neecgeaIkOmDveW4guWkqeW6nOWkp+mBk+S4reautTgwMOWPtw0KRTogbHUuemhpcGVuZ0B6 dGUuY29tLmNuIA0Kd3d3Lnp0ZS5jb20uY24NCg0KDQoNCg0KDQoNCg0KDQoNCg0K5Y6f5aeL6YKu 5Lu2DQoNCg0KDQoNCuWPkeS7tuS6uu+8miA8bWRyb3RoQGxpbnV4LnZuZXQuaWJtLmNvbT47DQrm lLbku7bkurrvvJroiqblv5fmnIsxMDEwODI3MjsNCuaKhOmAgeS6uu+8miA8cWVtdS1kZXZlbEBu b25nbnUub3JnPjvoiqblv5fmnIsxMDEwODI3MjsNCuaXpSDmnJ8g77yaMjAxN+W5tDEx5pyIMDjm l6UgMDE6MDcNCuS4uyDpopgg77yaUmU6IFtQQVRDSCB2Ml0gcWdhOiByZXBsYWNlIEdldElmRW50 cnkNCg0KDQoNCg0KDQoNClF1b3RpbmcgWmhpUGVuZyBMdSAoMjAxNy0xMS0wMyAwOTo1NDoyMCkN Cj4gVGhlIGRhdGEgb2J0YWluZWQgYnkgR2V0SWZFbnRyeSBpcyAzMiBiaXRzLCBhbmQgaXQgbWF5 IG92ZXJmbG93LiBUaHVzIHVzaW5nIEdldElmRW50cnkyIGluc3RlYWQgb2YgR2V0SWZFbnRyeS4N Cj4gDQo+IFNpZ25lZC1vZmYtYnk6IFpoaVBlbmcgTHUgPGx1LnpoaXBlbmdAenRlLmNvbS5jbj4N Cj4gLS0tDQo+ICBxZ2EvY29tbWFuZHMtd2luMzIuYyB8IDMxICsrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxMyBkZWxl dGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9xZ2EvY29tbWFuZHMtd2luMzIuYyBiL3FnYS9j b21tYW5kcy13aW4zMi5jDQo+IGluZGV4IDAzMjIxODguLmQwOTZkYzIgMTAwNjQ0DQo+IC0tLSBh L3FnYS9jb21tYW5kcy13aW4zMi5jDQo+ICsrKyBiL3FnYS9jb21tYW5kcy13aW4zMi5jDQo+IEBA IC0xMTczLDIwICsxMTczLDI1IEBAIHN0YXRpYyBpbnQgZ3Vlc3RfZ2V0X25ldHdvcmtfc3RhdHMo Y29uc3QgY2hhciAqbmFtZSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgR3Vlc3ROZXR3b3Jr SW50ZXJmYWNlU3RhdCAqc3RhdHMpDQo+ICB7DQo+ICAgICAgRFdPUkQgaWZfaW5kZXggPSAwOw0K PiAtICAgIE1JQl9JRlJPVyBhX21pZF9pZnJvdzsNCj4gLSAgICBtZW1zZXQoJmFfbWlkX2lmcm93 LCAwLCBzaXplb2YoYV9taWRfaWZyb3cpKTsNCj4gKyAgICBPU1ZFUlNJT05JTkZPIE9TdmVyOw0K PiAgICAgIGlmX2luZGV4ID0gZ2V0X2ludGVyZmFjZV9pbmRleChuYW1lKTsNCj4gLSAgICBhX21p ZF9pZnJvdy5kd0luZGV4ID0gaWZfaW5kZXg7DQo+IC0gICAgaWYgKE5PX0VSUk9SID09IEdldElm RW50cnkoJmFfbWlkX2lmcm93KSkgew0KPiAtICAgICAgICBzdGF0cy0+cnhfYnl0ZXMgPSBhX21p ZF9pZnJvdy5kd0luT2N0ZXRzOw0KPiAtICAgICAgICBzdGF0cy0+cnhfcGFja2V0cyA9IGFfbWlk X2lmcm93LmR3SW5VY2FzdFBrdHM7DQo+IC0gICAgICAgIHN0YXRzLT5yeF9lcnJzID0gYV9taWRf aWZyb3cuZHdJbkVycm9yczsNCj4gLSAgICAgICAgc3RhdHMtPnJ4X2Ryb3BwZWQgPSBhX21pZF9p ZnJvdy5kd0luRGlzY2FyZHM7DQo+IC0gICAgICAgIHN0YXRzLT50eF9ieXRlcyA9IGFfbWlkX2lm cm93LmR3T3V0T2N0ZXRzOw0KPiAtICAgICAgICBzdGF0cy0+dHhfcGFja2V0cyA9IGFfbWlkX2lm cm93LmR3T3V0VWNhc3RQa3RzOw0KPiAtICAgICAgICBzdGF0cy0+dHhfZXJycyA9IGFfbWlkX2lm cm93LmR3T3V0RXJyb3JzOw0KPiAtICAgICAgICBzdGF0cy0+dHhfZHJvcHBlZCA9IGFfbWlkX2lm cm93LmR3T3V0RGlzY2FyZHM7DQo+IC0gICAgICAgIHJldHVybiAwOw0KPiArICAgIE9TdmVyLmR3 T1NWZXJzaW9uSW5mb1NpemUgPSBzaXplb2YoT1NWRVJTSU9OSU5GTyk7DQo+ICsgICAgR2V0VmVy c2lvbkV4KCZPU3Zlcik7DQo+ICsgICAgaWYgKE9TdmVyLmR3TWFqb3JWZXJzaW9uID49IDYpIHsN Cj4gKyAgICAgICAgTUlCX0lGX1JPVzIgYV9taWRfaWZyb3c7DQo+ICsgICAgICAgIG1lbXNldCgm YV9taWRfaWZyb3csIDAsIHNpemVvZihhX21pZF9pZnJvdykpOw0KPiArICAgICAgICBhX21pZF9p ZnJvdy5kd0luZGV4ID0gaWZfaW5kZXg7DQo+ICsgICAgICAgIGlmIChOT19FUlJPUiA9PSBHZXRJ ZkVudHJ5MigmYV9taWRfaWZyb3cpKSB7DQo+ICsgICAgICAgICAgICBzdGF0cy0+cnhfYnl0ZXMg PSBhX21pZF9pZnJvdy5kd0luT2N0ZXRzOw0KPiArICAgICAgICAgICAgc3RhdHMtPnJ4X3BhY2tl dHMgPSBhX21pZF9pZnJvdy5kd0luVWNhc3RQa3RzOw0KPiArICAgICAgICAgICAgc3RhdHMtPnJ4 X2VycnMgPSBhX21pZF9pZnJvdy5kd0luRXJyb3JzOw0KPiArICAgICAgICAgICAgc3RhdHMtPnJ4 X2Ryb3BwZWQgPSBhX21pZF9pZnJvdy5kd0luRGlzY2FyZHM7DQo+ICsgICAgICAgICAgICBzdGF0 cy0+dHhfYnl0ZXMgPSBhX21pZF9pZnJvdy5kd091dE9jdGV0czsNCj4gKyAgICAgICAgICAgIHN0 YXRzLT50eF9wYWNrZXRzID0gYV9taWRfaWZyb3cuZHdPdXRVY2FzdFBrdHM7DQo+ICsgICAgICAg ICAgICBzdGF0cy0+dHhfZXJycyA9IGFfbWlkX2lmcm93LmR3T3V0RXJyb3JzOw0KPiArICAgICAg ICAgICAgc3RhdHMtPnR4X2Ryb3BwZWQgPSBhX21pZF9pZnJvdy5kd091dERpc2NhcmRzOw0KPiAr ICAgICAgICAgICAgcmV0dXJuIDA7DQoNClRoaXMgZmFpbHMgdG8gYnVpbGQgaW4gbXkgZmMyMCBt aW5ndzY0IGVudmlyb25tZW50Og0KDQovaG9tZS9tZHJvdGgvdy9xZW11NC5naXQvcWdhL2NvbW1h bmRzLXdpbjMyLmM6MTE4NDoyMDogZXJyb3I6ICdNSUJfSUZfUk9XMicgaGFzIG5vIG1lbWJlciBu YW1lZCAnZHdJbmRleCcNCiAgICAgICAgIGFfbWlkX2lmcm93LmR3SW5kZXggPSBpZl9pbmRleDsN CiAgICAgICAgICAgICAgICAgICAgXg0KL2hvbWUvbWRyb3RoL3cvcWVtdTQuZ2l0L3FnYS9jb21t YW5kcy13aW4zMi5jOjExODY6NDI6IGVycm9yOiAnTUlCX0lGX1JPVzInIGhhcyBubyBtZW1iZXIg bmFtZWQgJ2R3SW5PY3RldHMnDQogICAgICAgICAgICAgc3RhdHMtPnJ4X2J5dGVzID0gYV9taWRf aWZyb3cuZHdJbk9jdGV0czsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4NCi9ob21lL21kcm90aC93L3FlbXU0LmdpdC9xZ2EvY29tbWFuZHMtd2luMzIuYzoxMTg3 OjQ0OiBlcnJvcjogJ01JQl9JRl9ST1cyJyBoYXMgbm8gbWVtYmVyIG5hbWVkICdkd0luVWNhc3RQ a3RzJw0KICAgICAgICAgICAgIHN0YXRzLT5yeF9wYWNrZXRzID0gYV9taWRfaWZyb3cuZHdJblVj YXN0UGt0czsNCg0KZXRjIC4uLg0KDQpUaGUgcGF0Y2ggc2VlbXMgdG8gYXNzdW1lIE1JQl9JRlJP VyBhbmQgTUlCX0lGX1JPVzIgaGF2ZSB0aGUgc2FtZSBmaWVsZCBuYW1lcw0KZm9yIHRoZSBzdGF0 cywgYnV0IGFjY29yZGluZyB0byB0aGlzIHRoZXkncmUgc2xpZ2h0bHkgZGlmZmVyZW50Og0KDQog IGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvd2luZG93cy9kZXNrdG9w L2FhODE0NDkxKHY9dnMuODUpLmFzcHgNCg0KVGhpcyBjaGFuZ2Ugb24gdG9wIG9mIHlvdXIgcGF0 Y2ggc2VlbXMgdG8gd29yazoNCg0KZGlmZiAtLWdpdCBhL3FnYS9jb21tYW5kcy13aW4zMi5jIGIv cWdhL2NvbW1hbmRzLXdpbjMyLmMNCmluZGV4IGUxN2ZjM2MyODQuLjU4ZTQ3MDg3N2YgMTAwNjQ0 DQotLS0gYS9xZ2EvY29tbWFuZHMtd2luMzIuYw0KKysrIGIvcWdhL2NvbW1hbmRzLXdpbjMyLmMN CkBAIC0xMTgxLDE2ICsxMTgxLDE2IEBAIHN0YXRpYyBpbnQgZ3Vlc3RfZ2V0X25ldHdvcmtfc3Rh dHMoY29uc3QgY2hhciAqbmFtZSwNCiAgICAgaWYgKG9zX3Zlci5kd01ham9yVmVyc2lvbiA+PSA2 KSB7DQogICAgICAgICBNSUJfSUZfUk9XMiBhX21pZF9pZnJvdzsNCiAgICAgICAgIG1lbXNldCgm YV9taWRfaWZyb3csIDAsIHNpemVvZihhX21pZF9pZnJvdykpOw0KLSAgICAgICAgYV9taWRfaWZy b3cuZHdJbmRleCA9IGlmX2luZGV4Ow0KKyAgICAgICAgYV9taWRfaWZyb3cuSW50ZXJmYWNlSW5k ZXggPSBpZl9pbmRleDsNCiAgICAgICAgIGlmIChOT19FUlJPUiA9PSBHZXRJZkVudHJ5MigmYV9t aWRfaWZyb3cpKSB7DQotICAgICAgICAgICAgc3RhdHMtPnJ4X2J5dGVzID0gYV9taWRfaWZyb3cu ZHdJbk9jdGV0czsNCi0gICAgICAgICAgICBzdGF0cy0+cnhfcGFja2V0cyA9IGFfbWlkX2lmcm93 LmR3SW5VY2FzdFBrdHM7DQotICAgICAgICAgICAgc3RhdHMtPnJ4X2VycnMgPSBhX21pZF9pZnJv dy5kd0luRXJyb3JzOw0KLSAgICAgICAgICAgIHN0YXRzLT5yeF9kcm9wcGVkID0gYV9taWRfaWZy b3cuZHdJbkRpc2NhcmRzOw0KLSAgICAgICAgICAgIHN0YXRzLT50eF9ieXRlcyA9IGFfbWlkX2lm cm93LmR3T3V0T2N0ZXRzOw0KLSAgICAgICAgICAgIHN0YXRzLT50eF9wYWNrZXRzID0gYV9taWRf aWZyb3cuZHdPdXRVY2FzdFBrdHM7DQotICAgICAgICAgICAgc3RhdHMtPnR4X2VycnMgPSBhX21p ZF9pZnJvdy5kd091dEVycm9yczsNCi0gICAgICAgICAgICBzdGF0cy0+dHhfZHJvcHBlZCA9IGFf bWlkX2lmcm93LmR3T3V0RGlzY2FyZHM7DQorICAgICAgICAgICAgc3RhdHMtPnJ4X2J5dGVzID0g YV9taWRfaWZyb3cuSW5PY3RldHM7DQorICAgICAgICAgICAgc3RhdHMtPnJ4X3BhY2tldHMgPSBh X21pZF9pZnJvdy5JblVjYXN0UGt0czsNCisgICAgICAgICAgICBzdGF0cy0+cnhfZXJycyA9IGFf bWlkX2lmcm93LkluRXJyb3JzOw0KKyAgICAgICAgICAgIHN0YXRzLT5yeF9kcm9wcGVkID0gYV9t aWRfaWZyb3cuSW5EaXNjYXJkczsNCisgICAgICAgICAgICBzdGF0cy0+dHhfYnl0ZXMgPSBhX21p ZF9pZnJvdy5PdXRPY3RldHM7DQorICAgICAgICAgICAgc3RhdHMtPnR4X3BhY2tldHMgPSBhX21p ZF9pZnJvdy5PdXRVY2FzdFBrdHM7DQorICAgICAgICAgICAgc3RhdHMtPnR4X2VycnMgPSBhX21p ZF9pZnJvdy5PdXRFcnJvcnM7DQorICAgICAgICAgICAgc3RhdHMtPnR4X2Ryb3BwZWQgPSBhX21p ZF9pZnJvdy5PdXREaXNjYXJkczsNCiAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgIH0N CiAgICAgfQ0KDQpJIGhhdmUgdGhlIG1vZGlmaWVkIHBhdGNoIHN0YWdlZCBoZXJlOg0KDQogIGh0 dHBzOi8vZ2l0aHViLmNvbS9tZHJvdGgvcWVtdS9jb21taXQvZGU1OTdhOGIyNzcyMmNlNGY5Y2M2 NjBmOTMwZjdkY2NjNzEyNzEyZA0KDQpMZXQgbWUga25vdyBpZiBpdCBsb29rcyBva2F5IGFuZCBJ J2xsIHNlbmQgYSBwdWxsIHJlcXVlc3QgZm9yIHJjMQ0KDQo+ICsgICAgICAgIH0NCj4gICAgICB9 DQo+ICAgICAgcmV0dXJuIC0xOw0KPiAgfQ0KPiAtLSANCj4gMS44LjMuMQ0KPg==
aSB0aGluayB0aGUgY29kZSBpcyBiZXR0ZXINCg0KIGlmIChPU3Zlci5kd01ham9yVmVyc2lvbiA+ PSA2KSB7IAogICAgICBNSUJfSUZfUk9XMiBhTWliX2lmcm93OwogICAgICB0eXBlZGVmIE5FVElP QVBJX0FQSSAoV0lOQVBJICpnZXRpZmVudHJ5Ml90KShQTUlCX0lGX1JPVzIgUm93KTsKICAgICAg bWVtc2V0KCZhTWliX2lmcm93LCAwLCBzaXplb2YoYU1pYl9pZnJvdykpOwogICAgICBhTWliX2lm cm93LkludGVyZmFjZUluZGV4ID0gbmljSWQ7CiAgICAgIEhNT0RVTEUgbW9kdWxlID0gR2V0TW9k dWxlSGFuZGxlKCJpcGhscGFwaSIpOwogICAgICBQVk9JRCBmdW4gPSBHZXRQcm9jQWRkcmVzcyht b2R1bGUsICJHZXRJZkVudHJ5MiIpOwogICAgICBpZiAoZnVuID09IE5VTEwpIHsKICAgICAgICAg IGVycm9yX3NldGcoZXJycCwgUUVSUl9RR0FfQ09NTUFORF9GQUlMRUQsCiAgICAgICAgICAgICAg ICAgICAgICJGYWlsZWQgdG8gZ2V0IGFkZHJlc3Mgb2YgR2V0SWZFbnRyeTIiKTsKICAgICAgICAg IHJldHVybiBOVUxMOwogICAgICB9CiAgICBnZXRpZmVudHJ5Ml90IGdldGlmZW50cnkyX2V4ID0g KGdldGlmZW50cnkyX3QpZnVuOw0KICAgIGlmIChOT19FUlJPUiA9PSBnZXRpZmVudHJ5Ml9leCgm YU1pYl9pZnJvdykpew0KICAgIH0NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCuS4uuS6huiuqeaCqOeahFZQbGF06Jma5ouf5py65pWF6Zqc5ZKMZG9ja2Vy5pWF6Zqc 5b6X5Yiw6auY5pWI55qE5aSE55CG77yM6K+35LiK5oql5pWF6Zqc5YiwOiAkVlBsYXTmioDmnK/m lK/mjIHjgIINCg0KDQroiqblv5fmnIsgbHV6aGlwZW5nDQoNCg0KDQoNCg0KDQpJVOW8gOWPkeW3 peeoi+W4iCBJVCBEZXZlbG9wbWVudApFbmdpbmVlcg0K5pON5L2c57O757uf5Lqn5ZOB6YOoL+S4 reW/g+eglOeptumZoi/ns7vnu5/kuqflk4EgT1MgUHJvZHVjdCBEZXB0Li9DZW50cmFsIFLvvIZE IEluc3RpdHV0ZS9TeXN0ZW0gUHJvZHVjdA0KDQoNCg0KDQoNCg0KDQoNCg0K5Zub5bed55yB5oiQ 6YO95biC5aSp5bqc5aSn6YGT5Lit5q61ODAw5Y+3DQpFOiBsdS56aGlwZW5nQHp0ZS5jb20uY24g DQp3d3cuenRlLmNvbS5jbg0KDQoNCg0KDQoNCg0KDQoNCg0KDQrljp/lp4vpgq7ku7YNCg0KDQoN Cg0K5Y+R5Lu25Lq677ya6Iqm5b+X5pyLMTAxMDgyNzINCuaUtuS7tuS6uu+8miA8bWRyb3RoQGxp bnV4LnZuZXQuaWJtLmNvbT47DQrmioTpgIHkurrvvJogPHFlbXUtZGV2ZWxAbm9uZ251Lm9yZz47 DQrml6Ug5pyfIO+8mjIwMTflubQxMeaciDA45pelIDEwOjU0DQrkuLsg6aKYIO+8muetlOWkjTog UmU6IFtQQVRDSCB2Ml0gcWdhOiByZXBsYWNlIEdldElmRW50cnkNCg0KDQoNCg0KDQoNCg0KDQo+ SSBoYXZlIHRoZSBtb2RpZmllZCBwYXRjaCBzdGFnZWQgaGVyZToNCg0KDQoNCj4gIGh0dHBzOi8v Z2l0aHViLmNvbS9tZHJvdGgvcWVtdS9jb21taXQvZGU1OTdhOGIyNzcyMmNlNGY5Y2M2NjBmOTMw ZjdkY2NjNzEyNzEyZD5MZXQgbWUga25vdyBpZiBpdCBsb29rcyBva2F5IGFuZCBJJ2xsIHNlbmQg YSBwdWxsIHJlcXVlc3QgZm9yIHJjMQ0KDQoNCiANCg0KDQp0aGUgY29kZSByaWdodCwgYnV0IHJ1 bm5pbmcgUUdBIG9uIHRoZSBXaW5kb3dzIFhQLCBlcnJvcjogY2FuIG5vdCBmaW5kIHRoZSBsaW5r IHRvICBHZXRJZkVudHJ5MiBpbiBpcGhscGFwaS5ETEwuDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCuS4uuS6huiuqeaCqOeahFZQbGF06Jma5ouf5py65pWF6Zqc5ZKMZG9j a2Vy5pWF6Zqc5b6X5Yiw6auY5pWI55qE5aSE55CG77yM6K+35LiK5oql5pWF6Zqc5YiwOiAkVlBs YXTmioDmnK/mlK/mjIHjgIINCg0KDQroiqblv5fmnIsgbHV6aGlwZW5nDQoNCg0KDQoNCg0KDQpJ VOW8gOWPkeW3peeoi+W4iCBJVCBEZXZlbG9wbWVudCBFbmdpbmVlcg0K5pON5L2c57O757uf5Lqn 5ZOB6YOoL+S4reW/g+eglOeptumZoi/ns7vnu5/kuqflk4EgT1MgUHJvZHVjdCBEZXB0Li9DZW50 cmFsIFLvvIZEIEluc3RpdHV0ZS9TeXN0ZW0gUHJvZHVjdA0KDQoNCg0KDQoNCg0KDQoNCg0K5Zub 5bed55yB5oiQ6YO95biC5aSp5bqc5aSn6YGT5Lit5q61ODAw5Y+3DQpFOiBsdS56aGlwZW5nQHp0 ZS5jb20uY24gDQp3d3cuenRlLmNvbS5jbg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCuWPkeS7tuS6uu+8miA8bWRyb3RoQGxpbnV4LnZuZXQuaWJtLmNvbT47DQrmlLbku7bkurrv vJroiqblv5fmnIsxMDEwODI3MjsNCuaKhOmAgeS6uu+8miA8cWVtdS1kZXZlbEBub25nbnUub3Jn Pjvoiqblv5fmnIsxMDEwODI3MjsNCuaXpSDmnJ8g77yaMjAxN+W5tDEx5pyIMDjml6UgMDE6MDcN CuS4uyDpopgg77yaUmU6IFtQQVRDSCB2Ml0gcWdhOiByZXBsYWNlIEdldElmRW50cnkNCg0KDQoN Cg0KDQoNClF1b3RpbmcgWmhpUGVuZyBMdSAoMjAxNy0xMS0wMyAwOTo1NDoyMCkNCj4gVGhlIGRh dGEgb2J0YWluZWQgYnkgR2V0SWZFbnRyeSBpcyAzMiBiaXRzLCBhbmQgaXQgbWF5IG92ZXJmbG93 LiBUaHVzIHVzaW5nIEdldElmRW50cnkyIGluc3RlYWQgb2YgR2V0SWZFbnRyeS4NCj4gDQo+IFNp Z25lZC1vZmYtYnk6IFpoaVBlbmcgTHUgPGx1LnpoaXBlbmdAenRlLmNvbS5jbj4NCj4gLS0tDQo+ ICBxZ2EvY29tbWFuZHMtd2luMzIuYyB8IDMxICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkN Cj4gDQo+IGRpZmYgLS1naXQgYS9xZ2EvY29tbWFuZHMtd2luMzIuYyBiL3FnYS9jb21tYW5kcy13 aW4zMi5jDQo+IGluZGV4IDAzMjIxODguLmQwOTZkYzIgMTAwNjQ0DQo+IC0tLSBhL3FnYS9jb21t YW5kcy13aW4zMi5jDQo+ICsrKyBiL3FnYS9jb21tYW5kcy13aW4zMi5jDQo+IEBAIC0xMTczLDIw ICsxMTczLDI1IEBAIHN0YXRpYyBpbnQgZ3Vlc3RfZ2V0X25ldHdvcmtfc3RhdHMoY29uc3QgY2hh ciAqbmFtZSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgR3Vlc3ROZXR3b3JrSW50ZXJmYWNl U3RhdCAqc3RhdHMpDQo+ICB7DQo+ICAgICAgRFdPUkQgaWZfaW5kZXggPSAwOw0KPiAtICAgIE1J Ql9JRlJPVyBhX21pZF9pZnJvdzsNCj4gLSAgICBtZW1zZXQoJmFfbWlkX2lmcm93LCAwLCBzaXpl b2YoYV9taWRfaWZyb3cpKTsNCj4gKyAgICBPU1ZFUlNJT05JTkZPIE9TdmVyOw0KPiAgICAgIGlm X2luZGV4ID0gZ2V0X2ludGVyZmFjZV9pbmRleChuYW1lKTsNCj4gLSAgICBhX21pZF9pZnJvdy5k d0luZGV4ID0gaWZfaW5kZXg7DQo+IC0gICAgaWYgKE5PX0VSUk9SID09IEdldElmRW50cnkoJmFf bWlkX2lmcm93KSkgew0KPiAtICAgICAgICBzdGF0cy0+cnhfYnl0ZXMgPSBhX21pZF9pZnJvdy5k d0luT2N0ZXRzOw0KPiAtICAgICAgICBzdGF0cy0+cnhfcGFja2V0cyA9IGFfbWlkX2lmcm93LmR3 SW5VY2FzdFBrdHM7DQo+IC0gICAgICAgIHN0YXRzLT5yeF9lcnJzID0gYV9taWRfaWZyb3cuZHdJ bkVycm9yczsNCj4gLSAgICAgICAgc3RhdHMtPnJ4X2Ryb3BwZWQgPSBhX21pZF9pZnJvdy5kd0lu RGlzY2FyZHM7DQo+IC0gICAgICAgIHN0YXRzLT50eF9ieXRlcyA9IGFfbWlkX2lmcm93LmR3T3V0 T2N0ZXRzOw0KPiAtICAgICAgICBzdGF0cy0+dHhfcGFja2V0cyA9IGFfbWlkX2lmcm93LmR3T3V0 VWNhc3RQa3RzOw0KPiAtICAgICAgICBzdGF0cy0+dHhfZXJycyA9IGFfbWlkX2lmcm93LmR3T3V0 RXJyb3JzOw0KPiAtICAgICAgICBzdGF0cy0+dHhfZHJvcHBlZCA9IGFfbWlkX2lmcm93LmR3T3V0 RGlzY2FyZHM7DQo+IC0gICAgICAgIHJldHVybiAwOw0KPiArICAgIE9TdmVyLmR3T1NWZXJzaW9u SW5mb1NpemUgPSBzaXplb2YoT1NWRVJTSU9OSU5GTyk7DQo+ICsgICAgR2V0VmVyc2lvbkV4KCZP U3Zlcik7DQo+ICsgICAgaWYgKE9TdmVyLmR3TWFqb3JWZXJzaW9uID49IDYpIHsNCj4gKyAgICAg ICAgTUlCX0lGX1JPVzIgYV9taWRfaWZyb3c7DQo+ICsgICAgICAgIG1lbXNldCgmYV9taWRfaWZy b3csIDAsIHNpemVvZihhX21pZF9pZnJvdykpOw0KPiArICAgICAgICBhX21pZF9pZnJvdy5kd0lu ZGV4ID0gaWZfaW5kZXg7DQo+ICsgICAgICAgIGlmIChOT19FUlJPUiA9PSBHZXRJZkVudHJ5Migm YV9taWRfaWZyb3cpKSB7DQo+ICsgICAgICAgICAgICBzdGF0cy0+cnhfYnl0ZXMgPSBhX21pZF9p ZnJvdy5kd0luT2N0ZXRzOw0KPiArICAgICAgICAgICAgc3RhdHMtPnJ4X3BhY2tldHMgPSBhX21p ZF9pZnJvdy5kd0luVWNhc3RQa3RzOw0KPiArICAgICAgICAgICAgc3RhdHMtPnJ4X2VycnMgPSBh X21pZF9pZnJvdy5kd0luRXJyb3JzOw0KPiArICAgICAgICAgICAgc3RhdHMtPnJ4X2Ryb3BwZWQg PSBhX21pZF9pZnJvdy5kd0luRGlzY2FyZHM7DQo+ICsgICAgICAgICAgICBzdGF0cy0+dHhfYnl0 ZXMgPSBhX21pZF9pZnJvdy5kd091dE9jdGV0czsNCj4gKyAgICAgICAgICAgIHN0YXRzLT50eF9w YWNrZXRzID0gYV9taWRfaWZyb3cuZHdPdXRVY2FzdFBrdHM7DQo+ICsgICAgICAgICAgICBzdGF0 cy0+dHhfZXJycyA9IGFfbWlkX2lmcm93LmR3T3V0RXJyb3JzOw0KPiArICAgICAgICAgICAgc3Rh dHMtPnR4X2Ryb3BwZWQgPSBhX21pZF9pZnJvdy5kd091dERpc2NhcmRzOw0KPiArICAgICAgICAg ICAgcmV0dXJuIDA7DQoNClRoaXMgZmFpbHMgdG8gYnVpbGQgaW4gbXkgZmMyMCBtaW5ndzY0IGVu dmlyb25tZW50Og0KDQovaG9tZS9tZHJvdGgvdy9xZW11NC5naXQvcWdhL2NvbW1hbmRzLXdpbjMy LmM6MTE4NDoyMDogZXJyb3I6ICdNSUJfSUZfUk9XMicgaGFzIG5vIG1lbWJlciBuYW1lZCAnZHdJ bmRleCcNCiAgICAgICAgIGFfbWlkX2lmcm93LmR3SW5kZXggPSBpZl9pbmRleDsNCiAgICAgICAg ICAgICAgICAgICAgXg0KL2hvbWUvbWRyb3RoL3cvcWVtdTQuZ2l0L3FnYS9jb21tYW5kcy13aW4z Mi5jOjExODY6NDI6IGVycm9yOiAnTUlCX0lGX1JPVzInIGhhcyBubyBtZW1iZXIgbmFtZWQgJ2R3 SW5PY3RldHMnDQogICAgICAgICAgICAgc3RhdHMtPnJ4X2J5dGVzID0gYV9taWRfaWZyb3cuZHdJ bk9jdGV0czsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4NCi9o b21lL21kcm90aC93L3FlbXU0LmdpdC9xZ2EvY29tbWFuZHMtd2luMzIuYzoxMTg3OjQ0OiBlcnJv cjogJ01JQl9JRl9ST1cyJyBoYXMgbm8gbWVtYmVyIG5hbWVkICdkd0luVWNhc3RQa3RzJw0KICAg ICAgICAgICAgIHN0YXRzLT5yeF9wYWNrZXRzID0gYV9taWRfaWZyb3cuZHdJblVjYXN0UGt0czsN Cg0KZXRjIC4uLg0KDQpUaGUgcGF0Y2ggc2VlbXMgdG8gYXNzdW1lIE1JQl9JRlJPVyBhbmQgTUlC X0lGX1JPVzIgaGF2ZSB0aGUgc2FtZSBmaWVsZCBuYW1lcw0KZm9yIHRoZSBzdGF0cywgYnV0IGFj Y29yZGluZyB0byB0aGlzIHRoZXkncmUgc2xpZ2h0bHkgZGlmZmVyZW50Og0KDQogIGh0dHBzOi8v bXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvd2luZG93cy9kZXNrdG9wL2FhODE0NDkx KHY9dnMuODUpLmFzcHgNCg0KVGhpcyBjaGFuZ2Ugb24gdG9wIG9mIHlvdXIgcGF0Y2ggc2VlbXMg dG8gd29yazoNCg0KZGlmZiAtLWdpdCBhL3FnYS9jb21tYW5kcy13aW4zMi5jIGIvcWdhL2NvbW1h bmRzLXdpbjMyLmMNCmluZGV4IGUxN2ZjM2MyODQuLjU4ZTQ3MDg3N2YgMTAwNjQ0DQotLS0gYS9x Z2EvY29tbWFuZHMtd2luMzIuYw0KKysrIGIvcWdhL2NvbW1hbmRzLXdpbjMyLmMNCkBAIC0xMTgx LDE2ICsxMTgxLDE2IEBAIHN0YXRpYyBpbnQgZ3Vlc3RfZ2V0X25ldHdvcmtfc3RhdHMoY29uc3Qg Y2hhciAqbmFtZSwNCiAgICAgaWYgKG9zX3Zlci5kd01ham9yVmVyc2lvbiA+PSA2KSB7DQogICAg ICAgICBNSUJfSUZfUk9XMiBhX21pZF9pZnJvdzsNCiAgICAgICAgIG1lbXNldCgmYV9taWRfaWZy b3csIDAsIHNpemVvZihhX21pZF9pZnJvdykpOw0KLSAgICAgICAgYV9taWRfaWZyb3cuZHdJbmRl eCA9IGlmX2luZGV4Ow0KKyAgICAgICAgYV9taWRfaWZyb3cuSW50ZXJmYWNlSW5kZXggPSBpZl9p bmRleDsNCiAgICAgICAgIGlmIChOT19FUlJPUiA9PSBHZXRJZkVudHJ5MigmYV9taWRfaWZyb3cp KSB7DQotICAgICAgICAgICAgc3RhdHMtPnJ4X2J5dGVzID0gYV9taWRfaWZyb3cuZHdJbk9jdGV0 czsNCi0gICAgICAgICAgICBzdGF0cy0+cnhfcGFja2V0cyA9IGFfbWlkX2lmcm93LmR3SW5VY2Fz dFBrdHM7DQotICAgICAgICAgICAgc3RhdHMtPnJ4X2VycnMgPSBhX21pZF9pZnJvdy5kd0luRXJy b3JzOw0KLSAgICAgICAgICAgIHN0YXRzLT5yeF9kcm9wcGVkID0gYV9taWRfaWZyb3cuZHdJbkRp c2NhcmRzOw0KLSAgICAgICAgICAgIHN0YXRzLT50eF9ieXRlcyA9IGFfbWlkX2lmcm93LmR3T3V0 T2N0ZXRzOw0KLSAgICAgICAgICAgIHN0YXRzLT50eF9wYWNrZXRzID0gYV9taWRfaWZyb3cuZHdP dXRVY2FzdFBrdHM7DQotICAgICAgICAgICAgc3RhdHMtPnR4X2VycnMgPSBhX21pZF9pZnJvdy5k d091dEVycm9yczsNCi0gICAgICAgICAgICBzdGF0cy0+dHhfZHJvcHBlZCA9IGFfbWlkX2lmcm93 LmR3T3V0RGlzY2FyZHM7DQorICAgICAgICAgICAgc3RhdHMtPnJ4X2J5dGVzID0gYV9taWRfaWZy b3cuSW5PY3RldHM7DQorICAgICAgICAgICAgc3RhdHMtPnJ4X3BhY2tldHMgPSBhX21pZF9pZnJv dy5JblVjYXN0UGt0czsNCisgICAgICAgICAgICBzdGF0cy0+cnhfZXJycyA9IGFfbWlkX2lmcm93 LkluRXJyb3JzOw0KKyAgICAgICAgICAgIHN0YXRzLT5yeF9kcm9wcGVkID0gYV9taWRfaWZyb3cu SW5EaXNjYXJkczsNCisgICAgICAgICAgICBzdGF0cy0+dHhfYnl0ZXMgPSBhX21pZF9pZnJvdy5P dXRPY3RldHM7DQorICAgICAgICAgICAgc3RhdHMtPnR4X3BhY2tldHMgPSBhX21pZF9pZnJvdy5P dXRVY2FzdFBrdHM7DQorICAgICAgICAgICAgc3RhdHMtPnR4X2VycnMgPSBhX21pZF9pZnJvdy5P dXRFcnJvcnM7DQorICAgICAgICAgICAgc3RhdHMtPnR4X2Ryb3BwZWQgPSBhX21pZF9pZnJvdy5P dXREaXNjYXJkczsNCiAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgIH0NCiAgICAgfQ0K DQpJIGhhdmUgdGhlIG1vZGlmaWVkIHBhdGNoIHN0YWdlZCBoZXJlOg0KDQogIGh0dHBzOi8vZ2l0 aHViLmNvbS9tZHJvdGgvcWVtdS9jb21taXQvZGU1OTdhOGIyNzcyMmNlNGY5Y2M2NjBmOTMwZjdk Y2NjNzEyNzEyZA0KDQpMZXQgbWUga25vdyBpZiBpdCBsb29rcyBva2F5IGFuZCBJJ2xsIHNlbmQg YSBwdWxsIHJlcXVlc3QgZm9yIHJjMQ0KDQo+ICsgICAgICAgIH0NCj4gICAgICB9DQo+ICAgICAg cmV0dXJuIC0xOw0KPiAgfQ0KPiAtLSANCj4gMS44LjMuMQ0KPg==
Quoting lu.zhipeng@zte.com.cn (2017-11-09 05:26:15)
> i think the code is better
>
> if (OSver.dwMajorVersion >= 6) {
> MIB_IF_ROW2 aMib_ifrow;
> typedef NETIOAPI_API (WINAPI *getifentry2_t)(PMIB_IF_ROW2 Row);
> memset(&aMib_ifrow, 0, sizeof(aMib_ifrow));
> aMib_ifrow.InterfaceIndex = nicId;
> HMODULE module = GetModuleHandle("iphlpapi");
> PVOID fun = GetProcAddress(module, "GetIfEntry2");
> if (fun == NULL) {
> error_setg(errp, QERR_QGA_COMMAND_FAILED,
> "Failed to get address of GetIfEntry2");
> return NULL;
> }
> getifentry2_t getifentry2_ex = (getifentry2_t)fun;
> if (NO_ERROR == getifentry2_ex(&aMib_ifrow)){
> }
I've updated the patch with this change:
https://github.com/mdroth/qemu/commits/qga-if-stats
But I'm a bit confused now: when I tried to test this on XP I realized that
that qemu-ga no longer works on XP, and generates the following error
when I try to start it (even without your stats patch):
"The procedure entry point AcquireSRWLockExclusive could not be located
in the dynamic link library KERNEL32.dll"
I think this may be due to the following commit, which notes that Vista+
are now required as a result:
commit 12f8def0e02232d7c6416ad9b66640f973c531d1
Author: Andrey Shedel <ashedel@microsoft.com>
Date: Fri Mar 24 15:01:41 2017 -0700
win32: replace custom mutex and condition variable with native
primitives
So, are you actually able to run on XP currently? If so, how? And if
not, I think we have other issues that need to be addressed if we
want to support XP still; I'm not even sure that's realistic at this
point.
Unless there's actually a way to test QGA on XP right now I think I
we should just get in the updated patch minus the dynamic DLL stuff,
i.e.:
https://github.com/mdroth/qemu/commit/de597a8b27722ce4f9cc660f930f7dccc712712d
Make sense?
>
>
>
>
>
> 为了让您的VPlat虚拟机故障和docker故障得到高效的处理,请上报故障到: $VPlat技术支
> 持。
>
> 芦志朋 luzhipeng
>
>
> IT开发工程师 IT Development Engineer
> 操作系统产品部/中心研究院/系统产品 OS Product Dept./Central R&D Institute/
> System Product
>
>
> [cid] [cid]
> 四川省成都市天府大道中段800号
> E: lu.zhipeng@zte.com.cn
> www.zte.com.cn
>
> 原始邮件
> 发件人:芦志朋10108272
> 收件人: <mdroth@linux.vnet.ibm.com>;
> 抄送人: <qemu-devel@nongnu.org>;
> 日期:2017年11月08日 10:54
> 主题:答复: Re: [PATCH v2] qga: replace GetIfEntry
>
>
> >I have the modified patch staged here:
>
> > https://github.com/mdroth/qemu/commit/
> de597a8b27722ce4f9cc660f930f7dccc712712d
> >Let me know if it looks okay and I'll send a pull request for rc1
>
>
>
> the code right, but running QGA on the Windows XP, error: can not find the link
> to GetIfEntry2 in iphlpapi.DLL.
>
>
>
>
> 为了让您的VPlat虚拟机故障和docker故障得到高效的处理,请上报故障到: $VPlat技术支
> 持。
>
> 芦志朋 luzhipeng
>
>
> IT开发工程师 IT Development Engineer
> 操作系统产品部/中心研究院/系统产品 OS Product Dept./Central R&D Institute/
> System Product
>
>
> [cid] [cid]
> 四川省成都市天府大道中段800号
> E: lu.zhipeng@zte.com.cn
> www.zte.com.cn
>
>
> 发件人: <mdroth@linux.vnet.ibm.com>;
> 收件人:芦志朋10108272;
> 抄送人: <qemu-devel@nongnu.org>;芦志朋10108272;
> 日期:2017年11月08日 01:07
> 主题:Re: [PATCH v2] qga: replace GetIfEntry
>
>
> Quoting ZhiPeng Lu (2017-11-03 09:54:20)
> >
> The data obtained by GetIfEntry is 32 bits, and it may overflow. Thus using GetIfEntry2 instead of GetIfEntry.
> >
> > Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
> > ---
> > qga/commands-win32.c | 31 ++++++++++++++++++-------------
> > 1 file changed, 18 insertions(+), 13 deletions(-)
> >
> > diff --git a/qga/commands-win32.c b/qga/commands-win32.c
> > index 0322188..d096dc2 100644
> > --- a/qga/commands-win32.c
> > +++ b/qga/commands-win32.c
> > @@ -1173,20 +1173,25 @@ static int guest_get_network_stats(const char *name,
> > GuestNetworkInterfaceStat *stats)
> > {
> > DWORD if_index = 0;
> > - MIB_IFROW a_mid_ifrow;
> > - memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
> > + OSVERSIONINFO OSver;
> > if_index = get_interface_index(name);
> > - a_mid_ifrow.dwIndex = if_index;
> > - if (NO_ERROR == GetIfEntry(&a_mid_ifrow)) {
> > - stats->rx_bytes = a_mid_ifrow.dwInOctets;
> > - stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> > - stats->rx_errs = a_mid_ifrow.dwInErrors;
> > - stats->rx_dropped = a_mid_ifrow.dwInDiscards;
> > - stats->tx_bytes = a_mid_ifrow.dwOutOctets;
> > - stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
> > - stats->tx_errs = a_mid_ifrow.dwOutErrors;
> > - stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
> > - return 0;
> > + OSver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
> > + GetVersionEx(&OSver);
> > + if (OSver.dwMajorVersion >= 6) {
> > + MIB_IF_ROW2 a_mid_ifrow;
> > + memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
> > + a_mid_ifrow.dwIndex = if_index;
> > + if (NO_ERROR == GetIfEntry2(&a_mid_ifrow)) {
> > + stats->rx_bytes = a_mid_ifrow.dwInOctets;
> > + stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> > + stats->rx_errs = a_mid_ifrow.dwInErrors;
> > + stats->rx_dropped = a_mid_ifrow.dwInDiscards;
> > + stats->tx_bytes = a_mid_ifrow.dwOutOctets;
> > + stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
> > + stats->tx_errs = a_mid_ifrow.dwOutErrors;
> > + stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
> > + return 0;
>
> This fails to build in my fc20 mingw64 environment:
>
> /home/mdroth/w/qemu4.git/qga/
> commands-win32.c:1184:20: error: 'MIB_IF_ROW2' has no member named 'dwIndex'
> a_mid_ifrow.dwIndex = if_index;
> ^
> /home/mdroth/w/qemu4.git/qga/
> commands-win32.c:1186:42: error: 'MIB_IF_ROW2' has no member named 'dwInOctets'
> stats->rx_bytes = a_mid_ifrow.dwInOctets;
> ^
> /home/mdroth/w/qemu4.git/qga/
> commands-win32.c:1187:44: error: 'MIB_IF_ROW2' has no member named 'dwInUcastPkts'
> stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
>
> etc ...
>
> The patch seems to assume MIB_IFROW and MIB_IF_ROW2 have the same field names
> for the stats, but according to this they're slightly different:
>
> https://msdn.microsoft.com/en-us/library/windows/desktop/aa814491(v=
> vs.85).aspx
>
> This change on top of your patch seems to work:
>
> diff --git a/qga/commands-win32.c b/qga/commands-win32.c
> index e17fc3c284..58e470877f 100644
> --- a/qga/commands-win32.c
> +++ b/qga/commands-win32.c
> @@ -1181,16 +1181,16 @@ static int guest_get_network_stats(const char *name,
> if (os_ver.dwMajorVersion >= 6) {
> MIB_IF_ROW2 a_mid_ifrow;
> memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
> - a_mid_ifrow.dwIndex = if_index;
> + a_mid_ifrow.InterfaceIndex = if_index;
> if (NO_ERROR == GetIfEntry2(&a_mid_ifrow)) {
> - stats->rx_bytes = a_mid_ifrow.dwInOctets;
> - stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> - stats->rx_errs = a_mid_ifrow.dwInErrors;
> - stats->rx_dropped = a_mid_ifrow.dwInDiscards;
> - stats->tx_bytes = a_mid_ifrow.dwOutOctets;
> - stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
> - stats->tx_errs = a_mid_ifrow.dwOutErrors;
> - stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
> + stats->rx_bytes = a_mid_ifrow.InOctets;
> + stats->rx_packets = a_mid_ifrow.InUcastPkts;
> + stats->rx_errs = a_mid_ifrow.InErrors;
> + stats->rx_dropped = a_mid_ifrow.InDiscards;
> + stats->tx_bytes = a_mid_ifrow.OutOctets;
> + stats->tx_packets = a_mid_ifrow.OutUcastPkts;
> + stats->tx_errs = a_mid_ifrow.OutErrors;
> + stats->tx_dropped = a_mid_ifrow.OutDiscards;
> return 0;
> }
> }
>
> I have the modified patch staged here:
>
> https://github.com/mdroth/qemu/commit/
> de597a8b27722ce4f9cc660f930f7dccc712712d
>
> Let me know if it looks okay and I'll send a pull request for rc1
>
> > + }
> > }
> > return -1;
> > }
> > --
> > 1.8.3.1
> >
>
>
aSBub3Qgc3VyZSB0aGF0IGkgdXNlIGxhdGVzdCBxZ2EgaW4geHAsbWF5YmUgdXNlIHRoZSBvbGRl ciBxZ2EuaSB3aWxsIHRlc3QgbGF0ZXN0IHFnYSBpbiB4cA0KDQoNCg0K5Y+R6Ieq5oiR55qEek1h aWwNCg0KDQoNCg0K5Y6f5aeL6YKu5Lu2DQoNCg0KDQrlj5Hku7bkurrvvJpNaWNoYWVsUm90aDsN CuaUtuS7tuS6uu+8muiKpuW/l+acizEwMTA4MjcyOw0K5oqE6YCB5Lq677yacWVtdS1kZXZlbEBu b25nbnUub3JnOw0K5pel5pyf77yaMjAxNy0xMS0xNCAwNzo1Nzo0NQ0K5Li76aKY77yaUmU6IOet lOWkjTogUmU6IFtQQVRDSCB2Ml0gcWdhOiByZXBsYWNlIEdldElmRW50cnkNCg0KDQpRdW90aW5n IGx1LnpoaXBlbmdAenRlLmNvbS5jbiAoMjAxNy0xMS0wOSAwNToyNjoxNSkNCj4gIGkgdGhpbmsg dGhlIGNvZGUgaXMgYmV0dGVyDQo+IA0KPiAgaWYgKE9TdmVyLmR3TWFqb3JWZXJzaW9uID49IDYp IHsNCj4gICAgICAgTUlCX0lGX1JPVzIgYU1pYl9pZnJvdzsNCj4gICAgICAgdHlwZWRlZiBORVRJ T0FQSV9BUEkgKFdJTkFQSSAqZ2V0aWZlbnRyeTJfdCkoUE1JQl9JRl9ST1cyIFJvdyk7DQo+ICAg ICAgIG1lbXNldCgmYU1pYl9pZnJvdywgMCwgc2l6ZW9mKGFNaWJfaWZyb3cpKTsNCj4gICAgICAg YU1pYl9pZnJvdy5JbnRlcmZhY2VJbmRleCA9IG5pY0lkOw0KPiAgICAgICBITU9EVUxFIG1vZHVs ZSA9IEdldE1vZHVsZUhhbmRsZSgiaXBobHBhcGkiKTsNCj4gICAgICAgUFZPSUQgZnVuID0gR2V0 UHJvY0FkZHJlc3MobW9kdWxlLCAiR2V0SWZFbnRyeTIiKTsNCj4gICAgICAgaWYgKGZ1biA9PSBO VUxMKSB7DQo+ICAgICAgICAgICBlcnJvcl9zZXRnKGVycnAsIFFFUlJfUUdBX0NPTU1BTkRfRkFJ TEVELA0KPiAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGdldCBhZGRyZXNzIG9mIEdl dElmRW50cnkyIik7DQo+ICAgICAgICAgICByZXR1cm4gTlVMTDsNCj4gICAgICAgfQ0KPiAgICAg Z2V0aWZlbnRyeTJfdCBnZXRpZmVudHJ5Ml9leCA9IChnZXRpZmVudHJ5Ml90KWZ1bjsNCj4gICAg IGlmIChOT19FUlJPUiA9PSBnZXRpZmVudHJ5Ml9leCgmYU1pYl9pZnJvdykpew0KPiAgICAgfQ0K DQpJJ3ZlIHVwZGF0ZWQgdGhlIHBhdGNoIHdpdGggdGhpcyBjaGFuZ2U6DQogIGh0dHBzOi8vZ2l0 aHViLmNvbS9tZHJvdGgvcWVtdS9jb21taXRzL3FnYS1pZi1zdGF0cw0KDQpCdXQgSSdtIGEgYml0 IGNvbmZ1c2VkIG5vdzogd2hlbiBJIHRyaWVkIHRvIHRlc3QgdGhpcyBvbiBYUCBJIHJlYWxpemVk IHRoYXQNCnRoYXQgcWVtdS1nYSBubyBsb25nZXIgd29ya3Mgb24gWFAsIGFuZCBnZW5lcmF0ZXMg dGhlIGZvbGxvd2luZyBlcnJvcg0Kd2hlbiBJIHRyeSB0byBzdGFydCBpdCAoZXZlbiB3aXRob3V0 IHlvdXIgc3RhdHMgcGF0Y2gpOg0KDQogICJUaGUgcHJvY2VkdXJlIGVudHJ5IHBvaW50IEFjcXVp cmVTUldMb2NrRXhjbHVzaXZlIGNvdWxkIG5vdCBiZSBsb2NhdGVkDQogICBpbiB0aGUgZHluYW1p YyBsaW5rIGxpYnJhcnkgS0VSTkVMMzIuZGxsIg0KDQpJIHRoaW5rIHRoaXMgbWF5IGJlIGR1ZSB0 byB0aGUgZm9sbG93aW5nIGNvbW1pdCwgd2hpY2ggbm90ZXMgdGhhdCBWaXN0YSsNCmFyZSBub3cg cmVxdWlyZWQgYXMgYSByZXN1bHQ6DQoNCmNvbW1pdCAxMmY4ZGVmMGUwMjIzMmQ3YzY0MTZhZDli NjY2NDBmOTczYzUzMWQxDQpBdXRob3I6IEFuZHJleSBTaGVkZWwgPGFzaGVkZWxAbWljcm9zb2Z0 LmNvbT4NCkRhdGU6ICAgRnJpIE1hciAyNCAxNTowMTo0MSAyMDE3IC0wNzAwDQoNCiAgICB3aW4z MjogcmVwbGFjZSBjdXN0b20gbXV0ZXggYW5kIGNvbmRpdGlvbiB2YXJpYWJsZSB3aXRoIG5hdGl2 ZQ0KICAgIHByaW1pdGl2ZXMNCg0KU28sIGFyZSB5b3UgYWN0dWFsbHkgYWJsZSB0byBydW4gb24g WFAgY3VycmVudGx5PyBJZiBzbywgaG93PyBBbmQgaWYNCm5vdCwgSSB0aGluayB3ZSBoYXZlIG90 aGVyIGlzc3VlcyB0aGF0IG5lZWQgdG8gYmUgYWRkcmVzc2VkIGlmIHdlDQp3YW50IHRvIHN1cHBv cnQgWFAgc3RpbGw7IEknbSBub3QgZXZlbiBzdXJlIHRoYXQncyByZWFsaXN0aWMgYXQgdGhpcw0K cG9pbnQuDQoNClVubGVzcyB0aGVyZSdzIGFjdHVhbGx5IGEgd2F5IHRvIHRlc3QgUUdBIG9uIFhQ IHJpZ2h0IG5vdyBJIHRoaW5rIEkNCndlIHNob3VsZCBqdXN0IGdldCBpbiB0aGUgdXBkYXRlZCBw YXRjaCBtaW51cyB0aGUgZHluYW1pYyBETEwgc3R1ZmYsDQppLmUuOg0KICBodHRwczovL2dpdGh1 Yi5jb20vbWRyb3RoL3FlbXUvY29tbWl0L2RlNTk3YThiMjc3MjJjZTRmOWNjNjYwZjkzMGY3ZGNj YzcxMjcxMmQNCg0KTWFrZSBzZW5zZT8NCg0KPiANCj4gDQo+IA0KPiANCj4gDQo+IOS4uuS6huiu qeaCqOeahFZQbGF06Jma5ouf5py65pWF6Zqc5ZKMZG9ja2Vy5pWF6Zqc5b6X5Yiw6auY5pWI55qE 5aSE55CG77yM6K+35LiK5oql5pWF6Zqc5YiwOiAkVlBsYXTmioDmnK/mlK8NCj4g5oyB44CCDQo+ IA0KPiDoiqblv5fmnIsgbHV6aGlwZW5nDQo+IA0KPiANCj4gSVTlvIDlj5Hlt6XnqIvluIggSVQg RGV2ZWxvcG1lbnQgRW5naW5lZXINCj4g5pON5L2c57O757uf5Lqn5ZOB6YOoL+S4reW/g+eglOep tumZoi/ns7vnu5/kuqflk4EgT1MgUHJvZHVjdCBEZXB0Li9DZW50cmFsIFLvvIZEIEluc3RpdHV0 ZS8NCj4gU3lzdGVtIFByb2R1Y3QNCj4gDQo+IA0KPiBbY2lkXSAgICAgICAgICBbY2lkXQ0KPiAg ICAgICAgICAgICAgICDlm5vlt53nnIHmiJDpg73luILlpKnlupzlpKfpgZPkuK3mrrU4MDDlj7cN Cj4gICAgICAgICAgICAgICAgRTogbHUuemhpcGVuZ0B6dGUuY29tLmNuDQo+ICAgICAgICAgICAg ICAgIHd3dy56dGUuY29tLmNuDQo+IA0KPiDljp/lp4vpgq7ku7YNCj4g5Y+R5Lu25Lq677ya6Iqm 5b+X5pyLMTAxMDgyNzINCj4g5pS25Lu25Lq677yaIDxtZHJvdGhAbGludXgudm5ldC5pYm0uY29t PjsNCj4g5oqE6YCB5Lq677yaIDxxZW11LWRldmVsQG5vbmdudS5vcmc+Ow0KPiDml6XmnJ/vvJoy MDE35bm0MTHmnIgwOOaXpSAxMDo1NA0KPiDkuLvpopjvvJrnrZTlpI06IFJlOiBbUEFUQ0ggdjJd IHFnYTogcmVwbGFjZSBHZXRJZkVudHJ5DQo+IA0KPiANCj4gPkkgaGF2ZSB0aGUgbW9kaWZpZWQg cGF0Y2ggc3RhZ2VkIGhlcmU6DQo+IA0KPiA+ICBodHRwczovL2dpdGh1Yi5jb20vbWRyb3RoL3Fl bXUvY29tbWl0Lw0KPiBkZTU5N2E4YjI3NzIyY2U0ZjljYzY2MGY5MzBmN2RjY2M3MTI3MTJkDQo+ ID5MZXQgbWUga25vdyBpZiBpdCBsb29rcyBva2F5IGFuZCBJJ2xsIHNlbmQgYSBwdWxsIHJlcXVl c3QgZm9yIHJjMQ0KPiANCj4gIA0KPiANCj4gdGhlIGNvZGUgcmlnaHQsIGJ1dCBydW5uaW5nIFFH QSBvbiB0aGUgV2luZG93cyBYUCwgZXJyb3I6IGNhbiBub3QgZmluZCB0aGUgbGluaw0KPiB0byAg R2V0SWZFbnRyeTIgaW4gaXBobHBhcGkuRExMLg0KPiANCj4gDQo+IA0KPiANCj4g5Li65LqG6K6p 5oKo55qEVlBsYXTomZrmi5/mnLrmlYXpmpzlkoxkb2NrZXLmlYXpmpzlvpfliLDpq5jmlYjnmoTl pITnkIbvvIzor7fkuIrmiqXmlYXpmpzliLA6ICRWUGxhdOaKgOacr+aUrw0KPiDmjIHjgIINCj4g DQo+IOiKpuW/l+aciyBsdXpoaXBlbmcNCj4gDQo+IA0KPiBJVOW8gOWPkeW3peeoi+W4iCBJVCBE ZXZlbG9wbWVudCBFbmdpbmVlcg0KPiDmk43kvZzns7vnu5/kuqflk4Hpg6gv5Lit5b+D56CU56m2 6ZmiL+ezu+e7n+S6p+WTgSBPUyBQcm9kdWN0IERlcHQuL0NlbnRyYWwgUu+8hkQgSW5zdGl0dXRl Lw0KPiBTeXN0ZW0gUHJvZHVjdA0KPiANCj4gDQo+IFtjaWRdICAgICAgICAgIFtjaWRdDQo+ICAg ICAgICAgICAgICAgIOWbm+W3neecgeaIkOmDveW4guWkqeW6nOWkp+mBk+S4reautTgwMOWPtw0K PiAgICAgICAgICAgICAgICBFOiBsdS56aGlwZW5nQHp0ZS5jb20uY24NCj4gICAgICAgICAgICAg ICAgd3d3Lnp0ZS5jb20uY24NCj4gDQo+IA0KPiDlj5Hku7bkurrvvJogPG1kcm90aEBsaW51eC52 bmV0LmlibS5jb20+Ow0KPiDmlLbku7bkurrvvJroiqblv5fmnIsxMDEwODI3MjsNCj4g5oqE6YCB 5Lq677yaIDxxZW11LWRldmVsQG5vbmdudS5vcmc+O+iKpuW/l+acizEwMTA4MjcyOw0KPiDml6Xm nJ/vvJoyMDE35bm0MTHmnIgwOOaXpSAwMTowNw0KPiDkuLvpopjvvJpSZTogW1BBVENIIHYyXSBx Z2E6IHJlcGxhY2UgR2V0SWZFbnRyeQ0KPiANCj4gDQo+IFF1b3RpbmcgWmhpUGVuZyBMdSAoMjAx Ny0xMS0wMyAwOTo1NDoyMCkNCj4gPg0KPiAgVGhlIGRhdGEgb2J0YWluZWQgYnkgR2V0SWZFbnRy eSBpcyAzMiBiaXRzLCBhbmQgaXQgbWF5IG92ZXJmbG93LiBUaHVzIHVzaW5nIEdldElmRW50cnky IGluc3RlYWQgb2YgR2V0SWZFbnRyeS4NCj4gPiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBaaGlQZW5n IEx1IDxsdS56aGlwZW5nQHp0ZS5jb20uY24+DQo+ID4gLS0tDQo+ID4gIHFnYS9jb21tYW5kcy13 aW4zMi5jIHwgMzEgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQ0KPiA+ICAxIGZpbGUg Y2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pDQo+ID4gDQo+ID4gZGlm ZiAtLWdpdCBhL3FnYS9jb21tYW5kcy13aW4zMi5jIGIvcWdhL2NvbW1hbmRzLXdpbjMyLmMNCj4g PiBpbmRleCAwMzIyMTg4Li5kMDk2ZGMyIDEwMDY0NA0KPiA+IC0tLSBhL3FnYS9jb21tYW5kcy13 aW4zMi5jDQo+ID4gKysrIGIvcWdhL2NvbW1hbmRzLXdpbjMyLmMNCj4gPiBAQCAtMTE3MywyMCAr MTE3MywyNSBAQCBzdGF0aWMgaW50IGd1ZXN0X2dldF9uZXR3b3JrX3N0YXRzKGNvbnN0IGNoYXIg Km5hbWUsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgR3Vlc3ROZXR3b3JrSW50ZXJmYWNl U3RhdCAqc3RhdHMpDQo+ID4gIHsNCj4gPiAgICAgIERXT1JEIGlmX2luZGV4ID0gMDsNCj4gPiAt ICAgIE1JQl9JRlJPVyBhX21pZF9pZnJvdzsNCj4gPiAtICAgIG1lbXNldCgmYV9taWRfaWZyb3cs IDAsIHNpemVvZihhX21pZF9pZnJvdykpOw0KPiA+ICsgICAgT1NWRVJTSU9OSU5GTyBPU3ZlcjsN Cj4gPiAgICAgIGlmX2luZGV4ID0gZ2V0X2ludGVyZmFjZV9pbmRleChuYW1lKTsNCj4gPiAtICAg IGFfbWlkX2lmcm93LmR3SW5kZXggPSBpZl9pbmRleDsNCj4gPiAtICAgIGlmIChOT19FUlJPUiA9 PSBHZXRJZkVudHJ5KCZhX21pZF9pZnJvdykpIHsNCj4gPiAtICAgICAgICBzdGF0cy0+cnhfYnl0 ZXMgPSBhX21pZF9pZnJvdy5kd0luT2N0ZXRzOw0KPiA+IC0gICAgICAgIHN0YXRzLT5yeF9wYWNr ZXRzID0gYV9taWRfaWZyb3cuZHdJblVjYXN0UGt0czsNCj4gPiAtICAgICAgICBzdGF0cy0+cnhf ZXJycyA9IGFfbWlkX2lmcm93LmR3SW5FcnJvcnM7DQo+ID4gLSAgICAgICAgc3RhdHMtPnJ4X2Ry b3BwZWQgPSBhX21pZF9pZnJvdy5kd0luRGlzY2FyZHM7DQo+ID4gLSAgICAgICAgc3RhdHMtPnR4 X2J5dGVzID0gYV9taWRfaWZyb3cuZHdPdXRPY3RldHM7DQo+ID4gLSAgICAgICAgc3RhdHMtPnR4 X3BhY2tldHMgPSBhX21pZF9pZnJvdy5kd091dFVjYXN0UGt0czsNCj4gPiAtICAgICAgICBzdGF0 cy0+dHhfZXJycyA9IGFfbWlkX2lmcm93LmR3T3V0RXJyb3JzOw0KPiA+IC0gICAgICAgIHN0YXRz LT50eF9kcm9wcGVkID0gYV9taWRfaWZyb3cuZHdPdXREaXNjYXJkczsNCj4gPiAtICAgICAgICBy ZXR1cm4gMDsNCj4gPiArICAgIE9TdmVyLmR3T1NWZXJzaW9uSW5mb1NpemUgPSBzaXplb2YoT1NW RVJTSU9OSU5GTyk7DQo+ID4gKyAgICBHZXRWZXJzaW9uRXgoJk9TdmVyKTsNCj4gPiArICAgIGlm IChPU3Zlci5kd01ham9yVmVyc2lvbiA+PSA2KSB7DQo+ID4gKyAgICAgICAgTUlCX0lGX1JPVzIg YV9taWRfaWZyb3c7DQo+ID4gKyAgICAgICAgbWVtc2V0KCZhX21pZF9pZnJvdywgMCwgc2l6ZW9m KGFfbWlkX2lmcm93KSk7DQo+ID4gKyAgICAgICAgYV9taWRfaWZyb3cuZHdJbmRleCA9IGlmX2lu ZGV4Ow0KPiA+ICsgICAgICAgIGlmIChOT19FUlJPUiA9PSBHZXRJZkVudHJ5MigmYV9taWRfaWZy b3cpKSB7DQo+ID4gKyAgICAgICAgICAgIHN0YXRzLT5yeF9ieXRlcyA9IGFfbWlkX2lmcm93LmR3 SW5PY3RldHM7DQo+ID4gKyAgICAgICAgICAgIHN0YXRzLT5yeF9wYWNrZXRzID0gYV9taWRfaWZy b3cuZHdJblVjYXN0UGt0czsNCj4gPiArICAgICAgICAgICAgc3RhdHMtPnJ4X2VycnMgPSBhX21p ZF9pZnJvdy5kd0luRXJyb3JzOw0KPiA+ICsgICAgICAgICAgICBzdGF0cy0+cnhfZHJvcHBlZCA9 IGFfbWlkX2lmcm93LmR3SW5EaXNjYXJkczsNCj4gPiArICAgICAgICAgICAgc3RhdHMtPnR4X2J5 dGVzID0gYV9taWRfaWZyb3cuZHdPdXRPY3RldHM7DQo+ID4gKyAgICAgICAgICAgIHN0YXRzLT50 eF9wYWNrZXRzID0gYV9taWRfaWZyb3cuZHdPdXRVY2FzdFBrdHM7DQo+ID4gKyAgICAgICAgICAg IHN0YXRzLT50eF9lcnJzID0gYV9taWRfaWZyb3cuZHdPdXRFcnJvcnM7DQo+ID4gKyAgICAgICAg ICAgIHN0YXRzLT50eF9kcm9wcGVkID0gYV9taWRfaWZyb3cuZHdPdXREaXNjYXJkczsNCj4gPiAr ICAgICAgICAgICAgcmV0dXJuIDA7DQo+IA0KPiBUaGlzIGZhaWxzIHRvIGJ1aWxkIGluIG15IGZj MjAgbWluZ3c2NCBlbnZpcm9ubWVudDoNCj4gDQo+IC9ob21lL21kcm90aC93L3FlbXU0LmdpdC9x Z2EvDQo+IGNvbW1hbmRzLXdpbjMyLmM6MTE4NDoyMDogZXJyb3I6ICdNSUJfSUZfUk9XMicgaGFz IG5vIG1lbWJlciBuYW1lZCAnZHdJbmRleCcNCj4gICAgICAgICAgYV9taWRfaWZyb3cuZHdJbmRl eCA9IGlmX2luZGV4Ow0KPiAgICAgICAgICAgICAgICAgICAgIF4NCj4gL2hvbWUvbWRyb3RoL3cv cWVtdTQuZ2l0L3FnYS8NCj4gY29tbWFuZHMtd2luMzIuYzoxMTg2OjQyOiBlcnJvcjogJ01JQl9J Rl9ST1cyJyBoYXMgbm8gbWVtYmVyIG5hbWVkICdkd0luT2N0ZXRzJw0KPiAgICAgICAgICAgICAg c3RhdHMtPnJ4X2J5dGVzID0gYV9taWRfaWZyb3cuZHdJbk9jdGV0czsNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KPiAvaG9tZS9tZHJvdGgvdy9xZW11NC5n aXQvcWdhLw0KPiBjb21tYW5kcy13aW4zMi5jOjExODc6NDQ6IGVycm9yOiAnTUlCX0lGX1JPVzIn IGhhcyBubyBtZW1iZXIgbmFtZWQgJ2R3SW5VY2FzdFBrdHMnDQo+ICAgICAgICAgICAgICBzdGF0 cy0+cnhfcGFja2V0cyA9IGFfbWlkX2lmcm93LmR3SW5VY2FzdFBrdHM7DQo+IA0KPiBldGMgLi4u DQo+IA0KPiBUaGUgcGF0Y2ggc2VlbXMgdG8gYXNzdW1lIE1JQl9JRlJPVyBhbmQgTUlCX0lGX1JP VzIgaGF2ZSB0aGUgc2FtZSBmaWVsZCBuYW1lcw0KPiBmb3IgdGhlIHN0YXRzLCBidXQgYWNjb3Jk aW5nIHRvIHRoaXMgdGhleSdyZSBzbGlnaHRseSBkaWZmZXJlbnQ6DQo+IA0KPiAgIGh0dHBzOi8v bXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvd2luZG93cy9kZXNrdG9wL2FhODE0NDkx KHY9DQo+IHZzLjg1KS5hc3B4DQo+IA0KPiBUaGlzIGNoYW5nZSBvbiB0b3Agb2YgeW91ciBwYXRj aCBzZWVtcyB0byB3b3JrOg0KPiANCj4gZGlmZiAtLWdpdCBhL3FnYS9jb21tYW5kcy13aW4zMi5j IGIvcWdhL2NvbW1hbmRzLXdpbjMyLmMNCj4gaW5kZXggZTE3ZmMzYzI4NC4uNThlNDcwODc3ZiAx MDA2NDQNCj4gLS0tIGEvcWdhL2NvbW1hbmRzLXdpbjMyLmMNCj4gKysrIGIvcWdhL2NvbW1hbmRz LXdpbjMyLmMNCj4gQEAgLTExODEsMTYgKzExODEsMTYgQEAgc3RhdGljIGludCBndWVzdF9nZXRf bmV0d29ya19zdGF0cyhjb25zdCBjaGFyICpuYW1lLA0KPiAgICAgIGlmIChvc192ZXIuZHdNYWpv clZlcnNpb24gPj0gNikgew0KPiAgICAgICAgICBNSUJfSUZfUk9XMiBhX21pZF9pZnJvdzsNCj4g ICAgICAgICAgbWVtc2V0KCZhX21pZF9pZnJvdywgMCwgc2l6ZW9mKGFfbWlkX2lmcm93KSk7DQo+ IC0gICAgICAgIGFfbWlkX2lmcm93LmR3SW5kZXggPSBpZl9pbmRleDsNCj4gKyAgICAgICAgYV9t aWRfaWZyb3cuSW50ZXJmYWNlSW5kZXggPSBpZl9pbmRleDsNCj4gICAgICAgICAgaWYgKE5PX0VS Uk9SID09IEdldElmRW50cnkyKCZhX21pZF9pZnJvdykpIHsNCj4gLSAgICAgICAgICAgIHN0YXRz LT5yeF9ieXRlcyA9IGFfbWlkX2lmcm93LmR3SW5PY3RldHM7DQo+IC0gICAgICAgICAgICBzdGF0 cy0+cnhfcGFja2V0cyA9IGFfbWlkX2lmcm93LmR3SW5VY2FzdFBrdHM7DQo+IC0gICAgICAgICAg ICBzdGF0cy0+cnhfZXJycyA9IGFfbWlkX2lmcm93LmR3SW5FcnJvcnM7DQo+IC0gICAgICAgICAg ICBzdGF0cy0+cnhfZHJvcHBlZCA9IGFfbWlkX2lmcm93LmR3SW5EaXNjYXJkczsNCj4gLSAgICAg ICAgICAgIHN0YXRzLT50eF9ieXRlcyA9IGFfbWlkX2lmcm93LmR3T3V0T2N0ZXRzOw0KPiAtICAg ICAgICAgICAgc3RhdHMtPnR4X3BhY2tldHMgPSBhX21pZF9pZnJvdy5kd091dFVjYXN0UGt0czsN Cj4gLSAgICAgICAgICAgIHN0YXRzLT50eF9lcnJzID0gYV9taWRfaWZyb3cuZHdPdXRFcnJvcnM7 DQo+IC0gICAgICAgICAgICBzdGF0cy0+dHhfZHJvcHBlZCA9IGFfbWlkX2lmcm93LmR3T3V0RGlz Y2FyZHM7DQo+ICsgICAgICAgICAgICBzdGF0cy0+cnhfYnl0ZXMgPSBhX21pZF9pZnJvdy5Jbk9j dGV0czsNCj4gKyAgICAgICAgICAgIHN0YXRzLT5yeF9wYWNrZXRzID0gYV9taWRfaWZyb3cuSW5V Y2FzdFBrdHM7DQo+ICsgICAgICAgICAgICBzdGF0cy0+cnhfZXJycyA9IGFfbWlkX2lmcm93Lklu RXJyb3JzOw0KPiArICAgICAgICAgICAgc3RhdHMtPnJ4X2Ryb3BwZWQgPSBhX21pZF9pZnJvdy5J bkRpc2NhcmRzOw0KPiArICAgICAgICAgICAgc3RhdHMtPnR4X2J5dGVzID0gYV9taWRfaWZyb3cu T3V0T2N0ZXRzOw0KPiArICAgICAgICAgICAgc3RhdHMtPnR4X3BhY2tldHMgPSBhX21pZF9pZnJv dy5PdXRVY2FzdFBrdHM7DQo+ICsgICAgICAgICAgICBzdGF0cy0+dHhfZXJycyA9IGFfbWlkX2lm cm93Lk91dEVycm9yczsNCj4gKyAgICAgICAgICAgIHN0YXRzLT50eF9kcm9wcGVkID0gYV9taWRf aWZyb3cuT3V0RGlzY2FyZHM7DQo+ICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gICAgICAgICAg fQ0KPiAgICAgIH0NCj4gDQo+IEkgaGF2ZSB0aGUgbW9kaWZpZWQgcGF0Y2ggc3RhZ2VkIGhlcmU6 DQo+IA0KPiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tZHJvdGgvcWVtdS9jb21taXQvDQo+IGRlNTk3 YThiMjc3MjJjZTRmOWNjNjYwZjkzMGY3ZGNjYzcxMjcxMmQNCj4gDQo+IExldCBtZSBrbm93IGlm IGl0IGxvb2tzIG9rYXkgYW5kIEknbGwgc2VuZCBhIHB1bGwgcmVxdWVzdCBmb3IgcmMxDQo+IA0K PiA+ICsgICAgICAgIH0NCj4gPiAgICAgIH0NCj4gPiAgICAgIHJldHVybiAtMTsNCj4gPiAgfQ0K PiA+IC0tIA0KPiA+IDEuOC4zLjENCj4gPiANCj4gDQo+
aSB0ZXN0IHRoZSBsYXRlc3QgcWdhIGluIHhwICwgaXQgcnVuIG9rIC4NCg0KDQoNCg0KDQoNCm15 IHFnYSBjb25maWcgOg0KDQoNCkNvbmZpZ3VyZWQgd2l0aDogJy4vY29uZmlndXJlJyAnLS1lbmFi bGUtZ3Vlc3QtYWdlbnQnICctLWNyb3NzLXByZWZpeD14ODZfNjQtdzY0LW1pbmd3MzItJyAnLS13 aXRoLXZzcy1zZGs9L2hvbWUvVlNTU0RLNzInICctLWRpc2FibGUtZmR0JyAgICAgICAgICctLXRh cmdldC1saXN0PXg4Nl82NC1zb2Z0bW11Jw0KDQoNCnVzZWQgcWdhIHZlcnNpb24gaW5mbw0KDQpb cm9vdEBjZXNoaSBxZW11XSMgZ2l0IGxvZw0KDQpjb21taXQgNTMzYWI4M2VhMDc0ZDVmYzQ1Nzc2 OWY2YWM2OTg1MjRhMTJmMTE1Ng0KDQpBdXRob3I6IFpoaVBlbmcgTHUgPGx1LnpoaXBlbmdAenRl LmNvbS5jbj4NCg0KRGF0ZTogICBGcmkgTm92IDEwIDEwOjE3OjE0IDIwMTcgKzA4MDANCg0KDQoN Cg0KICAgIHFnYTogZml4IHNvbWUgZXJyb3JzIGZvciBndWVzdF9nZXRfbmV0d29ya19zdGF0cw0K DQogICAgDQoNCiAgICBmaXggc29tZSBlcnJvczoNCg0KICAgIDEuaWYgYnVpbGRpbmcgcWdhIG9u IFdpbmRvd3MgVmlzdGEvMjAwOCBhbmQgbmV3ZXIsDQoNCiAgICBpdCBjYW5uJ3QgZmluZCB0aGUg bGluayB0byBHZXRJZkVudHJ5MiBpbiB3aW5kb3dzIHhwLg0KDQogICAgMi4gY2hlY2sgdmFsaWQg b2YgaWZfaW5kZXguDQoNCiAgICANCg0KICAgIFNpZ25lZC1vZmYtYnk6IFpoaVBlbmcgTHUgPGx1 LnpoaXBlbmdAenRlLmNvbS5jbj4NCg0KDQoNCg0KY29tbWl0IGRlNTk3YThiMjc3MjJjZTRmOWNj NjYwZjkzMGY3ZGNjYzcxMjcxMmQNCg0KQXV0aG9yOiBaaGlQZW5nIEx1IDxsdS56aGlwZW5nQHp0 ZS5jb20uY24+DQoNCkRhdGU6ICAgRnJpIE5vdiAzIDIyOjU0OjIwIDIwMTcgKzA4MDANCg0KDQoN Cg0KICAgIHFnYTogcmVwbGFjZSBHZXRJZkVudHJ5DQoNCiAgICANCg0KICAgIFRoZSBkYXRhIG9i dGFpbmVkIGJ5IEdldElmRW50cnkgaXMgMzIgYml0cywgYW5kIGl0IG1heSBvdmVyZmxvdy4gVGh1 cyB1c2luZyBHZXRJZkVudHJ5MiBpbnN0ZWFkIG9mIEdldElmRW50cnkuDQoNCiAgICANCg0KICAg IFNpZ25lZC1vZmYtYnk6IFpoaVBlbmcgTHUgPGx1LnpoaXBlbmdAenRlLmNvbS5jbj4NCg0KICAg ICphdm9pZCBDYW1lbENhc2UgdmFyaWFibGUgbmFtZXMNCg0KICAgICp1cGRhdGUgZmllbGQgbmFt ZXMgZm9yIE1JQl9JRlJPVyAtPiBNSUJfSUZfUk9XMg0KDQogICAgU2lnbmVkLW9mZi1ieTogTWlj aGFlbCBSb3RoIDxtZHJvdGhAbGludXgudm5ldC5pYm0uY29tPg0KDQoNCg0KDQpjb21taXQgNWNh N2EzY2JhNDY4NzM2Y2ZlNTU1ODg3YWYxZjZiYTc1NGY2ZWFjOQ0KDQpNZXJnZTogYTRmMDUzNyAx MGE3YjdlDQoNCkF1dGhvcjogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3Jn Pg0KDQpEYXRlOiAgIFR1ZSBOb3YgNyAxNDo0MzozNSAyMDE3ICswMDAwDQoNCg0KDQoNCiAgICBN ZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdyZW1vdGVzL2JlcnJhbmdlL3RhZ3MvcHVsbC0y MDE3LTExLTA2LTInIGludG8gc3RhZ2luZw0KDQogICAgDQoNCiAgICBQdWxsIElPIDIwMTcvMTEv MDYgdjINCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K5Li65LqG6K6p5oKo 55qEVlBsYXTomZrmi5/mnLrmlYXpmpzlkoxkb2NrZXLmlYXpmpzlvpfliLDpq5jmlYjnmoTlpITn kIbvvIzor7fkuIrmiqXmlYXpmpzliLA6ICRWUGxhdOaKgOacr+aUr+aMgeOAgg0KDQoNCuiKpuW/ l+aciyBsdXpoaXBlbmcNCg0KDQoNCg0KDQoNCklU5byA5Y+R5bel56iL5biIIElUIERldmVsb3Bt ZW50CkVuZ2luZWVyDQrmk43kvZzns7vnu5/kuqflk4Hpg6gv5Lit5b+D56CU56m26ZmiL+ezu+e7 n+S6p+WTgSBPUyBQcm9kdWN0IERlcHQuL0NlbnRyYWwgUu+8hkQgSW5zdGl0dXRlL1N5c3RlbSBQ cm9kdWN0DQoNCg0KDQoNCg0KDQoNCg0KDQrlm5vlt53nnIHmiJDpg73luILlpKnlupzlpKfpgZPk uK3mrrU4MDDlj7cNCkU6IGx1LnpoaXBlbmdAenRlLmNvbS5jbiANCnd3dy56dGUuY29tLmNuDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCuWOn+Wni+mCruS7tg0KDQoNCg0K5Y+R5Lu25Lq677yaIDxtZHJv dGhAbGludXgudm5ldC5pYm0uY29tPjsNCuaUtuS7tuS6uu+8muiKpuW/l+acizEwMTA4MjcyOw0K 5oqE6YCB5Lq677yaIDxxZW11LWRldmVsQG5vbmdudS5vcmc+Ow0K5pelIOacnyDvvJoyMDE35bm0 MTHmnIgxNOaXpSAwNzo1Nw0K5Li7IOmimCDvvJpSZTog562U5aSNOiBSZTogW1BBVENIIHYyXSBx Z2E6IHJlcGxhY2UgR2V0SWZFbnRyeQ0KDQoNClF1b3RpbmcgbHUuemhpcGVuZ0B6dGUuY29tLmNu ICgyMDE3LTExLTA5IDA1OjI2OjE1KQ0KPiAgaSB0aGluayB0aGUgY29kZSBpcyBiZXR0ZXINCj4g DQo+ICBpZiAoT1N2ZXIuZHdNYWpvclZlcnNpb24gPj0gNikgew0KPiAgICAgICBNSUJfSUZfUk9X MiBhTWliX2lmcm93Ow0KPiAgICAgICB0eXBlZGVmIE5FVElPQVBJX0FQSSAoV0lOQVBJICpnZXRp ZmVudHJ5Ml90KShQTUlCX0lGX1JPVzIgUm93KTsNCj4gICAgICAgbWVtc2V0KCZhTWliX2lmcm93 LCAwLCBzaXplb2YoYU1pYl9pZnJvdykpOw0KPiAgICAgICBhTWliX2lmcm93LkludGVyZmFjZUlu ZGV4ID0gbmljSWQ7DQo+ICAgICAgIEhNT0RVTEUgbW9kdWxlID0gR2V0TW9kdWxlSGFuZGxlKCJp cGhscGFwaSIpOw0KPiAgICAgICBQVk9JRCBmdW4gPSBHZXRQcm9jQWRkcmVzcyhtb2R1bGUsICJH ZXRJZkVudHJ5MiIpOw0KPiAgICAgICBpZiAoZnVuID09IE5VTEwpIHsNCj4gICAgICAgICAgIGVy cm9yX3NldGcoZXJycCwgUUVSUl9RR0FfQ09NTUFORF9GQUlMRUQsDQo+ICAgICAgICAgICAgICAg ICAgICAgICJGYWlsZWQgdG8gZ2V0IGFkZHJlc3Mgb2YgR2V0SWZFbnRyeTIiKTsNCj4gICAgICAg ICAgIHJldHVybiBOVUxMOw0KPiAgICAgICB9DQo+ICAgICBnZXRpZmVudHJ5Ml90IGdldGlmZW50 cnkyX2V4ID0gKGdldGlmZW50cnkyX3QpZnVuOw0KPiAgICAgaWYgKE5PX0VSUk9SID09IGdldGlm ZW50cnkyX2V4KCZhTWliX2lmcm93KSl7DQo+ICAgICB9DQoNCkkndmUgdXBkYXRlZCB0aGUgcGF0 Y2ggd2l0aCB0aGlzIGNoYW5nZToNCiAgaHR0cHM6Ly9naXRodWIuY29tL21kcm90aC9xZW11L2Nv bW1pdHMvcWdhLWlmLXN0YXRzDQoNCkJ1dCBJJ20gYSBiaXQgY29uZnVzZWQgbm93OiB3aGVuIEkg dHJpZWQgdG8gdGVzdCB0aGlzIG9uIFhQIEkgcmVhbGl6ZWQgdGhhdA0KdGhhdCBxZW11LWdhIG5v IGxvbmdlciB3b3JrcyBvbiBYUCwgYW5kIGdlbmVyYXRlcyB0aGUgZm9sbG93aW5nIGVycm9yDQp3 aGVuIEkgdHJ5IHRvIHN0YXJ0IGl0IChldmVuIHdpdGhvdXQgeW91ciBzdGF0cyBwYXRjaCk6DQoN CiAgIlRoZSBwcm9jZWR1cmUgZW50cnkgcG9pbnQgQWNxdWlyZVNSV0xvY2tFeGNsdXNpdmUgY291 bGQgbm90IGJlIGxvY2F0ZWQNCiAgIGluIHRoZSBkeW5hbWljIGxpbmsgbGlicmFyeSBLRVJORUwz Mi5kbGwiDQoNCkkgdGhpbmsgdGhpcyBtYXkgYmUgZHVlIHRvIHRoZSBmb2xsb3dpbmcgY29tbWl0 LCB3aGljaCBub3RlcyB0aGF0IFZpc3RhKw0KYXJlIG5vdyByZXF1aXJlZCBhcyBhIHJlc3VsdDoN Cg0KY29tbWl0IDEyZjhkZWYwZTAyMjMyZDdjNjQxNmFkOWI2NjY0MGY5NzNjNTMxZDENCkF1dGhv cjogQW5kcmV5IFNoZWRlbCA8YXNoZWRlbEBtaWNyb3NvZnQuY29tPg0KRGF0ZTogICBGcmkgTWFy IDI0IDE1OjAxOjQxIDIwMTcgLTA3MDANCg0KICAgIHdpbjMyOiByZXBsYWNlIGN1c3RvbSBtdXRl eCBhbmQgY29uZGl0aW9uIHZhcmlhYmxlIHdpdGggbmF0aXZlDQogICAgcHJpbWl0aXZlcw0KDQpT bywgYXJlIHlvdSBhY3R1YWxseSBhYmxlIHRvIHJ1biBvbiBYUCBjdXJyZW50bHk/IElmIHNvLCBo b3c/IEFuZCBpZg0Kbm90LCBJIHRoaW5rIHdlIGhhdmUgb3RoZXIgaXNzdWVzIHRoYXQgbmVlZCB0 byBiZSBhZGRyZXNzZWQgaWYgd2UNCndhbnQgdG8gc3VwcG9ydCBYUCBzdGlsbDsgSSdtIG5vdCBl dmVuIHN1cmUgdGhhdCdzIHJlYWxpc3RpYyBhdCB0aGlzDQpwb2ludC4NCg0KVW5sZXNzIHRoZXJl J3MgYWN0dWFsbHkgYSB3YXkgdG8gdGVzdCBRR0Egb24gWFAgcmlnaHQgbm93IEkgdGhpbmsgSQ0K d2Ugc2hvdWxkIGp1c3QgZ2V0IGluIHRoZSB1cGRhdGVkIHBhdGNoIG1pbnVzIHRoZSBkeW5hbWlj IERMTCBzdHVmZiwNCmkuZS46DQogIGh0dHBzOi8vZ2l0aHViLmNvbS9tZHJvdGgvcWVtdS9jb21t aXQvZGU1OTdhOGIyNzcyMmNlNGY5Y2M2NjBmOTMwZjdkY2NjNzEyNzEyZA0KDQpNYWtlIHNlbnNl Pw0KDQo+IA0KPiANCj4gDQo+IA0KPiANCj4g5Li65LqG6K6p5oKo55qEVlBsYXTomZrmi5/mnLrm lYXpmpzlkoxkb2NrZXLmlYXpmpzlvpfliLDpq5jmlYjnmoTlpITnkIbvvIzor7fkuIrmiqXmlYXp mpzliLA6ICRWUGxhdOaKgOacr+aUrw0KPiDmjIHjgIINCj4gDQo+IOiKpuW/l+aciyBsdXpoaXBl bmcNCj4gDQo+IA0KPiBJVOW8gOWPkeW3peeoi+W4iCBJVCBEZXZlbG9wbWVudCBFbmdpbmVlcg0K PiDmk43kvZzns7vnu5/kuqflk4Hpg6gv5Lit5b+D56CU56m26ZmiL+ezu+e7n+S6p+WTgSBPUyBQ cm9kdWN0IERlcHQuL0NlbnRyYWwgUu+8hkQgSW5zdGl0dXRlLw0KPiBTeXN0ZW0gUHJvZHVjdA0K PiANCj4gDQo+IFtjaWRdICAgICAgICAgIFtjaWRdDQo+ICAgICAgICAgICAgICAgIOWbm+W3neec geaIkOmDveW4guWkqeW6nOWkp+mBk+S4reautTgwMOWPtw0KPiAgICAgICAgICAgICAgICBFOiBs dS56aGlwZW5nQHp0ZS5jb20uY24NCj4gICAgICAgICAgICAgICAgd3d3Lnp0ZS5jb20uY24NCj4g DQo+IOWOn+Wni+mCruS7tg0KPiDlj5Hku7bkurrvvJroiqblv5fmnIsxMDEwODI3Mg0KPiDmlLbk u7bkurrvvJogPG1kcm90aEBsaW51eC52bmV0LmlibS5jb20+Ow0KPiDmioTpgIHkurrvvJogPHFl bXUtZGV2ZWxAbm9uZ251Lm9yZz47DQo+IOaXpeacn++8mjIwMTflubQxMeaciDA45pelIDEwOjU0 DQo+IOS4u+mimO+8muetlOWkjTogUmU6IFtQQVRDSCB2Ml0gcWdhOiByZXBsYWNlIEdldElmRW50 cnkNCj4gDQo+IA0KPiA+SSBoYXZlIHRoZSBtb2RpZmllZCBwYXRjaCBzdGFnZWQgaGVyZToNCj4g DQo+ID4gIGh0dHBzOi8vZ2l0aHViLmNvbS9tZHJvdGgvcWVtdS9jb21taXQvDQo+IGRlNTk3YThi Mjc3MjJjZTRmOWNjNjYwZjkzMGY3ZGNjYzcxMjcxMmQNCj4gPkxldCBtZSBrbm93IGlmIGl0IGxv b2tzIG9rYXkgYW5kIEknbGwgc2VuZCBhIHB1bGwgcmVxdWVzdCBmb3IgcmMxDQo+IA0KPiAgDQo+ IA0KPiB0aGUgY29kZSByaWdodCwgYnV0IHJ1bm5pbmcgUUdBIG9uIHRoZSBXaW5kb3dzIFhQLCBl cnJvcjogY2FuIG5vdCBmaW5kIHRoZSBsaW5rDQo+IHRvICBHZXRJZkVudHJ5MiBpbiBpcGhscGFw aS5ETEwuDQo+IA0KPiANCj4gDQo+IA0KPiDkuLrkuoborqnmgqjnmoRWUGxhdOiZmuaLn+acuuaV hemanOWSjGRvY2tlcuaVhemanOW+l+WIsOmrmOaViOeahOWkhOeQhu+8jOivt+S4iuaKpeaVhema nOWIsDogJFZQbGF05oqA5pyv5pSvDQo+IOaMgeOAgg0KPiANCj4g6Iqm5b+X5pyLIGx1emhpcGVu Zw0KPiANCj4gDQo+IElU5byA5Y+R5bel56iL5biIIElUIERldmVsb3BtZW50IEVuZ2luZWVyDQo+ IOaTjeS9nOezu+e7n+S6p+WTgemDqC/kuK3lv4PnoJTnqbbpmaIv57O757uf5Lqn5ZOBIE9TIFBy b2R1Y3QgRGVwdC4vQ2VudHJhbCBS77yGRCBJbnN0aXR1dGUvDQo+IFN5c3RlbSBQcm9kdWN0DQo+ IA0KPiANCj4gW2NpZF0gICAgICAgICAgW2NpZF0NCj4gICAgICAgICAgICAgICAg5Zub5bed55yB 5oiQ6YO95biC5aSp5bqc5aSn6YGT5Lit5q61ODAw5Y+3DQo+ICAgICAgICAgICAgICAgIEU6IGx1 LnpoaXBlbmdAenRlLmNvbS5jbg0KPiAgICAgICAgICAgICAgICB3d3cuenRlLmNvbS5jbg0KPiAN Cj4gDQo+IOWPkeS7tuS6uu+8miA8bWRyb3RoQGxpbnV4LnZuZXQuaWJtLmNvbT47DQo+IOaUtuS7 tuS6uu+8muiKpuW/l+acizEwMTA4MjcyOw0KPiDmioTpgIHkurrvvJogPHFlbXUtZGV2ZWxAbm9u Z251Lm9yZz476Iqm5b+X5pyLMTAxMDgyNzI7DQo+IOaXpeacn++8mjIwMTflubQxMeaciDA45pel IDAxOjA3DQo+IOS4u+mimO+8mlJlOiBbUEFUQ0ggdjJdIHFnYTogcmVwbGFjZSBHZXRJZkVudHJ5 DQo+IA0KPiANCj4gUXVvdGluZyBaaGlQZW5nIEx1ICgyMDE3LTExLTAzIDA5OjU0OjIwKQ0KPiA+ DQo+ICBUaGUgZGF0YSBvYnRhaW5lZCBieSBHZXRJZkVudHJ5IGlzIDMyIGJpdHMsIGFuZCBpdCBt YXkgb3ZlcmZsb3cuIFRodXMgdXNpbmcgR2V0SWZFbnRyeTIgaW5zdGVhZCBvZiBHZXRJZkVudHJ5 Lg0KPiA+IA0KPiA+IFNpZ25lZC1vZmYtYnk6IFpoaVBlbmcgTHUgPGx1LnpoaXBlbmdAenRlLmNv bS5jbj4NCj4gPiAtLS0NCj4gPiAgcWdhL2NvbW1hbmRzLXdpbjMyLmMgfCAzMSArKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25z KCspLCAxMyBkZWxldGlvbnMoLSkNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvcWdhL2NvbW1hbmRz LXdpbjMyLmMgYi9xZ2EvY29tbWFuZHMtd2luMzIuYw0KPiA+IGluZGV4IDAzMjIxODguLmQwOTZk YzIgMTAwNjQ0DQo+ID4gLS0tIGEvcWdhL2NvbW1hbmRzLXdpbjMyLmMNCj4gPiArKysgYi9xZ2Ev Y29tbWFuZHMtd2luMzIuYw0KPiA+IEBAIC0xMTczLDIwICsxMTczLDI1IEBAIHN0YXRpYyBpbnQg Z3Vlc3RfZ2V0X25ldHdvcmtfc3RhdHMoY29uc3QgY2hhciAqbmFtZSwNCj4gPiAgICAgICAgICAg ICAgICAgICAgICAgICBHdWVzdE5ldHdvcmtJbnRlcmZhY2VTdGF0ICpzdGF0cykNCj4gPiAgew0K PiA+ICAgICAgRFdPUkQgaWZfaW5kZXggPSAwOw0KPiA+IC0gICAgTUlCX0lGUk9XIGFfbWlkX2lm cm93Ow0KPiA+IC0gICAgbWVtc2V0KCZhX21pZF9pZnJvdywgMCwgc2l6ZW9mKGFfbWlkX2lmcm93 KSk7DQo+ID4gKyAgICBPU1ZFUlNJT05JTkZPIE9TdmVyOw0KPiA+ICAgICAgaWZfaW5kZXggPSBn ZXRfaW50ZXJmYWNlX2luZGV4KG5hbWUpOw0KPiA+IC0gICAgYV9taWRfaWZyb3cuZHdJbmRleCA9 IGlmX2luZGV4Ow0KPiA+IC0gICAgaWYgKE5PX0VSUk9SID09IEdldElmRW50cnkoJmFfbWlkX2lm cm93KSkgew0KPiA+IC0gICAgICAgIHN0YXRzLT5yeF9ieXRlcyA9IGFfbWlkX2lmcm93LmR3SW5P Y3RldHM7DQo+ID4gLSAgICAgICAgc3RhdHMtPnJ4X3BhY2tldHMgPSBhX21pZF9pZnJvdy5kd0lu VWNhc3RQa3RzOw0KPiA+IC0gICAgICAgIHN0YXRzLT5yeF9lcnJzID0gYV9taWRfaWZyb3cuZHdJ bkVycm9yczsNCj4gPiAtICAgICAgICBzdGF0cy0+cnhfZHJvcHBlZCA9IGFfbWlkX2lmcm93LmR3 SW5EaXNjYXJkczsNCj4gPiAtICAgICAgICBzdGF0cy0+dHhfYnl0ZXMgPSBhX21pZF9pZnJvdy5k d091dE9jdGV0czsNCj4gPiAtICAgICAgICBzdGF0cy0+dHhfcGFja2V0cyA9IGFfbWlkX2lmcm93 LmR3T3V0VWNhc3RQa3RzOw0KPiA+IC0gICAgICAgIHN0YXRzLT50eF9lcnJzID0gYV9taWRfaWZy b3cuZHdPdXRFcnJvcnM7DQo+ID4gLSAgICAgICAgc3RhdHMtPnR4X2Ryb3BwZWQgPSBhX21pZF9p ZnJvdy5kd091dERpc2NhcmRzOw0KPiA+IC0gICAgICAgIHJldHVybiAwOw0KPiA+ICsgICAgT1N2 ZXIuZHdPU1ZlcnNpb25JbmZvU2l6ZSA9IHNpemVvZihPU1ZFUlNJT05JTkZPKTsNCj4gPiArICAg IEdldFZlcnNpb25FeCgmT1N2ZXIpOw0KPiA+ICsgICAgaWYgKE9TdmVyLmR3TWFqb3JWZXJzaW9u ID49IDYpIHsNCj4gPiArICAgICAgICBNSUJfSUZfUk9XMiBhX21pZF9pZnJvdzsNCj4gPiArICAg ICAgICBtZW1zZXQoJmFfbWlkX2lmcm93LCAwLCBzaXplb2YoYV9taWRfaWZyb3cpKTsNCj4gPiAr ICAgICAgICBhX21pZF9pZnJvdy5kd0luZGV4ID0gaWZfaW5kZXg7DQo+ID4gKyAgICAgICAgaWYg KE5PX0VSUk9SID09IEdldElmRW50cnkyKCZhX21pZF9pZnJvdykpIHsNCj4gPiArICAgICAgICAg ICAgc3RhdHMtPnJ4X2J5dGVzID0gYV9taWRfaWZyb3cuZHdJbk9jdGV0czsNCj4gPiArICAgICAg ICAgICAgc3RhdHMtPnJ4X3BhY2tldHMgPSBhX21pZF9pZnJvdy5kd0luVWNhc3RQa3RzOw0KPiA+ ICsgICAgICAgICAgICBzdGF0cy0+cnhfZXJycyA9IGFfbWlkX2lmcm93LmR3SW5FcnJvcnM7DQo+ ID4gKyAgICAgICAgICAgIHN0YXRzLT5yeF9kcm9wcGVkID0gYV9taWRfaWZyb3cuZHdJbkRpc2Nh cmRzOw0KPiA+ICsgICAgICAgICAgICBzdGF0cy0+dHhfYnl0ZXMgPSBhX21pZF9pZnJvdy5kd091 dE9jdGV0czsNCj4gPiArICAgICAgICAgICAgc3RhdHMtPnR4X3BhY2tldHMgPSBhX21pZF9pZnJv dy5kd091dFVjYXN0UGt0czsNCj4gPiArICAgICAgICAgICAgc3RhdHMtPnR4X2VycnMgPSBhX21p ZF9pZnJvdy5kd091dEVycm9yczsNCj4gPiArICAgICAgICAgICAgc3RhdHMtPnR4X2Ryb3BwZWQg PSBhX21pZF9pZnJvdy5kd091dERpc2NhcmRzOw0KPiA+ICsgICAgICAgICAgICByZXR1cm4gMDsN Cj4gDQo+IFRoaXMgZmFpbHMgdG8gYnVpbGQgaW4gbXkgZmMyMCBtaW5ndzY0IGVudmlyb25tZW50 Og0KPiANCj4gL2hvbWUvbWRyb3RoL3cvcWVtdTQuZ2l0L3FnYS8NCj4gY29tbWFuZHMtd2luMzIu YzoxMTg0OjIwOiBlcnJvcjogJ01JQl9JRl9ST1cyJyBoYXMgbm8gbWVtYmVyIG5hbWVkICdkd0lu ZGV4Jw0KPiAgICAgICAgICBhX21pZF9pZnJvdy5kd0luZGV4ID0gaWZfaW5kZXg7DQo+ICAgICAg ICAgICAgICAgICAgICAgXg0KPiAvaG9tZS9tZHJvdGgvdy9xZW11NC5naXQvcWdhLw0KPiBjb21t YW5kcy13aW4zMi5jOjExODY6NDI6IGVycm9yOiAnTUlCX0lGX1JPVzInIGhhcyBubyBtZW1iZXIg bmFtZWQgJ2R3SW5PY3RldHMnDQo+ICAgICAgICAgICAgICBzdGF0cy0+cnhfYnl0ZXMgPSBhX21p ZF9pZnJvdy5kd0luT2N0ZXRzOw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeDQo+IC9ob21lL21kcm90aC93L3FlbXU0LmdpdC9xZ2EvDQo+IGNvbW1hbmRzLXdp bjMyLmM6MTE4Nzo0NDogZXJyb3I6ICdNSUJfSUZfUk9XMicgaGFzIG5vIG1lbWJlciBuYW1lZCAn ZHdJblVjYXN0UGt0cycNCj4gICAgICAgICAgICAgIHN0YXRzLT5yeF9wYWNrZXRzID0gYV9taWRf aWZyb3cuZHdJblVjYXN0UGt0czsNCj4gDQo+IGV0YyAuLi4NCj4gDQo+IFRoZSBwYXRjaCBzZWVt cyB0byBhc3N1bWUgTUlCX0lGUk9XIGFuZCBNSUJfSUZfUk9XMiBoYXZlIHRoZSBzYW1lIGZpZWxk IG5hbWVzDQo+IGZvciB0aGUgc3RhdHMsIGJ1dCBhY2NvcmRpbmcgdG8gdGhpcyB0aGV5J3JlIHNs aWdodGx5IGRpZmZlcmVudDoNCj4gDQo+ICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4t dXMvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3AvYWE4MTQ0OTEodj0NCj4gdnMuODUpLmFzcHgNCj4g DQo+IFRoaXMgY2hhbmdlIG9uIHRvcCBvZiB5b3VyIHBhdGNoIHNlZW1zIHRvIHdvcms6DQo+IA0K PiBkaWZmIC0tZ2l0IGEvcWdhL2NvbW1hbmRzLXdpbjMyLmMgYi9xZ2EvY29tbWFuZHMtd2luMzIu Yw0KPiBpbmRleCBlMTdmYzNjMjg0Li41OGU0NzA4NzdmIDEwMDY0NA0KPiAtLS0gYS9xZ2EvY29t bWFuZHMtd2luMzIuYw0KPiArKysgYi9xZ2EvY29tbWFuZHMtd2luMzIuYw0KPiBAQCAtMTE4MSwx NiArMTE4MSwxNiBAQCBzdGF0aWMgaW50IGd1ZXN0X2dldF9uZXR3b3JrX3N0YXRzKGNvbnN0IGNo YXIgKm5hbWUsDQo+ICAgICAgaWYgKG9zX3Zlci5kd01ham9yVmVyc2lvbiA+PSA2KSB7DQo+ICAg ICAgICAgIE1JQl9JRl9ST1cyIGFfbWlkX2lmcm93Ow0KPiAgICAgICAgICBtZW1zZXQoJmFfbWlk X2lmcm93LCAwLCBzaXplb2YoYV9taWRfaWZyb3cpKTsNCj4gLSAgICAgICAgYV9taWRfaWZyb3cu ZHdJbmRleCA9IGlmX2luZGV4Ow0KPiArICAgICAgICBhX21pZF9pZnJvdy5JbnRlcmZhY2VJbmRl eCA9IGlmX2luZGV4Ow0KPiAgICAgICAgICBpZiAoTk9fRVJST1IgPT0gR2V0SWZFbnRyeTIoJmFf bWlkX2lmcm93KSkgew0KPiAtICAgICAgICAgICAgc3RhdHMtPnJ4X2J5dGVzID0gYV9taWRfaWZy b3cuZHdJbk9jdGV0czsNCj4gLSAgICAgICAgICAgIHN0YXRzLT5yeF9wYWNrZXRzID0gYV9taWRf aWZyb3cuZHdJblVjYXN0UGt0czsNCj4gLSAgICAgICAgICAgIHN0YXRzLT5yeF9lcnJzID0gYV9t aWRfaWZyb3cuZHdJbkVycm9yczsNCj4gLSAgICAgICAgICAgIHN0YXRzLT5yeF9kcm9wcGVkID0g YV9taWRfaWZyb3cuZHdJbkRpc2NhcmRzOw0KPiAtICAgICAgICAgICAgc3RhdHMtPnR4X2J5dGVz ID0gYV9taWRfaWZyb3cuZHdPdXRPY3RldHM7DQo+IC0gICAgICAgICAgICBzdGF0cy0+dHhfcGFj a2V0cyA9IGFfbWlkX2lmcm93LmR3T3V0VWNhc3RQa3RzOw0KPiAtICAgICAgICAgICAgc3RhdHMt PnR4X2VycnMgPSBhX21pZF9pZnJvdy5kd091dEVycm9yczsNCj4gLSAgICAgICAgICAgIHN0YXRz LT50eF9kcm9wcGVkID0gYV9taWRfaWZyb3cuZHdPdXREaXNjYXJkczsNCj4gKyAgICAgICAgICAg IHN0YXRzLT5yeF9ieXRlcyA9IGFfbWlkX2lmcm93LkluT2N0ZXRzOw0KPiArICAgICAgICAgICAg c3RhdHMtPnJ4X3BhY2tldHMgPSBhX21pZF9pZnJvdy5JblVjYXN0UGt0czsNCj4gKyAgICAgICAg ICAgIHN0YXRzLT5yeF9lcnJzID0gYV9taWRfaWZyb3cuSW5FcnJvcnM7DQo+ICsgICAgICAgICAg ICBzdGF0cy0+cnhfZHJvcHBlZCA9IGFfbWlkX2lmcm93LkluRGlzY2FyZHM7DQo+ICsgICAgICAg ICAgICBzdGF0cy0+dHhfYnl0ZXMgPSBhX21pZF9pZnJvdy5PdXRPY3RldHM7DQo+ICsgICAgICAg ICAgICBzdGF0cy0+dHhfcGFja2V0cyA9IGFfbWlkX2lmcm93Lk91dFVjYXN0UGt0czsNCj4gKyAg ICAgICAgICAgIHN0YXRzLT50eF9lcnJzID0gYV9taWRfaWZyb3cuT3V0RXJyb3JzOw0KPiArICAg ICAgICAgICAgc3RhdHMtPnR4X2Ryb3BwZWQgPSBhX21pZF9pZnJvdy5PdXREaXNjYXJkczsNCj4g ICAgICAgICAgICAgIHJldHVybiAwOw0KPiAgICAgICAgICB9DQo+ICAgICAgfQ0KPiANCj4gSSBo YXZlIHRoZSBtb2RpZmllZCBwYXRjaCBzdGFnZWQgaGVyZToNCj4gDQo+ICAgaHR0cHM6Ly9naXRo dWIuY29tL21kcm90aC9xZW11L2NvbW1pdC8NCj4gZGU1OTdhOGIyNzcyMmNlNGY5Y2M2NjBmOTMw ZjdkY2NjNzEyNzEyZA0KPiANCj4gTGV0IG1lIGtub3cgaWYgaXQgbG9va3Mgb2theSBhbmQgSSds bCBzZW5kIGEgcHVsbCByZXF1ZXN0IGZvciByYzENCj4gDQo+ID4gKyAgICAgICAgfQ0KPiA+ICAg ICAgfQ0KPiA+ICAgICAgcmV0dXJuIC0xOw0KPiA+ICB9DQo+ID4gLS0gDQo+ID4gMS44LjMuMQ0K PiA+IA0KPiANCj4=
Quoting lu.zhipeng@zte.com.cn (2017-11-14 05:09:35)
> i test the latest qga in xp , it run ok .
>
>
> my qga config :
>
> Configured with: './configure' '--enable-guest-agent' '--cross-prefix=
> x86_64-w64-mingw32-' '--with-vss-sdk=/home/VSSSDK72' '--disable-fdt'
> '--target-list=x86_64-softmmu'
Hmm, so you're testing with Windows XP x64? I was using XP 32-bit (SP3),
but I retried with XP x64 (SP2) and I still have the same issue.
I can only get qemu-ga working if I build on top of something prior to
commit 12f8def0e.
What build environment are you using? I've tried Fedora Core 18 and 20
and have the same issue with both.
>
> used qga version info
>
> [root@ceshi qemu]# git log
>
> commit 533ab83ea074d5fc457769f6ac698524a12f1156
>
> Author: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
>
> Date: Fri Nov 10 10:17:14 2017 +0800
>
>
> qga: fix some errors for guest_get_network_stats
>
>
>
> fix some erros:
>
> 1.if building qga on Windows Vista/2008 and newer,
>
> it cann't find the link to GetIfEntry2 in windows xp.
>
> 2. check valid of if_index.
>
>
>
> Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
>
>
> commit de597a8b27722ce4f9cc660f930f7dccc712712d
>
> Author: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
>
> Date: Fri Nov 3 22:54:20 2017 +0800
>
>
> qga: replace GetIfEntry
>
>
>
> The data obtained by GetIfEntry is 32 bits, and it may overflow. Thus using
> GetIfEntry2 instead of GetIfEntry.
>
>
>
> Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
>
> *avoid CamelCase variable names
>
> *update field names for MIB_IFROW -> MIB_IF_ROW2
>
> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
>
>
> commit 5ca7a3cba468736cfe555887af1f6ba754f6eac9
>
> Merge: a4f0537 10a7b7e
>
> Author: Peter Maydell <peter.maydell@linaro.org>
>
> Date: Tue Nov 7 14:43:35 2017 +0000
>
>
> Merge remote-tracking branch 'remotes/berrange/tags/pull-2017-11-06-2' into
> staging
>
>
>
> Pull IO 2017/11/06 v2
>
>
>
>
> 为了让您的VPlat虚拟机故障和docker故障得到高效的处理,请上报故障到: $VPlat技术支
> 持。
>
> 芦志朋 luzhipeng
>
>
> IT开发工程师 IT Development Engineer
> 操作系统产品部/中心研究院/系统产品 OS Product Dept./Central R&D Institute/
> System Product
>
>
> [cid] [cid]
> 四川省成都市天府大道中段800号
> E: lu.zhipeng@zte.com.cn
> www.zte.com.cn
>
> 原始邮件
> 发件人: <mdroth@linux.vnet.ibm.com>;
> 收件人:芦志朋10108272;
> 抄送人: <qemu-devel@nongnu.org>;
> 日期:2017年11月14日 07:57
> 主题:Re: 答复: Re: [PATCH v2] qga: replace GetIfEntry
> Quoting lu.zhipeng@zte.com.cn (2017-11-09 05:26:15)
> > i think the code is better
> >
> > if (OSver.dwMajorVersion >= 6) {
> > MIB_IF_ROW2 aMib_ifrow;
> > typedef NETIOAPI_API (WINAPI *getifentry2_t)(PMIB_IF_ROW2 Row);
> > memset(&aMib_ifrow, 0, sizeof(aMib_ifrow));
> > aMib_ifrow.InterfaceIndex = nicId;
> > HMODULE module = GetModuleHandle("iphlpapi");
> > PVOID fun = GetProcAddress(module, "GetIfEntry2");
> > if (fun == NULL) {
> > error_setg(errp, QERR_QGA_COMMAND_FAILED,
> > "Failed to get address of GetIfEntry2");
> > return NULL;
> > }
> > getifentry2_t getifentry2_ex = (getifentry2_t)fun;
> > if (NO_ERROR == getifentry2_ex(&aMib_ifrow)){
> > }
>
> I've updated the patch with this change:
> https://github.com/mdroth/qemu/commits/qga-if-stats
>
> But I'm a bit confused now: when I tried to test this on XP I realized that
> that qemu-ga no longer works on XP, and generates the following error
> when I try to start it (even without your stats patch):
>
> "The procedure entry point AcquireSRWLockExclusive could not be located
> in the dynamic link library KERNEL32.dll"
>
> I think this may be due to the following commit, which notes that Vista+
> are now required as a result:
>
> commit 12f8def0e02232d7c6416ad9b66640f973c531d1
> Author: Andrey Shedel <ashedel@microsoft.com>
> Date: Fri Mar 24 15:01:41 2017 -0700
>
> win32: replace custom mutex and condition variable with native
> primitives
>
> So, are you actually able to run on XP currently? If so, how? And if
> not, I think we have other issues that need to be addressed if we
> want to support XP still; I'm not even sure that's realistic at this
> point.
>
> Unless there's actually a way to test QGA on XP right now I think I
> we should just get in the updated patch minus the dynamic DLL stuff,
> i.e.:
> https://github.com/mdroth/qemu/commit/
> de597a8b27722ce4f9cc660f930f7dccc712712d
>
> Make sense?
>
> >
> >
> >
> >
> >
> > 为了让您的VPlat虚拟机故障和docker故障得到高效的处理,请上报故障到: $VPlat技术
> 支
> > 持。
> >
> > 芦志朋 luzhipeng
> >
> >
> > IT开发工程师 IT Development Engineer
> > 操作系统产品部/中心研究院/系统产品 OS Product Dept./Central R&D Institute/
> > System Product
> >
> >
> > [cid] [cid]
> > 四川省成都市天府大道中段800号
> > E: lu.zhipeng@zte.com.cn
> > www.zte.com.cn
> >
> > 原始邮件
> > 发件人:芦志朋10108272
> > 收件人: <mdroth@linux.vnet.ibm.com>;
> > 抄送人: <qemu-devel@nongnu.org>;
> > 日期:2017年11月08日 10:54
> > 主题:答复: Re: [PATCH v2] qga: replace GetIfEntry
> >
> >
> > >I have the modified patch staged here:
> >
> > > https://github.com/mdroth/qemu/commit/
> > de597a8b27722ce4f9cc660f930f7dccc712712d
> > >Let me know if it looks okay and I'll send a pull request for rc1
> >
> >
> >
> >
> the code right, but running QGA on the Windows XP, error: can not find the link
> > to GetIfEntry2 in iphlpapi.DLL.
> >
> >
> >
> >
> > 为了让您的VPlat虚拟机故障和docker故障得到高效的处理,请上报故障到: $VPlat技术
> 支
> > 持。
> >
> > 芦志朋 luzhipeng
> >
> >
> > IT开发工程师 IT Development Engineer
> > 操作系统产品部/中心研究院/系统产品 OS Product Dept./Central R&D Institute/
> > System Product
> >
> >
> > [cid] [cid]
> > 四川省成都市天府大道中段800号
> > E: lu.zhipeng@zte.com.cn
> > www.zte.com.cn
> >
> >
> > 发件人: <mdroth@linux.vnet.ibm.com>;
> > 收件人:芦志朋10108272;
> > 抄送人: <qemu-devel@nongnu.org>;芦志朋10108272;
> > 日期:2017年11月08日 01:07
> > 主题:Re: [PATCH v2] qga: replace GetIfEntry
> >
> >
> > Quoting ZhiPeng Lu (2017-11-03 09:54:20)
> > >
> >
> The data obtained by GetIfEntry is 32 bits, and it may overflow. Thus using GetIfEntry2 instead of GetIfEntry.
> > >
> > > Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
> > > ---
> > > qga/commands-win32.c | 31 ++++++++++++++++++-------------
> > > 1 file changed, 18 insertions(+), 13 deletions(-)
> > >
> > > diff --git a/qga/commands-win32.c b/qga/commands-win32.c
> > > index 0322188..d096dc2 100644
> > > --- a/qga/commands-win32.c
> > > +++ b/qga/commands-win32.c
> > > @@ -1173,20 +1173,25 @@ static int guest_get_network_stats
> (const char *name,
> > > GuestNetworkInterfaceStat *stats)
> > > {
> > > DWORD if_index = 0;
> > > - MIB_IFROW a_mid_ifrow;
> > > - memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
> > > + OSVERSIONINFO OSver;
> > > if_index = get_interface_index(name);
> > > - a_mid_ifrow.dwIndex = if_index;
> > > - if (NO_ERROR == GetIfEntry(&a_mid_ifrow)) {
> > > - stats->rx_bytes = a_mid_ifrow.dwInOctets;
> > > - stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> > > - stats->rx_errs = a_mid_ifrow.dwInErrors;
> > > - stats->rx_dropped = a_mid_ifrow.dwInDiscards;
> > > - stats->tx_bytes = a_mid_ifrow.dwOutOctets;
> > > - stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
> > > - stats->tx_errs = a_mid_ifrow.dwOutErrors;
> > > - stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
> > > - return 0;
> > > + OSver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
> > > + GetVersionEx(&OSver);
> > > + if (OSver.dwMajorVersion >= 6) {
> > > + MIB_IF_ROW2 a_mid_ifrow;
> > > + memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
> > > + a_mid_ifrow.dwIndex = if_index;
> > > + if (NO_ERROR == GetIfEntry2(&a_mid_ifrow)) {
> > > + stats->rx_bytes = a_mid_ifrow.dwInOctets;
> > > + stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> > > + stats->rx_errs = a_mid_ifrow.dwInErrors;
> > > + stats->rx_dropped = a_mid_ifrow.dwInDiscards;
> > > + stats->tx_bytes = a_mid_ifrow.dwOutOctets;
> > > + stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
> > > + stats->tx_errs = a_mid_ifrow.dwOutErrors;
> > > + stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
> > > + return 0;
> >
> > This fails to build in my fc20 mingw64 environment:
> >
> > /home/mdroth/w/qemu4.git/qga/
> > commands-win32.c:1184:20: error: 'MIB_IF_ROW2' has no member named 'dwIndex'
> > a_mid_ifrow.dwIndex = if_index;
> > ^
> > /home/mdroth/w/qemu4.git/qga/
> >
> commands-win32.c:1186:42: error: 'MIB_IF_ROW2' has no member named 'dwInOctets'
> > stats->rx_bytes = a_mid_ifrow.dwInOctets;
> > ^
> > /home/mdroth/w/qemu4.git/qga/
> >
> commands-win32.c:1187:44: error: 'MIB_IF_ROW2' has no member named 'dwInUcastPkts'
> > stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> >
> > etc ...
> >
> > The patch seems to assume MIB_IFROW and MIB_IF_ROW2 have the same field names
> > for the stats, but according to this they're slightly different:
> >
> > https://msdn.microsoft.com/en-us/library/windows/desktop/aa814491(v=
> > vs.85).aspx
> >
> > This change on top of your patch seems to work:
> >
> > diff --git a/qga/commands-win32.c b/qga/commands-win32.c
> > index e17fc3c284..58e470877f 100644
> > --- a/qga/commands-win32.c
> > +++ b/qga/commands-win32.c
> > @@ -1181,16 +1181,16 @@ static int guest_get_network_stats(const char *name,
> > if (os_ver.dwMajorVersion >= 6) {
> > MIB_IF_ROW2 a_mid_ifrow;
> > memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
> > - a_mid_ifrow.dwIndex = if_index;
> > + a_mid_ifrow.InterfaceIndex = if_index;
> > if (NO_ERROR == GetIfEntry2(&a_mid_ifrow)) {
> > - stats->rx_bytes = a_mid_ifrow.dwInOctets;
> > - stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> > - stats->rx_errs = a_mid_ifrow.dwInErrors;
> > - stats->rx_dropped = a_mid_ifrow.dwInDiscards;
> > - stats->tx_bytes = a_mid_ifrow.dwOutOctets;
> > - stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
> > - stats->tx_errs = a_mid_ifrow.dwOutErrors;
> > - stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
> > + stats->rx_bytes = a_mid_ifrow.InOctets;
> > + stats->rx_packets = a_mid_ifrow.InUcastPkts;
> > + stats->rx_errs = a_mid_ifrow.InErrors;
> > + stats->rx_dropped = a_mid_ifrow.InDiscards;
> > + stats->tx_bytes = a_mid_ifrow.OutOctets;
> > + stats->tx_packets = a_mid_ifrow.OutUcastPkts;
> > + stats->tx_errs = a_mid_ifrow.OutErrors;
> > + stats->tx_dropped = a_mid_ifrow.OutDiscards;
> > return 0;
> > }
> > }
> >
> > I have the modified patch staged here:
> >
> > https://github.com/mdroth/qemu/commit/
> > de597a8b27722ce4f9cc660f930f7dccc712712d
> >
> > Let me know if it looks okay and I'll send a pull request for rc1
> >
> > > + }
> > > }
> > > return -1;
> > > }
> > > --
> > > 1.8.3.1
> > >
> >
> >
>
>
aSB1c2VkICB4cCAgdmVyc2lvbjoNCg0KDQp4cCBwcm9mZXNzaW9uYWwgMjAwMiBzZXJ2aWNlIHBh Y2sgMw0KDQoNCmJ1aWxkIGVudmlyb25tZW50OiANCg0KDQoNCg0Kcm9vdEBsb2NhbGhvc3QgcWVt dS0yLjUuMF0jIGNhdCAvZXRjL3JlZGhhdC1yZWxlYXNlIA0KDQpDZW50T1MgTGludXggcmVsZWFz ZSA3LjAuMTQwNiAoQ29yZSkgDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQrkuLrkuoborqnmgqjnmoRWUGxhdOiZmuaLn+acuuaVhemanOWSjGRvY2tlcuaV hemanOW+l+WIsOmrmOaViOeahOWkhOeQhu+8jOivt+S4iuaKpeaVhemanOWIsDogJFZQbGF05oqA 5pyv5pSv5oyB44CCDQoNCg0K6Iqm5b+X5pyLIGx1emhpcGVuZw0KDQoNCg0KDQoNCg0KSVTlvIDl j5Hlt6XnqIvluIggSVQgRGV2ZWxvcG1lbnQKRW5naW5lZXINCuaTjeS9nOezu+e7n+S6p+WTgemD qC/kuK3lv4PnoJTnqbbpmaIv57O757uf5Lqn5ZOBIE9TIFByb2R1Y3QgRGVwdC4vQ2VudHJhbCBS 77yGRCBJbnN0aXR1dGUvU3lzdGVtIFByb2R1Y3QNCg0KDQoNCg0KDQoNCg0KDQoNCuWbm+W3neec geaIkOmDveW4guWkqeW6nOWkp+mBk+S4reautTgwMOWPtw0KRTogbHUuemhpcGVuZ0B6dGUuY29t LmNuIA0Kd3d3Lnp0ZS5jb20uY24NCg0KDQoNCg0KDQoNCg0KDQoNCg0K5Y6f5aeL6YKu5Lu2DQoN Cg0KDQrlj5Hku7bkurrvvJogPG1kcm90aEBsaW51eC52bmV0LmlibS5jb20+Ow0K5pS25Lu25Lq6 77ya6Iqm5b+X5pyLMTAxMDgyNzI7DQrmioTpgIHkurrvvJogPHFlbXUtZGV2ZWxAbm9uZ251Lm9y Zz47DQrml6Ug5pyfIO+8mjIwMTflubQxMeaciDE15pelIDA5OjIyDQrkuLsg6aKYIO+8mlJlOiDn rZTlpI06IFJlOiDnrZTlpI06IFJlOiBbUEFUQ0ggdjJdIHFnYTogcmVwbGFjZSBHZXRJZkVudHJ5 DQoNCg0KUXVvdGluZyBsdS56aGlwZW5nQHp0ZS5jb20uY24gKDIwMTctMTEtMTQgMDU6MDk6MzUp DQo+ICBpIHRlc3QgdGhlIGxhdGVzdCBxZ2EgaW4geHAgLCBpdCBydW4gb2sgLg0KPiANCj4gDQo+ IG15IHFnYSBjb25maWcgOg0KPiANCj4gQ29uZmlndXJlZCB3aXRoOiAnLi9jb25maWd1cmUnICct LWVuYWJsZS1ndWVzdC1hZ2VudCcgJy0tY3Jvc3MtcHJlZml4PQ0KPiB4ODZfNjQtdzY0LW1pbmd3 MzItJyAnLS13aXRoLXZzcy1zZGs9L2hvbWUvVlNTU0RLNzInICctLWRpc2FibGUtZmR0JyAgICAg ICAgDQo+ICctLXRhcmdldC1saXN0PXg4Nl82NC1zb2Z0bW11Jw0KDQpIbW0sIHNvIHlvdSdyZSB0 ZXN0aW5nIHdpdGggV2luZG93cyBYUCB4NjQ/IEkgd2FzIHVzaW5nIFhQIDMyLWJpdCAoU1AzKSwN CmJ1dCBJIHJldHJpZWQgd2l0aCBYUCB4NjQgKFNQMikgYW5kIEkgc3RpbGwgaGF2ZSB0aGUgc2Ft ZSBpc3N1ZS4NCg0KSSBjYW4gb25seSBnZXQgcWVtdS1nYSB3b3JraW5nIGlmIEkgYnVpbGQgb24g dG9wIG9mIHNvbWV0aGluZyBwcmlvciB0bw0KY29tbWl0IDEyZjhkZWYwZS4NCg0KV2hhdCBidWls ZCBlbnZpcm9ubWVudCBhcmUgeW91IHVzaW5nPyBJJ3ZlIHRyaWVkIEZlZG9yYSBDb3JlIDE4IGFu ZCAyMA0KYW5kIGhhdmUgdGhlIHNhbWUgaXNzdWUgd2l0aCBib3RoLg0KDQo+IA0KPiB1c2VkIHFn YSB2ZXJzaW9uIGluZm8NCj4gDQo+IFtyb290QGNlc2hpIHFlbXVdIyBnaXQgbG9nDQo+IA0KPiBj b21taXQgNTMzYWI4M2VhMDc0ZDVmYzQ1Nzc2OWY2YWM2OTg1MjRhMTJmMTE1Ng0KPiANCj4gQXV0 aG9yOiBaaGlQZW5nIEx1IDxsdS56aGlwZW5nQHp0ZS5jb20uY24+DQo+IA0KPiBEYXRlOiAgIEZy aSBOb3YgMTAgMTA6MTc6MTQgMjAxNyArMDgwMA0KPiANCj4gDQo+ICAgICBxZ2E6IGZpeCBzb21l IGVycm9ycyBmb3IgZ3Vlc3RfZ2V0X25ldHdvcmtfc3RhdHMNCj4gDQo+ICAgICANCj4gDQo+ICAg ICBmaXggc29tZSBlcnJvczoNCj4gDQo+ICAgICAxLmlmIGJ1aWxkaW5nIHFnYSBvbiBXaW5kb3dz IFZpc3RhLzIwMDggYW5kIG5ld2VyLA0KPiANCj4gICAgIGl0IGNhbm4ndCBmaW5kIHRoZSBsaW5r IHRvIEdldElmRW50cnkyIGluIHdpbmRvd3MgeHAuDQo+IA0KPiAgICAgMi4gY2hlY2sgdmFsaWQg b2YgaWZfaW5kZXguDQo+IA0KPiAgICAgDQo+IA0KPiAgICAgU2lnbmVkLW9mZi1ieTogWmhpUGVu ZyBMdSA8bHUuemhpcGVuZ0B6dGUuY29tLmNuPg0KPiANCj4gDQo+IGNvbW1pdCBkZTU5N2E4YjI3 NzIyY2U0ZjljYzY2MGY5MzBmN2RjY2M3MTI3MTJkDQo+IA0KPiBBdXRob3I6IFpoaVBlbmcgTHUg PGx1LnpoaXBlbmdAenRlLmNvbS5jbj4NCj4gDQo+IERhdGU6ICAgRnJpIE5vdiAzIDIyOjU0OjIw IDIwMTcgKzA4MDANCj4gDQo+IA0KPiAgICAgcWdhOiByZXBsYWNlIEdldElmRW50cnkNCj4gDQo+ ICAgICANCj4gDQo+ICAgICBUaGUgZGF0YSBvYnRhaW5lZCBieSBHZXRJZkVudHJ5IGlzIDMyIGJp dHMsIGFuZCBpdCBtYXkgb3ZlcmZsb3cuIFRodXMgdXNpbmcNCj4gR2V0SWZFbnRyeTIgaW5zdGVh ZCBvZiBHZXRJZkVudHJ5Lg0KPiANCj4gICAgIA0KPiANCj4gICAgIFNpZ25lZC1vZmYtYnk6IFpo aVBlbmcgTHUgPGx1LnpoaXBlbmdAenRlLmNvbS5jbj4NCj4gDQo+ICAgICAqYXZvaWQgQ2FtZWxD YXNlIHZhcmlhYmxlIG5hbWVzDQo+IA0KPiAgICAgKnVwZGF0ZSBmaWVsZCBuYW1lcyBmb3IgTUlC X0lGUk9XIC0+IE1JQl9JRl9ST1cyDQo+IA0KPiAgICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBS b3RoIDxtZHJvdGhAbGludXgudm5ldC5pYm0uY29tPg0KPiANCj4gDQo+IGNvbW1pdCA1Y2E3YTNj YmE0Njg3MzZjZmU1NTU4ODdhZjFmNmJhNzU0ZjZlYWM5DQo+IA0KPiBNZXJnZTogYTRmMDUzNyAx MGE3YjdlDQo+IA0KPiBBdXRob3I6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJv Lm9yZz4NCj4gDQo+IERhdGU6ICAgVHVlIE5vdiA3IDE0OjQzOjM1IDIwMTcgKzAwMDANCj4gDQo+ IA0KPiAgICAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAncmVtb3Rlcy9iZXJyYW5nZS90 YWdzL3B1bGwtMjAxNy0xMS0wNi0yJyBpbnRvDQo+IHN0YWdpbmcNCj4gDQo+ICAgICANCj4gDQo+ ICAgICBQdWxsIElPIDIwMTcvMTEvMDYgdjINCj4gDQo+IA0KPiANCj4gDQo+IOS4uuS6huiuqeaC qOeahFZQbGF06Jma5ouf5py65pWF6Zqc5ZKMZG9ja2Vy5pWF6Zqc5b6X5Yiw6auY5pWI55qE5aSE 55CG77yM6K+35LiK5oql5pWF6Zqc5YiwOiAkVlBsYXTmioDmnK/mlK8NCj4g5oyB44CCDQo+IA0K PiDoiqblv5fmnIsgbHV6aGlwZW5nDQo+IA0KPiANCj4gSVTlvIDlj5Hlt6XnqIvluIggSVQgRGV2 ZWxvcG1lbnQgRW5naW5lZXINCj4g5pON5L2c57O757uf5Lqn5ZOB6YOoL+S4reW/g+eglOeptumZ oi/ns7vnu5/kuqflk4EgT1MgUHJvZHVjdCBEZXB0Li9DZW50cmFsIFLvvIZEIEluc3RpdHV0ZS8N Cj4gU3lzdGVtIFByb2R1Y3QNCj4gDQo+IA0KPiBbY2lkXSAgICAgICAgICBbY2lkXQ0KPiAgICAg ICAgICAgICAgICDlm5vlt53nnIHmiJDpg73luILlpKnlupzlpKfpgZPkuK3mrrU4MDDlj7cNCj4g ICAgICAgICAgICAgICAgRTogbHUuemhpcGVuZ0B6dGUuY29tLmNuDQo+ICAgICAgICAgICAgICAg IHd3dy56dGUuY29tLmNuDQo+IA0KPiDljp/lp4vpgq7ku7YNCj4g5Y+R5Lu25Lq677yaIDxtZHJv dGhAbGludXgudm5ldC5pYm0uY29tPjsNCj4g5pS25Lu25Lq677ya6Iqm5b+X5pyLMTAxMDgyNzI7 DQo+IOaKhOmAgeS6uu+8miA8cWVtdS1kZXZlbEBub25nbnUub3JnPjsNCj4g5pel5pyf77yaMjAx N+W5tDEx5pyIMTTml6UgMDc6NTcNCj4g5Li76aKY77yaUmU6IOetlOWkjTogUmU6IFtQQVRDSCB2 Ml0gcWdhOiByZXBsYWNlIEdldElmRW50cnkNCj4gUXVvdGluZyBsdS56aGlwZW5nQHp0ZS5jb20u Y24gKDIwMTctMTEtMDkgMDU6MjY6MTUpDQo+ID4gIGkgdGhpbmsgdGhlIGNvZGUgaXMgYmV0dGVy DQo+ID4gDQo+ID4gIGlmIChPU3Zlci5kd01ham9yVmVyc2lvbiA+PSA2KSB7DQo+ID4gICAgICAg TUlCX0lGX1JPVzIgYU1pYl9pZnJvdzsNCj4gPiAgICAgICB0eXBlZGVmIE5FVElPQVBJX0FQSSAo V0lOQVBJICpnZXRpZmVudHJ5Ml90KShQTUlCX0lGX1JPVzIgUm93KTsNCj4gPiAgICAgICBtZW1z ZXQoJmFNaWJfaWZyb3csIDAsIHNpemVvZihhTWliX2lmcm93KSk7DQo+ID4gICAgICAgYU1pYl9p ZnJvdy5JbnRlcmZhY2VJbmRleCA9IG5pY0lkOw0KPiA+ICAgICAgIEhNT0RVTEUgbW9kdWxlID0g R2V0TW9kdWxlSGFuZGxlKCJpcGhscGFwaSIpOw0KPiA+ICAgICAgIFBWT0lEIGZ1biA9IEdldFBy b2NBZGRyZXNzKG1vZHVsZSwgIkdldElmRW50cnkyIik7DQo+ID4gICAgICAgaWYgKGZ1biA9PSBO VUxMKSB7DQo+ID4gICAgICAgICAgIGVycm9yX3NldGcoZXJycCwgUUVSUl9RR0FfQ09NTUFORF9G QUlMRUQsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBnZXQgYWRkcmVzcyBv ZiBHZXRJZkVudHJ5MiIpOw0KPiA+ICAgICAgICAgICByZXR1cm4gTlVMTDsNCj4gPiAgICAgICB9 DQo+ID4gICAgIGdldGlmZW50cnkyX3QgZ2V0aWZlbnRyeTJfZXggPSAoZ2V0aWZlbnRyeTJfdClm dW47DQo+ID4gICAgIGlmIChOT19FUlJPUiA9PSBnZXRpZmVudHJ5Ml9leCgmYU1pYl9pZnJvdykp ew0KPiA+ICAgICB9DQo+IA0KPiBJJ3ZlIHVwZGF0ZWQgdGhlIHBhdGNoIHdpdGggdGhpcyBjaGFu Z2U6DQo+ICAgaHR0cHM6Ly9naXRodWIuY29tL21kcm90aC9xZW11L2NvbW1pdHMvcWdhLWlmLXN0 YXRzDQo+IA0KPiBCdXQgSSdtIGEgYml0IGNvbmZ1c2VkIG5vdzogd2hlbiBJIHRyaWVkIHRvIHRl c3QgdGhpcyBvbiBYUCBJIHJlYWxpemVkIHRoYXQNCj4gdGhhdCBxZW11LWdhIG5vIGxvbmdlciB3 b3JrcyBvbiBYUCwgYW5kIGdlbmVyYXRlcyB0aGUgZm9sbG93aW5nIGVycm9yDQo+IHdoZW4gSSB0 cnkgdG8gc3RhcnQgaXQgKGV2ZW4gd2l0aG91dCB5b3VyIHN0YXRzIHBhdGNoKToNCj4gDQo+ICAg IlRoZSBwcm9jZWR1cmUgZW50cnkgcG9pbnQgQWNxdWlyZVNSV0xvY2tFeGNsdXNpdmUgY291bGQg bm90IGJlIGxvY2F0ZWQNCj4gICAgaW4gdGhlIGR5bmFtaWMgbGluayBsaWJyYXJ5IEtFUk5FTDMy LmRsbCINCj4gDQo+IEkgdGhpbmsgdGhpcyBtYXkgYmUgZHVlIHRvIHRoZSBmb2xsb3dpbmcgY29t bWl0LCB3aGljaCBub3RlcyB0aGF0IFZpc3RhKw0KPiBhcmUgbm93IHJlcXVpcmVkIGFzIGEgcmVz dWx0Og0KPiANCj4gY29tbWl0IDEyZjhkZWYwZTAyMjMyZDdjNjQxNmFkOWI2NjY0MGY5NzNjNTMx ZDENCj4gQXV0aG9yOiBBbmRyZXkgU2hlZGVsIDxhc2hlZGVsQG1pY3Jvc29mdC5jb20+DQo+IERh dGU6ICAgRnJpIE1hciAyNCAxNTowMTo0MSAyMDE3IC0wNzAwDQo+IA0KPiAgICAgd2luMzI6IHJl cGxhY2UgY3VzdG9tIG11dGV4IGFuZCBjb25kaXRpb24gdmFyaWFibGUgd2l0aCBuYXRpdmUNCj4g ICAgIHByaW1pdGl2ZXMNCj4gDQo+IFNvLCBhcmUgeW91IGFjdHVhbGx5IGFibGUgdG8gcnVuIG9u IFhQIGN1cnJlbnRseT8gSWYgc28sIGhvdz8gQW5kIGlmDQo+IG5vdCwgSSB0aGluayB3ZSBoYXZl IG90aGVyIGlzc3VlcyB0aGF0IG5lZWQgdG8gYmUgYWRkcmVzc2VkIGlmIHdlDQo+IHdhbnQgdG8g c3VwcG9ydCBYUCBzdGlsbDsgSSdtIG5vdCBldmVuIHN1cmUgdGhhdCdzIHJlYWxpc3RpYyBhdCB0 aGlzDQo+IHBvaW50Lg0KPiANCj4gVW5sZXNzIHRoZXJlJ3MgYWN0dWFsbHkgYSB3YXkgdG8gdGVz dCBRR0Egb24gWFAgcmlnaHQgbm93IEkgdGhpbmsgSQ0KPiB3ZSBzaG91bGQganVzdCBnZXQgaW4g dGhlIHVwZGF0ZWQgcGF0Y2ggbWludXMgdGhlIGR5bmFtaWMgRExMIHN0dWZmLA0KPiBpLmUuOg0K PiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tZHJvdGgvcWVtdS9jb21taXQvDQo+IGRlNTk3YThiMjc3 MjJjZTRmOWNjNjYwZjkzMGY3ZGNjYzcxMjcxMmQNCj4gDQo+IE1ha2Ugc2Vuc2U/DQo+IA0KPiA+ IA0KPiA+IA0KPiA+IA0KPiA+IA0KPiA+IA0KPiA+IOS4uuS6huiuqeaCqOeahFZQbGF06Jma5ouf 5py65pWF6Zqc5ZKMZG9ja2Vy5pWF6Zqc5b6X5Yiw6auY5pWI55qE5aSE55CG77yM6K+35LiK5oql 5pWF6Zqc5YiwOiAkVlBsYXTmioDmnK8NCj4g5pSvDQo+ID4g5oyB44CCDQo+ID4gDQo+ID4g6Iqm 5b+X5pyLIGx1emhpcGVuZw0KPiA+IA0KPiA+IA0KPiA+IElU5byA5Y+R5bel56iL5biIIElUIERl dmVsb3BtZW50IEVuZ2luZWVyDQo+ID4g5pON5L2c57O757uf5Lqn5ZOB6YOoL+S4reW/g+eglOep tumZoi/ns7vnu5/kuqflk4EgT1MgUHJvZHVjdCBEZXB0Li9DZW50cmFsIFLvvIZEIEluc3RpdHV0 ZS8NCj4gPiBTeXN0ZW0gUHJvZHVjdA0KPiA+IA0KPiA+IA0KPiA+IFtjaWRdICAgICAgICAgIFtj aWRdDQo+ID4gICAgICAgICAgICAgICAg5Zub5bed55yB5oiQ6YO95biC5aSp5bqc5aSn6YGT5Lit 5q61ODAw5Y+3DQo+ID4gICAgICAgICAgICAgICAgRTogbHUuemhpcGVuZ0B6dGUuY29tLmNuDQo+ ID4gICAgICAgICAgICAgICAgd3d3Lnp0ZS5jb20uY24NCj4gPiANCj4gPiDljp/lp4vpgq7ku7YN Cj4gPiDlj5Hku7bkurrvvJroiqblv5fmnIsxMDEwODI3Mg0KPiA+IOaUtuS7tuS6uu+8miA8bWRy b3RoQGxpbnV4LnZuZXQuaWJtLmNvbT47DQo+ID4g5oqE6YCB5Lq677yaIDxxZW11LWRldmVsQG5v bmdudS5vcmc+Ow0KPiA+IOaXpeacn++8mjIwMTflubQxMeaciDA45pelIDEwOjU0DQo+ID4g5Li7 6aKY77ya562U5aSNOiBSZTogW1BBVENIIHYyXSBxZ2E6IHJlcGxhY2UgR2V0SWZFbnRyeQ0KPiA+ IA0KPiA+IA0KPiA+ID5JIGhhdmUgdGhlIG1vZGlmaWVkIHBhdGNoIHN0YWdlZCBoZXJlOg0KPiA+ IA0KPiA+ID4gIGh0dHBzOi8vZ2l0aHViLmNvbS9tZHJvdGgvcWVtdS9jb21taXQvDQo+ID4gZGU1 OTdhOGIyNzcyMmNlNGY5Y2M2NjBmOTMwZjdkY2NjNzEyNzEyZA0KPiA+ID5MZXQgbWUga25vdyBp ZiBpdCBsb29rcyBva2F5IGFuZCBJJ2xsIHNlbmQgYSBwdWxsIHJlcXVlc3QgZm9yIHJjMQ0KPiA+ IA0KPiA+ICANCj4gPiANCj4gPg0KPiAgdGhlIGNvZGUgcmlnaHQsIGJ1dCBydW5uaW5nIFFHQSBv biB0aGUgV2luZG93cyBYUCwgZXJyb3I6IGNhbiBub3QgZmluZCB0aGUgbGluaw0KPiA+IHRvICBH ZXRJZkVudHJ5MiBpbiBpcGhscGFwaS5ETEwuDQo+ID4gDQo+ID4gDQo+ID4gDQo+ID4gDQo+ID4g 5Li65LqG6K6p5oKo55qEVlBsYXTomZrmi5/mnLrmlYXpmpzlkoxkb2NrZXLmlYXpmpzlvpfliLDp q5jmlYjnmoTlpITnkIbvvIzor7fkuIrmiqXmlYXpmpzliLA6ICRWUGxhdOaKgOacrw0KPiDmlK8N Cj4gPiDmjIHjgIINCj4gPiANCj4gPiDoiqblv5fmnIsgbHV6aGlwZW5nDQo+ID4gDQo+ID4gDQo+ ID4gSVTlvIDlj5Hlt6XnqIvluIggSVQgRGV2ZWxvcG1lbnQgRW5naW5lZXINCj4gPiDmk43kvZzn s7vnu5/kuqflk4Hpg6gv5Lit5b+D56CU56m26ZmiL+ezu+e7n+S6p+WTgSBPUyBQcm9kdWN0IERl cHQuL0NlbnRyYWwgUu+8hkQgSW5zdGl0dXRlLw0KPiA+IFN5c3RlbSBQcm9kdWN0DQo+ID4gDQo+ ID4gDQo+ID4gW2NpZF0gICAgICAgICAgW2NpZF0NCj4gPiAgICAgICAgICAgICAgICDlm5vlt53n nIHmiJDpg73luILlpKnlupzlpKfpgZPkuK3mrrU4MDDlj7cNCj4gPiAgICAgICAgICAgICAgICBF OiBsdS56aGlwZW5nQHp0ZS5jb20uY24NCj4gPiAgICAgICAgICAgICAgICB3d3cuenRlLmNvbS5j bg0KPiA+IA0KPiA+IA0KPiA+IOWPkeS7tuS6uu+8miA8bWRyb3RoQGxpbnV4LnZuZXQuaWJtLmNv bT47DQo+ID4g5pS25Lu25Lq677ya6Iqm5b+X5pyLMTAxMDgyNzI7DQo+ID4g5oqE6YCB5Lq677ya IDxxZW11LWRldmVsQG5vbmdudS5vcmc+O+iKpuW/l+acizEwMTA4MjcyOw0KPiA+IOaXpeacn++8 mjIwMTflubQxMeaciDA45pelIDAxOjA3DQo+ID4g5Li76aKY77yaUmU6IFtQQVRDSCB2Ml0gcWdh OiByZXBsYWNlIEdldElmRW50cnkNCj4gPiANCj4gPiANCj4gPiBRdW90aW5nIFpoaVBlbmcgTHUg KDIwMTctMTEtMDMgMDk6NTQ6MjApDQo+ID4gPg0KPiA+DQo+ICAgVGhlIGRhdGEgb2J0YWluZWQg YnkgR2V0SWZFbnRyeSBpcyAzMiBiaXRzLCBhbmQgaXQgbWF5IG92ZXJmbG93LiBUaHVzIHVzaW5n IEdldElmRW50cnkyIGluc3RlYWQgb2YgR2V0SWZFbnRyeS4NCj4gPiA+IA0KPiA+ID4gU2lnbmVk LW9mZi1ieTogWmhpUGVuZyBMdSA8bHUuemhpcGVuZ0B6dGUuY29tLmNuPg0KPiA+ID4gLS0tDQo+ ID4gPiAgcWdhL2NvbW1hbmRzLXdpbjMyLmMgfCAzMSArKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tDQo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDEzIGRlbGV0 aW9ucygtKQ0KPiA+ID4gDQo+ID4gPiBkaWZmIC0tZ2l0IGEvcWdhL2NvbW1hbmRzLXdpbjMyLmMg Yi9xZ2EvY29tbWFuZHMtd2luMzIuYw0KPiA+ID4gaW5kZXggMDMyMjE4OC4uZDA5NmRjMiAxMDA2 NDQNCj4gPiA+IC0tLSBhL3FnYS9jb21tYW5kcy13aW4zMi5jDQo+ID4gPiArKysgYi9xZ2EvY29t bWFuZHMtd2luMzIuYw0KPiA+ID4gQEAgLTExNzMsMjAgKzExNzMsMjUgQEAgc3RhdGljIGludCBn dWVzdF9nZXRfbmV0d29ya19zdGF0cw0KPiAoY29uc3QgY2hhciAqbmFtZSwNCj4gPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgIEd1ZXN0TmV0d29ya0ludGVyZmFjZVN0YXQgKnN0YXRzKQ0KPiA+ ID4gIHsNCj4gPiA+ICAgICAgRFdPUkQgaWZfaW5kZXggPSAwOw0KPiA+ID4gLSAgICBNSUJfSUZS T1cgYV9taWRfaWZyb3c7DQo+ID4gPiAtICAgIG1lbXNldCgmYV9taWRfaWZyb3csIDAsIHNpemVv ZihhX21pZF9pZnJvdykpOw0KPiA+ID4gKyAgICBPU1ZFUlNJT05JTkZPIE9TdmVyOw0KPiA+ID4g ICAgICBpZl9pbmRleCA9IGdldF9pbnRlcmZhY2VfaW5kZXgobmFtZSk7DQo+ID4gPiAtICAgIGFf bWlkX2lmcm93LmR3SW5kZXggPSBpZl9pbmRleDsNCj4gPiA+IC0gICAgaWYgKE5PX0VSUk9SID09 IEdldElmRW50cnkoJmFfbWlkX2lmcm93KSkgew0KPiA+ID4gLSAgICAgICAgc3RhdHMtPnJ4X2J5 dGVzID0gYV9taWRfaWZyb3cuZHdJbk9jdGV0czsNCj4gPiA+IC0gICAgICAgIHN0YXRzLT5yeF9w YWNrZXRzID0gYV9taWRfaWZyb3cuZHdJblVjYXN0UGt0czsNCj4gPiA+IC0gICAgICAgIHN0YXRz LT5yeF9lcnJzID0gYV9taWRfaWZyb3cuZHdJbkVycm9yczsNCj4gPiA+IC0gICAgICAgIHN0YXRz LT5yeF9kcm9wcGVkID0gYV9taWRfaWZyb3cuZHdJbkRpc2NhcmRzOw0KPiA+ID4gLSAgICAgICAg c3RhdHMtPnR4X2J5dGVzID0gYV9taWRfaWZyb3cuZHdPdXRPY3RldHM7DQo+ID4gPiAtICAgICAg ICBzdGF0cy0+dHhfcGFja2V0cyA9IGFfbWlkX2lmcm93LmR3T3V0VWNhc3RQa3RzOw0KPiA+ID4g LSAgICAgICAgc3RhdHMtPnR4X2VycnMgPSBhX21pZF9pZnJvdy5kd091dEVycm9yczsNCj4gPiA+ IC0gICAgICAgIHN0YXRzLT50eF9kcm9wcGVkID0gYV9taWRfaWZyb3cuZHdPdXREaXNjYXJkczsN Cj4gPiA+IC0gICAgICAgIHJldHVybiAwOw0KPiA+ID4gKyAgICBPU3Zlci5kd09TVmVyc2lvbklu Zm9TaXplID0gc2l6ZW9mKE9TVkVSU0lPTklORk8pOw0KPiA+ID4gKyAgICBHZXRWZXJzaW9uRXgo Jk9TdmVyKTsNCj4gPiA+ICsgICAgaWYgKE9TdmVyLmR3TWFqb3JWZXJzaW9uID49IDYpIHsNCj4g PiA+ICsgICAgICAgIE1JQl9JRl9ST1cyIGFfbWlkX2lmcm93Ow0KPiA+ID4gKyAgICAgICAgbWVt c2V0KCZhX21pZF9pZnJvdywgMCwgc2l6ZW9mKGFfbWlkX2lmcm93KSk7DQo+ID4gPiArICAgICAg ICBhX21pZF9pZnJvdy5kd0luZGV4ID0gaWZfaW5kZXg7DQo+ID4gPiArICAgICAgICBpZiAoTk9f RVJST1IgPT0gR2V0SWZFbnRyeTIoJmFfbWlkX2lmcm93KSkgew0KPiA+ID4gKyAgICAgICAgICAg IHN0YXRzLT5yeF9ieXRlcyA9IGFfbWlkX2lmcm93LmR3SW5PY3RldHM7DQo+ID4gPiArICAgICAg ICAgICAgc3RhdHMtPnJ4X3BhY2tldHMgPSBhX21pZF9pZnJvdy5kd0luVWNhc3RQa3RzOw0KPiA+ ID4gKyAgICAgICAgICAgIHN0YXRzLT5yeF9lcnJzID0gYV9taWRfaWZyb3cuZHdJbkVycm9yczsN Cj4gPiA+ICsgICAgICAgICAgICBzdGF0cy0+cnhfZHJvcHBlZCA9IGFfbWlkX2lmcm93LmR3SW5E aXNjYXJkczsNCj4gPiA+ICsgICAgICAgICAgICBzdGF0cy0+dHhfYnl0ZXMgPSBhX21pZF9pZnJv dy5kd091dE9jdGV0czsNCj4gPiA+ICsgICAgICAgICAgICBzdGF0cy0+dHhfcGFja2V0cyA9IGFf bWlkX2lmcm93LmR3T3V0VWNhc3RQa3RzOw0KPiA+ID4gKyAgICAgICAgICAgIHN0YXRzLT50eF9l cnJzID0gYV9taWRfaWZyb3cuZHdPdXRFcnJvcnM7DQo+ID4gPiArICAgICAgICAgICAgc3RhdHMt PnR4X2Ryb3BwZWQgPSBhX21pZF9pZnJvdy5kd091dERpc2NhcmRzOw0KPiA+ID4gKyAgICAgICAg ICAgIHJldHVybiAwOw0KPiA+IA0KPiA+IFRoaXMgZmFpbHMgdG8gYnVpbGQgaW4gbXkgZmMyMCBt aW5ndzY0IGVudmlyb25tZW50Og0KPiA+IA0KPiA+IC9ob21lL21kcm90aC93L3FlbXU0LmdpdC9x Z2EvDQo+ID4gY29tbWFuZHMtd2luMzIuYzoxMTg0OjIwOiBlcnJvcjogJ01JQl9JRl9ST1cyJyBo YXMgbm8gbWVtYmVyIG5hbWVkICdkd0luZGV4Jw0KPiA+ICAgICAgICAgIGFfbWlkX2lmcm93LmR3 SW5kZXggPSBpZl9pbmRleDsNCj4gPiAgICAgICAgICAgICAgICAgICAgIF4NCj4gPiAvaG9tZS9t ZHJvdGgvdy9xZW11NC5naXQvcWdhLw0KPiA+DQo+ICBjb21tYW5kcy13aW4zMi5jOjExODY6NDI6 IGVycm9yOiAnTUlCX0lGX1JPVzInIGhhcyBubyBtZW1iZXIgbmFtZWQgJ2R3SW5PY3RldHMnDQo+ ID4gICAgICAgICAgICAgIHN0YXRzLT5yeF9ieXRlcyA9IGFfbWlkX2lmcm93LmR3SW5PY3RldHM7 DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KPiA+IC9o b21lL21kcm90aC93L3FlbXU0LmdpdC9xZ2EvDQo+ID4NCj4gIGNvbW1hbmRzLXdpbjMyLmM6MTE4 Nzo0NDogZXJyb3I6ICdNSUJfSUZfUk9XMicgaGFzIG5vIG1lbWJlciBuYW1lZCAnZHdJblVjYXN0 UGt0cycNCj4gPiAgICAgICAgICAgICAgc3RhdHMtPnJ4X3BhY2tldHMgPSBhX21pZF9pZnJvdy5k d0luVWNhc3RQa3RzOw0KPiA+IA0KPiA+IGV0YyAuLi4NCj4gPiANCj4gPiBUaGUgcGF0Y2ggc2Vl bXMgdG8gYXNzdW1lIE1JQl9JRlJPVyBhbmQgTUlCX0lGX1JPVzIgaGF2ZSB0aGUgc2FtZSBmaWVs ZCBuYW1lcw0KPiA+IGZvciB0aGUgc3RhdHMsIGJ1dCBhY2NvcmRpbmcgdG8gdGhpcyB0aGV5J3Jl IHNsaWdodGx5IGRpZmZlcmVudDoNCj4gPiANCj4gPiAgIGh0dHBzOi8vbXNkbi5taWNyb3NvZnQu Y29tL2VuLXVzL2xpYnJhcnkvd2luZG93cy9kZXNrdG9wL2FhODE0NDkxKHY9DQo+ID4gdnMuODUp LmFzcHgNCj4gPiANCj4gPiBUaGlzIGNoYW5nZSBvbiB0b3Agb2YgeW91ciBwYXRjaCBzZWVtcyB0 byB3b3JrOg0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9xZ2EvY29tbWFuZHMtd2luMzIuYyBiL3Fn YS9jb21tYW5kcy13aW4zMi5jDQo+ID4gaW5kZXggZTE3ZmMzYzI4NC4uNThlNDcwODc3ZiAxMDA2 NDQNCj4gPiAtLS0gYS9xZ2EvY29tbWFuZHMtd2luMzIuYw0KPiA+ICsrKyBiL3FnYS9jb21tYW5k cy13aW4zMi5jDQo+ID4gQEAgLTExODEsMTYgKzExODEsMTYgQEAgc3RhdGljIGludCBndWVzdF9n ZXRfbmV0d29ya19zdGF0cyhjb25zdCBjaGFyICpuYW1lLA0KPiA+ICAgICAgaWYgKG9zX3Zlci5k d01ham9yVmVyc2lvbiA+PSA2KSB7DQo+ID4gICAgICAgICAgTUlCX0lGX1JPVzIgYV9taWRfaWZy b3c7DQo+ID4gICAgICAgICAgbWVtc2V0KCZhX21pZF9pZnJvdywgMCwgc2l6ZW9mKGFfbWlkX2lm cm93KSk7DQo+ID4gLSAgICAgICAgYV9taWRfaWZyb3cuZHdJbmRleCA9IGlmX2luZGV4Ow0KPiA+ ICsgICAgICAgIGFfbWlkX2lmcm93LkludGVyZmFjZUluZGV4ID0gaWZfaW5kZXg7DQo+ID4gICAg ICAgICAgaWYgKE5PX0VSUk9SID09IEdldElmRW50cnkyKCZhX21pZF9pZnJvdykpIHsNCj4gPiAt ICAgICAgICAgICAgc3RhdHMtPnJ4X2J5dGVzID0gYV9taWRfaWZyb3cuZHdJbk9jdGV0czsNCj4g PiAtICAgICAgICAgICAgc3RhdHMtPnJ4X3BhY2tldHMgPSBhX21pZF9pZnJvdy5kd0luVWNhc3RQ a3RzOw0KPiA+IC0gICAgICAgICAgICBzdGF0cy0+cnhfZXJycyA9IGFfbWlkX2lmcm93LmR3SW5F cnJvcnM7DQo+ID4gLSAgICAgICAgICAgIHN0YXRzLT5yeF9kcm9wcGVkID0gYV9taWRfaWZyb3cu ZHdJbkRpc2NhcmRzOw0KPiA+IC0gICAgICAgICAgICBzdGF0cy0+dHhfYnl0ZXMgPSBhX21pZF9p ZnJvdy5kd091dE9jdGV0czsNCj4gPiAtICAgICAgICAgICAgc3RhdHMtPnR4X3BhY2tldHMgPSBh X21pZF9pZnJvdy5kd091dFVjYXN0UGt0czsNCj4gPiAtICAgICAgICAgICAgc3RhdHMtPnR4X2Vy cnMgPSBhX21pZF9pZnJvdy5kd091dEVycm9yczsNCj4gPiAtICAgICAgICAgICAgc3RhdHMtPnR4 X2Ryb3BwZWQgPSBhX21pZF9pZnJvdy5kd091dERpc2NhcmRzOw0KPiA+ICsgICAgICAgICAgICBz dGF0cy0+cnhfYnl0ZXMgPSBhX21pZF9pZnJvdy5Jbk9jdGV0czsNCj4gPiArICAgICAgICAgICAg c3RhdHMtPnJ4X3BhY2tldHMgPSBhX21pZF9pZnJvdy5JblVjYXN0UGt0czsNCj4gPiArICAgICAg ICAgICAgc3RhdHMtPnJ4X2VycnMgPSBhX21pZF9pZnJvdy5JbkVycm9yczsNCj4gPiArICAgICAg ICAgICAgc3RhdHMtPnJ4X2Ryb3BwZWQgPSBhX21pZF9pZnJvdy5JbkRpc2NhcmRzOw0KPiA+ICsg ICAgICAgICAgICBzdGF0cy0+dHhfYnl0ZXMgPSBhX21pZF9pZnJvdy5PdXRPY3RldHM7DQo+ID4g KyAgICAgICAgICAgIHN0YXRzLT50eF9wYWNrZXRzID0gYV9taWRfaWZyb3cuT3V0VWNhc3RQa3Rz Ow0KPiA+ICsgICAgICAgICAgICBzdGF0cy0+dHhfZXJycyA9IGFfbWlkX2lmcm93Lk91dEVycm9y czsNCj4gPiArICAgICAgICAgICAgc3RhdHMtPnR4X2Ryb3BwZWQgPSBhX21pZF9pZnJvdy5PdXRE aXNjYXJkczsNCj4gPiAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4gICAgICAgICAgfQ0KPiA+ ICAgICAgfQ0KPiA+IA0KPiA+IEkgaGF2ZSB0aGUgbW9kaWZpZWQgcGF0Y2ggc3RhZ2VkIGhlcmU6 DQo+ID4gDQo+ID4gICBodHRwczovL2dpdGh1Yi5jb20vbWRyb3RoL3FlbXUvY29tbWl0Lw0KPiA+ IGRlNTk3YThiMjc3MjJjZTRmOWNjNjYwZjkzMGY3ZGNjYzcxMjcxMmQNCj4gPiANCj4gPiBMZXQg bWUga25vdyBpZiBpdCBsb29rcyBva2F5IGFuZCBJJ2xsIHNlbmQgYSBwdWxsIHJlcXVlc3QgZm9y IHJjMQ0KPiA+IA0KPiA+ID4gKyAgICAgICAgfQ0KPiA+ID4gICAgICB9DQo+ID4gPiAgICAgIHJl dHVybiAtMTsNCj4gPiA+ICB9DQo+ID4gPiAtLSANCj4gPiA+IDEuOC4zLjENCj4gPiA+IA0KPiA+ IA0KPiA+IA0KPiANCj4=
Quoting lu.zhipeng@zte.com.cn (2017-11-14 19:41:58)
> i used xp version:
>
> xp professional 2002 service pack 3
Hmm, doesn't --cross-prefix=x86_64-w64-mingw32- result in a 64-bit
qemu-ga.exe? How are you running this on 32-bit Windows XP?
>
> build environment:
>
> root@localhost qemu-2.5.0]# cat /etc/redhat-release
>
> CentOS Linux release 7.0.1406 (Core)
Thanks, I'll try to see if there's anything there that would account for
the difference.
>
>
>
>
>
>
> 为了让您的VPlat虚拟机故障和docker故障得到高效的处理,请上报故障到: $VPlat技术支
> 持。
>
> 芦志朋 luzhipeng
>
>
> IT开发工程师 IT Development Engineer
> 操作系统产品部/中心研究院/系统产品 OS Product Dept./Central R&D Institute/
> System Product
>
>
> [cid] [cid]
> 四川省成都市天府大道中段800号
> E: lu.zhipeng@zte.com.cn
> www.zte.com.cn
>
> 原始邮件
> 发件人: <mdroth@linux.vnet.ibm.com>;
> 收件人:芦志朋10108272;
> 抄送人: <qemu-devel@nongnu.org>;
> 日期:2017年11月15日 09:22
> 主题:Re: 答复: Re: 答复: Re: [PATCH v2] qga: replace GetIfEntry
> Quoting lu.zhipeng@zte.com.cn (2017-11-14 05:09:35)
> > i test the latest qga in xp , it run ok .
> >
> >
> > my qga config :
> >
> > Configured with: './configure' '--enable-guest-agent' '--cross-prefix=
> > x86_64-w64-mingw32-' '--with-vss-sdk=/home/VSSSDK72' '--disable-fdt'
> > '--target-list=x86_64-softmmu'
>
> Hmm, so you're testing with Windows XP x64? I was using XP 32-bit (SP3),
> but I retried with XP x64 (SP2) and I still have the same issue.
>
> I can only get qemu-ga working if I build on top of something prior to
> commit 12f8def0e.
>
> What build environment are you using? I've tried Fedora Core 18 and 20
> and have the same issue with both.
>
> >
> > used qga version info
> >
> > [root@ceshi qemu]# git log
> >
> > commit 533ab83ea074d5fc457769f6ac698524a12f1156
> >
> > Author: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
> >
> > Date: Fri Nov 10 10:17:14 2017 +0800
> >
> >
> > qga: fix some errors for guest_get_network_stats
> >
> >
> >
> > fix some erros:
> >
> > 1.if building qga on Windows Vista/2008 and newer,
> >
> > it cann't find the link to GetIfEntry2 in windows xp.
> >
> > 2. check valid of if_index.
> >
> >
> >
> > Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
> >
> >
> > commit de597a8b27722ce4f9cc660f930f7dccc712712d
> >
> > Author: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
> >
> > Date: Fri Nov 3 22:54:20 2017 +0800
> >
> >
> > qga: replace GetIfEntry
> >
> >
> >
> >
> The data obtained by GetIfEntry is 32 bits, and it may overflow. Thus using
> > GetIfEntry2 instead of GetIfEntry.
> >
> >
> >
> > Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
> >
> > *avoid CamelCase variable names
> >
> > *update field names for MIB_IFROW -> MIB_IF_ROW2
> >
> > Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
> >
> >
> > commit 5ca7a3cba468736cfe555887af1f6ba754f6eac9
> >
> > Merge: a4f0537 10a7b7e
> >
> > Author: Peter Maydell <peter.maydell@linaro.org>
> >
> > Date: Tue Nov 7 14:43:35 2017 +0000
> >
> >
> > Merge remote-tracking branch 'remotes/berrange/tags/
> pull-2017-11-06-2' into
> > staging
> >
> >
> >
> > Pull IO 2017/11/06 v2
> >
> >
> >
> >
> > 为了让您的VPlat虚拟机故障和docker故障得到高效的处理,请上报故障到: $VPlat技术
> 支
> > 持。
> >
> > 芦志朋 luzhipeng
> >
> >
> > IT开发工程师 IT Development Engineer
> > 操作系统产品部/中心研究院/系统产品 OS Product Dept./Central R&D Institute/
> > System Product
> >
> >
> > [cid] [cid]
> > 四川省成都市天府大道中段800号
> > E: lu.zhipeng@zte.com.cn
> > www.zte.com.cn
> >
> > 原始邮件
> > 发件人: <mdroth@linux.vnet.ibm.com>;
> > 收件人:芦志朋10108272;
> > 抄送人: <qemu-devel@nongnu.org>;
> > 日期:2017年11月14日 07:57
> > 主题:Re: 答复: Re: [PATCH v2] qga: replace GetIfEntry
> > Quoting lu.zhipeng@zte.com.cn (2017-11-09 05:26:15)
> > > i think the code is better
> > >
> > > if (OSver.dwMajorVersion >= 6) {
> > > MIB_IF_ROW2 aMib_ifrow;
> > > typedef NETIOAPI_API (WINAPI *getifentry2_t)(PMIB_IF_ROW2 Row);
> > > memset(&aMib_ifrow, 0, sizeof(aMib_ifrow));
> > > aMib_ifrow.InterfaceIndex = nicId;
> > > HMODULE module = GetModuleHandle("iphlpapi");
> > > PVOID fun = GetProcAddress(module, "GetIfEntry2");
> > > if (fun == NULL) {
> > > error_setg(errp, QERR_QGA_COMMAND_FAILED,
> > > "Failed to get address of GetIfEntry2");
> > > return NULL;
> > > }
> > > getifentry2_t getifentry2_ex = (getifentry2_t)fun;
> > > if (NO_ERROR == getifentry2_ex(&aMib_ifrow)){
> > > }
> >
> > I've updated the patch with this change:
> > https://github.com/mdroth/qemu/commits/qga-if-stats
> >
> > But I'm a bit confused now: when I tried to test this on XP I realized that
> > that qemu-ga no longer works on XP, and generates the following error
> > when I try to start it (even without your stats patch):
> >
> > "The procedure entry point AcquireSRWLockExclusive could not be located
> > in the dynamic link library KERNEL32.dll"
> >
> > I think this may be due to the following commit, which notes that Vista+
> > are now required as a result:
> >
> > commit 12f8def0e02232d7c6416ad9b66640f973c531d1
> > Author: Andrey Shedel <ashedel@microsoft.com>
> > Date: Fri Mar 24 15:01:41 2017 -0700
> >
> > win32: replace custom mutex and condition variable with native
> > primitives
> >
> > So, are you actually able to run on XP currently? If so, how? And if
> > not, I think we have other issues that need to be addressed if we
> > want to support XP still; I'm not even sure that's realistic at this
> > point.
> >
> > Unless there's actually a way to test QGA on XP right now I think I
> > we should just get in the updated patch minus the dynamic DLL stuff,
> > i.e.:
> > https://github.com/mdroth/qemu/commit/
> > de597a8b27722ce4f9cc660f930f7dccc712712d
> >
> > Make sense?
> >
> > >
> > >
> > >
> > >
> > >
> > > 为了让您的VPlat虚拟机故障和docker故障得到高效的处理,请上报故障到: $VPlat技
> 术
> > 支
> > > 持。
> > >
> > > 芦志朋 luzhipeng
> > >
> > >
> > > IT开发工程师 IT Development Engineer
> > > 操作系统产品部/中心研究院/系统产品 OS Product Dept./Central R&D Institute/
> > > System Product
> > >
> > >
> > > [cid] [cid]
> > > 四川省成都市天府大道中段800号
> > > E: lu.zhipeng@zte.com.cn
> > > www.zte.com.cn
> > >
> > > 原始邮件
> > > 发件人:芦志朋10108272
> > > 收件人: <mdroth@linux.vnet.ibm.com>;
> > > 抄送人: <qemu-devel@nongnu.org>;
> > > 日期:2017年11月08日 10:54
> > > 主题:答复: Re: [PATCH v2] qga: replace GetIfEntry
> > >
> > >
> > > >I have the modified patch staged here:
> > >
> > > > https://github.com/mdroth/qemu/commit/
> > > de597a8b27722ce4f9cc660f930f7dccc712712d
> > > >Let me know if it looks okay and I'll send a pull request for rc1
> > >
> > >
> > >
> > >
> >
> the code right, but running QGA on the Windows XP, error: can not find the link
> > > to GetIfEntry2 in iphlpapi.DLL.
> > >
> > >
> > >
> > >
> > > 为了让您的VPlat虚拟机故障和docker故障得到高效的处理,请上报故障到: $VPlat技
> 术
> > 支
> > > 持。
> > >
> > > 芦志朋 luzhipeng
> > >
> > >
> > > IT开发工程师 IT Development Engineer
> > > 操作系统产品部/中心研究院/系统产品 OS Product Dept./Central R&D Institute/
> > > System Product
> > >
> > >
> > > [cid] [cid]
> > > 四川省成都市天府大道中段800号
> > > E: lu.zhipeng@zte.com.cn
> > > www.zte.com.cn
> > >
> > >
> > > 发件人: <mdroth@linux.vnet.ibm.com>;
> > > 收件人:芦志朋10108272;
> > > 抄送人: <qemu-devel@nongnu.org>;芦志朋10108272;
> > > 日期:2017年11月08日 01:07
> > > 主题:Re: [PATCH v2] qga: replace GetIfEntry
> > >
> > >
> > > Quoting ZhiPeng Lu (2017-11-03 09:54:20)
> > > >
> > >
> >
> The data obtained by GetIfEntry is 32 bits, and it may overflow. Thus using GetIfEntry2 instead of GetIfEntry.
> > > >
> > > > Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
> > > > ---
> > > > qga/commands-win32.c | 31 ++++++++++++++++++-------------
> > > > 1 file changed, 18 insertions(+), 13 deletions(-)
> > > >
> > > > diff --git a/qga/commands-win32.c b/qga/commands-win32.c
> > > > index 0322188..d096dc2 100644
> > > > --- a/qga/commands-win32.c
> > > > +++ b/qga/commands-win32.c
> > > > @@ -1173,20 +1173,25 @@ static int guest_get_network_stats
> > (const char *name,
> > > > GuestNetworkInterfaceStat *stats)
> > > > {
> > > > DWORD if_index = 0;
> > > > - MIB_IFROW a_mid_ifrow;
> > > > - memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
> > > > + OSVERSIONINFO OSver;
> > > > if_index = get_interface_index(name);
> > > > - a_mid_ifrow.dwIndex = if_index;
> > > > - if (NO_ERROR == GetIfEntry(&a_mid_ifrow)) {
> > > > - stats->rx_bytes = a_mid_ifrow.dwInOctets;
> > > > - stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> > > > - stats->rx_errs = a_mid_ifrow.dwInErrors;
> > > > - stats->rx_dropped = a_mid_ifrow.dwInDiscards;
> > > > - stats->tx_bytes = a_mid_ifrow.dwOutOctets;
> > > > - stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
> > > > - stats->tx_errs = a_mid_ifrow.dwOutErrors;
> > > > - stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
> > > > - return 0;
> > > > + OSver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
> > > > + GetVersionEx(&OSver);
> > > > + if (OSver.dwMajorVersion >= 6) {
> > > > + MIB_IF_ROW2 a_mid_ifrow;
> > > > + memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
> > > > + a_mid_ifrow.dwIndex = if_index;
> > > > + if (NO_ERROR == GetIfEntry2(&a_mid_ifrow)) {
> > > > + stats->rx_bytes = a_mid_ifrow.dwInOctets;
> > > > + stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> > > > + stats->rx_errs = a_mid_ifrow.dwInErrors;
> > > > + stats->rx_dropped = a_mid_ifrow.dwInDiscards;
> > > > + stats->tx_bytes = a_mid_ifrow.dwOutOctets;
> > > > + stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
> > > > + stats->tx_errs = a_mid_ifrow.dwOutErrors;
> > > > + stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
> > > > + return 0;
> > >
> > > This fails to build in my fc20 mingw64 environment:
> > >
> > > /home/mdroth/w/qemu4.git/qga/
> > >
> commands-win32.c:1184:20: error: 'MIB_IF_ROW2' has no member named 'dwIndex'
> > > a_mid_ifrow.dwIndex = if_index;
> > > ^
> > > /home/mdroth/w/qemu4.git/qga/
> > >
> >
> commands-win32.c:1186:42: error: 'MIB_IF_ROW2' has no member named 'dwInOctets'
> > > stats->rx_bytes = a_mid_ifrow.dwInOctets;
> > > ^
> > > /home/mdroth/w/qemu4.git/qga/
> > >
> >
> commands-win32.c:1187:44: error: 'MIB_IF_ROW2' has no member named 'dwInUcastPkts'
> > > stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> > >
> > > etc ...
> > >
> > >
> The patch seems to assume MIB_IFROW and MIB_IF_ROW2 have the same field names
> > > for the stats, but according to this they're slightly different:
> > >
> > > https://msdn.microsoft.com/en-us/library/windows/desktop/aa814491(v=
> > > vs.85).aspx
> > >
> > > This change on top of your patch seems to work:
> > >
> > > diff --git a/qga/commands-win32.c b/qga/commands-win32.c
> > > index e17fc3c284..58e470877f 100644
> > > --- a/qga/commands-win32.c
> > > +++ b/qga/commands-win32.c
> > > @@ -1181,16 +1181,16 @@ static int guest_get_network_stats
> (const char *name,
> > > if (os_ver.dwMajorVersion >= 6) {
> > > MIB_IF_ROW2 a_mid_ifrow;
> > > memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
> > > - a_mid_ifrow.dwIndex = if_index;
> > > + a_mid_ifrow.InterfaceIndex = if_index;
> > > if (NO_ERROR == GetIfEntry2(&a_mid_ifrow)) {
> > > - stats->rx_bytes = a_mid_ifrow.dwInOctets;
> > > - stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> > > - stats->rx_errs = a_mid_ifrow.dwInErrors;
> > > - stats->rx_dropped = a_mid_ifrow.dwInDiscards;
> > > - stats->tx_bytes = a_mid_ifrow.dwOutOctets;
> > > - stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
> > > - stats->tx_errs = a_mid_ifrow.dwOutErrors;
> > > - stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
> > > + stats->rx_bytes = a_mid_ifrow.InOctets;
> > > + stats->rx_packets = a_mid_ifrow.InUcastPkts;
> > > + stats->rx_errs = a_mid_ifrow.InErrors;
> > > + stats->rx_dropped = a_mid_ifrow.InDiscards;
> > > + stats->tx_bytes = a_mid_ifrow.OutOctets;
> > > + stats->tx_packets = a_mid_ifrow.OutUcastPkts;
> > > + stats->tx_errs = a_mid_ifrow.OutErrors;
> > > + stats->tx_dropped = a_mid_ifrow.OutDiscards;
> > > return 0;
> > > }
> > > }
> > >
> > > I have the modified patch staged here:
> > >
> > > https://github.com/mdroth/qemu/commit/
> > > de597a8b27722ce4f9cc660f930f7dccc712712d
> > >
> > > Let me know if it looks okay and I'll send a pull request for rc1
> > >
> > > > + }
> > > > }
> > > > return -1;
> > > > }
> > > > --
> > > > 1.8.3.1
> > > >
> > >
> > >
> >
> >
>
>
UXVvdGluZyBsdS56aGlwZW5nQHp0ZS5jb20uY24gKDIwMTctMTEtMTQgMTk6NDE6NTgpPiBpIHVz ZWQgIHhwICB2ZXJzaW9uOj4gPiB4cCBwcm9mZXNzaW9uYWwgMjAwMiBzZXJ2aWNlIHBhY2sgMz5I bW0sIGRvZXNuJ3QgLS1jcm9zcy1wcmVmaXg9eDg2XzY0LXc2NC1taW5ndzMyLSByZXN1bHQgaW4g YSA2NC1iaXQ+IHFlbXUtZ2EuZXhlPyBIb3cgYXJlIHlvdSBydW5uaW5nIHRoaXMgb24gMzItYml0 IFdpbmRvd3MgWFA/DQoNCg0KDQoNCg0KDQppIGJ1aWxkIHR3byB2ZXJzaW9uIDozMmJpdCBhbmQg NjQgYml0ICwgcnVuIDMyYml0IGluIHhwIA0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCuS4uuS6huiuqeaCqOeahFZQbGF06Jma5ouf5py65pWF6Zqc5ZKMZG9j a2Vy5pWF6Zqc5b6X5Yiw6auY5pWI55qE5aSE55CG77yM6K+35LiK5oql5pWF6Zqc5YiwOiAkVlBs YXTmioDmnK/mlK/mjIHjgIINCg0KDQroiqblv5fmnIsgbHV6aGlwZW5nDQoNCg0KDQoNCg0KDQpJ VOW8gOWPkeW3peeoi+W4iCBJVCBEZXZlbG9wbWVudApFbmdpbmVlcg0K5pON5L2c57O757uf5Lqn 5ZOB6YOoL+S4reW/g+eglOeptumZoi/ns7vnu5/kuqflk4EgT1MgUHJvZHVjdCBEZXB0Li9DZW50 cmFsIFLvvIZEIEluc3RpdHV0ZS9TeXN0ZW0gUHJvZHVjdA0KDQoNCg0KDQoNCg0KDQoNCg0K5Zub 5bed55yB5oiQ6YO95biC5aSp5bqc5aSn6YGT5Lit5q61ODAw5Y+3DQpFOiBsdS56aGlwZW5nQHp0 ZS5jb20uY24gDQp3d3cuenRlLmNvbS5jbg0KDQoNCg0KDQoNCg0KDQoNCg0KDQrljp/lp4vpgq7k u7YNCg0KDQoNCuWPkeS7tuS6uu+8miA8bWRyb3RoQGxpbnV4LnZuZXQuaWJtLmNvbT47DQrmlLbk u7bkurrvvJroiqblv5fmnIsxMDEwODI3MjsNCuaKhOmAgeS6uu+8miA8cWVtdS1kZXZlbEBub25n bnUub3JnPjsNCuaXpSDmnJ8g77yaMjAxN+W5tDEx5pyIMTXml6UgMTA6MjMNCuS4uyDpopgg77ya UmU6IOetlOWkjTogUmU6IOetlOWkjTogUmU6IOetlOWkjTogUmU6IFtQQVRDSCB2Ml0gcWdhOiBy ZXBsYWNlIEdldElmRW50cnkNCg0KDQpRdW90aW5nIGx1LnpoaXBlbmdAenRlLmNvbS5jbiAoMjAx Ny0xMS0xNCAxOTo0MTo1OCkNCj4gaSB1c2VkICB4cCAgdmVyc2lvbjoNCj4gDQo+IHhwIHByb2Zl c3Npb25hbCAyMDAyIHNlcnZpY2UgcGFjayAzDQoNCkhtbSwgZG9lc24ndCAtLWNyb3NzLXByZWZp eD14ODZfNjQtdzY0LW1pbmd3MzItIHJlc3VsdCBpbiBhIDY0LWJpdA0KcWVtdS1nYS5leGU/IEhv dyBhcmUgeW91IHJ1bm5pbmcgdGhpcyBvbiAzMi1iaXQgV2luZG93cyBYUD8NCg0KPiANCj4gYnVp bGQgZW52aXJvbm1lbnQ6IA0KPiANCj4gcm9vdEBsb2NhbGhvc3QgcWVtdS0yLjUuMF0jIGNhdCAv ZXRjL3JlZGhhdC1yZWxlYXNlIA0KPiANCj4gQ2VudE9TIExpbnV4IHJlbGVhc2UgNy4wLjE0MDYg KENvcmUpIA0KDQpUaGFua3MsIEknbGwgdHJ5IHRvIHNlZSBpZiB0aGVyZSdzIGFueXRoaW5nIHRo ZXJlIHRoYXQgd291bGQgYWNjb3VudCBmb3INCnRoZSBkaWZmZXJlbmNlLg0KDQo+IA0KPiANCj4g DQo+IA0KPiANCj4gDQo+IOS4uuS6huiuqeaCqOeahFZQbGF06Jma5ouf5py65pWF6Zqc5ZKMZG9j a2Vy5pWF6Zqc5b6X5Yiw6auY5pWI55qE5aSE55CG77yM6K+35LiK5oql5pWF6Zqc5YiwOiAkVlBs YXTmioDmnK/mlK8NCj4g5oyB44CCDQo+IA0KPiDoiqblv5fmnIsgbHV6aGlwZW5nDQo+IA0KPiAN Cj4gSVTlvIDlj5Hlt6XnqIvluIggSVQgRGV2ZWxvcG1lbnQgRW5naW5lZXINCj4g5pON5L2c57O7 57uf5Lqn5ZOB6YOoL+S4reW/g+eglOeptumZoi/ns7vnu5/kuqflk4EgT1MgUHJvZHVjdCBEZXB0 Li9DZW50cmFsIFLvvIZEIEluc3RpdHV0ZS8NCj4gU3lzdGVtIFByb2R1Y3QNCj4gDQo+IA0KPiBb Y2lkXSAgICAgICAgICBbY2lkXQ0KPiAgICAgICAgICAgICAgICDlm5vlt53nnIHmiJDpg73luILl pKnlupzlpKfpgZPkuK3mrrU4MDDlj7cNCj4gICAgICAgICAgICAgICAgRTogbHUuemhpcGVuZ0B6 dGUuY29tLmNuDQo+ICAgICAgICAgICAgICAgIHd3dy56dGUuY29tLmNuDQo+IA0KPiDljp/lp4vp gq7ku7YNCj4g5Y+R5Lu25Lq677yaIDxtZHJvdGhAbGludXgudm5ldC5pYm0uY29tPjsNCj4g5pS2 5Lu25Lq677ya6Iqm5b+X5pyLMTAxMDgyNzI7DQo+IOaKhOmAgeS6uu+8miA8cWVtdS1kZXZlbEBu b25nbnUub3JnPjsNCj4g5pel5pyf77yaMjAxN+W5tDEx5pyIMTXml6UgMDk6MjINCj4g5Li76aKY 77yaUmU6IOetlOWkjTogUmU6IOetlOWkjTogUmU6IFtQQVRDSCB2Ml0gcWdhOiByZXBsYWNlIEdl dElmRW50cnkNCj4gUXVvdGluZyBsdS56aGlwZW5nQHp0ZS5jb20uY24gKDIwMTctMTEtMTQgMDU6 MDk6MzUpDQo+ID4gIGkgdGVzdCB0aGUgbGF0ZXN0IHFnYSBpbiB4cCAsIGl0IHJ1biBvayAuDQo+ ID4gDQo+ID4gDQo+ID4gbXkgcWdhIGNvbmZpZyA6DQo+ID4gDQo+ID4gQ29uZmlndXJlZCB3aXRo OiAnLi9jb25maWd1cmUnICctLWVuYWJsZS1ndWVzdC1hZ2VudCcgJy0tY3Jvc3MtcHJlZml4PQ0K PiA+IHg4Nl82NC13NjQtbWluZ3czMi0nICctLXdpdGgtdnNzLXNkaz0vaG9tZS9WU1NTREs3Micg Jy0tZGlzYWJsZS1mZHQnICAgICAgICANCj4gPiAnLS10YXJnZXQtbGlzdD14ODZfNjQtc29mdG1t dScNCj4gDQo+IEhtbSwgc28geW91J3JlIHRlc3Rpbmcgd2l0aCBXaW5kb3dzIFhQIHg2ND8gSSB3 YXMgdXNpbmcgWFAgMzItYml0IChTUDMpLA0KPiBidXQgSSByZXRyaWVkIHdpdGggWFAgeDY0IChT UDIpIGFuZCBJIHN0aWxsIGhhdmUgdGhlIHNhbWUgaXNzdWUuDQo+IA0KPiBJIGNhbiBvbmx5IGdl dCBxZW11LWdhIHdvcmtpbmcgaWYgSSBidWlsZCBvbiB0b3Agb2Ygc29tZXRoaW5nIHByaW9yIHRv DQo+IGNvbW1pdCAxMmY4ZGVmMGUuDQo+IA0KPiBXaGF0IGJ1aWxkIGVudmlyb25tZW50IGFyZSB5 b3UgdXNpbmc/IEkndmUgdHJpZWQgRmVkb3JhIENvcmUgMTggYW5kIDIwDQo+IGFuZCBoYXZlIHRo ZSBzYW1lIGlzc3VlIHdpdGggYm90aC4NCj4gDQo+ID4gDQo+ID4gdXNlZCBxZ2EgdmVyc2lvbiBp bmZvDQo+ID4gDQo+ID4gW3Jvb3RAY2VzaGkgcWVtdV0jIGdpdCBsb2cNCj4gPiANCj4gPiBjb21t aXQgNTMzYWI4M2VhMDc0ZDVmYzQ1Nzc2OWY2YWM2OTg1MjRhMTJmMTE1Ng0KPiA+IA0KPiA+IEF1 dGhvcjogWmhpUGVuZyBMdSA8bHUuemhpcGVuZ0B6dGUuY29tLmNuPg0KPiA+IA0KPiA+IERhdGU6 ICAgRnJpIE5vdiAxMCAxMDoxNzoxNCAyMDE3ICswODAwDQo+ID4gDQo+ID4gDQo+ID4gICAgIHFn YTogZml4IHNvbWUgZXJyb3JzIGZvciBndWVzdF9nZXRfbmV0d29ya19zdGF0cw0KPiA+IA0KPiA+ ICAgICANCj4gPiANCj4gPiAgICAgZml4IHNvbWUgZXJyb3M6DQo+ID4gDQo+ID4gICAgIDEuaWYg YnVpbGRpbmcgcWdhIG9uIFdpbmRvd3MgVmlzdGEvMjAwOCBhbmQgbmV3ZXIsDQo+ID4gDQo+ID4g ICAgIGl0IGNhbm4ndCBmaW5kIHRoZSBsaW5rIHRvIEdldElmRW50cnkyIGluIHdpbmRvd3MgeHAu DQo+ID4gDQo+ID4gICAgIDIuIGNoZWNrIHZhbGlkIG9mIGlmX2luZGV4Lg0KPiA+IA0KPiA+ICAg ICANCj4gPiANCj4gPiAgICAgU2lnbmVkLW9mZi1ieTogWmhpUGVuZyBMdSA8bHUuemhpcGVuZ0B6 dGUuY29tLmNuPg0KPiA+IA0KPiA+IA0KPiA+IGNvbW1pdCBkZTU5N2E4YjI3NzIyY2U0ZjljYzY2 MGY5MzBmN2RjY2M3MTI3MTJkDQo+ID4gDQo+ID4gQXV0aG9yOiBaaGlQZW5nIEx1IDxsdS56aGlw ZW5nQHp0ZS5jb20uY24+DQo+ID4gDQo+ID4gRGF0ZTogICBGcmkgTm92IDMgMjI6NTQ6MjAgMjAx NyArMDgwMA0KPiA+IA0KPiA+IA0KPiA+ICAgICBxZ2E6IHJlcGxhY2UgR2V0SWZFbnRyeQ0KPiA+ IA0KPiA+ICAgICANCj4gPiANCj4gPg0KPiAgICAgIFRoZSBkYXRhIG9idGFpbmVkIGJ5IEdldElm RW50cnkgaXMgMzIgYml0cywgYW5kIGl0IG1heSBvdmVyZmxvdy4gVGh1cyB1c2luZw0KPiA+IEdl dElmRW50cnkyIGluc3RlYWQgb2YgR2V0SWZFbnRyeS4NCj4gPiANCj4gPiAgICAgDQo+ID4gDQo+ ID4gICAgIFNpZ25lZC1vZmYtYnk6IFpoaVBlbmcgTHUgPGx1LnpoaXBlbmdAenRlLmNvbS5jbj4N Cj4gPiANCj4gPiAgICAgKmF2b2lkIENhbWVsQ2FzZSB2YXJpYWJsZSBuYW1lcw0KPiA+IA0KPiA+ ICAgICAqdXBkYXRlIGZpZWxkIG5hbWVzIGZvciBNSUJfSUZST1cgLT4gTUlCX0lGX1JPVzINCj4g PiANCj4gPiAgICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBSb3RoIDxtZHJvdGhAbGludXgudm5l dC5pYm0uY29tPg0KPiA+IA0KPiA+IA0KPiA+IGNvbW1pdCA1Y2E3YTNjYmE0Njg3MzZjZmU1NTU4 ODdhZjFmNmJhNzU0ZjZlYWM5DQo+ID4gDQo+ID4gTWVyZ2U6IGE0ZjA1MzcgMTBhN2I3ZQ0KPiA+ IA0KPiA+IEF1dGhvcjogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPg0K PiA+IA0KPiA+IERhdGU6ICAgVHVlIE5vdiA3IDE0OjQzOjM1IDIwMTcgKzAwMDANCj4gPiANCj4g PiANCj4gPiAgICAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAncmVtb3Rlcy9iZXJyYW5n ZS90YWdzLw0KPiBwdWxsLTIwMTctMTEtMDYtMicgaW50bw0KPiA+IHN0YWdpbmcNCj4gPiANCj4g PiAgICAgDQo+ID4gDQo+ID4gICAgIFB1bGwgSU8gMjAxNy8xMS8wNiB2Mg0KPiA+IA0KPiA+IA0K PiA+IA0KPiA+IA0KPiA+IOS4uuS6huiuqeaCqOeahFZQbGF06Jma5ouf5py65pWF6Zqc5ZKMZG9j a2Vy5pWF6Zqc5b6X5Yiw6auY5pWI55qE5aSE55CG77yM6K+35LiK5oql5pWF6Zqc5YiwOiAkVlBs YXTmioDmnK8NCj4g5pSvDQo+ID4g5oyB44CCDQo+ID4gDQo+ID4g6Iqm5b+X5pyLIGx1emhpcGVu Zw0KPiA+IA0KPiA+IA0KPiA+IElU5byA5Y+R5bel56iL5biIIElUIERldmVsb3BtZW50IEVuZ2lu ZWVyDQo+ID4g5pON5L2c57O757uf5Lqn5ZOB6YOoL+S4reW/g+eglOeptumZoi/ns7vnu5/kuqfl k4EgT1MgUHJvZHVjdCBEZXB0Li9DZW50cmFsIFLvvIZEIEluc3RpdHV0ZS8NCj4gPiBTeXN0ZW0g UHJvZHVjdA0KPiA+IA0KPiA+IA0KPiA+IFtjaWRdICAgICAgICAgIFtjaWRdDQo+ID4gICAgICAg ICAgICAgICAg5Zub5bed55yB5oiQ6YO95biC5aSp5bqc5aSn6YGT5Lit5q61ODAw5Y+3DQo+ID4g ICAgICAgICAgICAgICAgRTogbHUuemhpcGVuZ0B6dGUuY29tLmNuDQo+ID4gICAgICAgICAgICAg ICAgd3d3Lnp0ZS5jb20uY24NCj4gPiANCj4gPiDljp/lp4vpgq7ku7YNCj4gPiDlj5Hku7bkurrv vJogPG1kcm90aEBsaW51eC52bmV0LmlibS5jb20+Ow0KPiA+IOaUtuS7tuS6uu+8muiKpuW/l+ac izEwMTA4MjcyOw0KPiA+IOaKhOmAgeS6uu+8miA8cWVtdS1kZXZlbEBub25nbnUub3JnPjsNCj4g PiDml6XmnJ/vvJoyMDE35bm0MTHmnIgxNOaXpSAwNzo1Nw0KPiA+IOS4u+mimO+8mlJlOiDnrZTl pI06IFJlOiBbUEFUQ0ggdjJdIHFnYTogcmVwbGFjZSBHZXRJZkVudHJ5DQo+ID4gUXVvdGluZyBs dS56aGlwZW5nQHp0ZS5jb20uY24gKDIwMTctMTEtMDkgMDU6MjY6MTUpDQo+ID4gPiAgaSB0aGlu ayB0aGUgY29kZSBpcyBiZXR0ZXINCj4gPiA+IA0KPiA+ID4gIGlmIChPU3Zlci5kd01ham9yVmVy c2lvbiA+PSA2KSB7DQo+ID4gPiAgICAgICBNSUJfSUZfUk9XMiBhTWliX2lmcm93Ow0KPiA+ID4g ICAgICAgdHlwZWRlZiBORVRJT0FQSV9BUEkgKFdJTkFQSSAqZ2V0aWZlbnRyeTJfdCkoUE1JQl9J Rl9ST1cyIFJvdyk7DQo+ID4gPiAgICAgICBtZW1zZXQoJmFNaWJfaWZyb3csIDAsIHNpemVvZihh TWliX2lmcm93KSk7DQo+ID4gPiAgICAgICBhTWliX2lmcm93LkludGVyZmFjZUluZGV4ID0gbmlj SWQ7DQo+ID4gPiAgICAgICBITU9EVUxFIG1vZHVsZSA9IEdldE1vZHVsZUhhbmRsZSgiaXBobHBh cGkiKTsNCj4gPiA+ICAgICAgIFBWT0lEIGZ1biA9IEdldFByb2NBZGRyZXNzKG1vZHVsZSwgIkdl dElmRW50cnkyIik7DQo+ID4gPiAgICAgICBpZiAoZnVuID09IE5VTEwpIHsNCj4gPiA+ICAgICAg ICAgICBlcnJvcl9zZXRnKGVycnAsIFFFUlJfUUdBX0NPTU1BTkRfRkFJTEVELA0KPiA+ID4gICAg ICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBnZXQgYWRkcmVzcyBvZiBHZXRJZkVudHJ5MiIp Ow0KPiA+ID4gICAgICAgICAgIHJldHVybiBOVUxMOw0KPiA+ID4gICAgICAgfQ0KPiA+ID4gICAg IGdldGlmZW50cnkyX3QgZ2V0aWZlbnRyeTJfZXggPSAoZ2V0aWZlbnRyeTJfdClmdW47DQo+ID4g PiAgICAgaWYgKE5PX0VSUk9SID09IGdldGlmZW50cnkyX2V4KCZhTWliX2lmcm93KSl7DQo+ID4g PiAgICAgfQ0KPiA+IA0KPiA+IEkndmUgdXBkYXRlZCB0aGUgcGF0Y2ggd2l0aCB0aGlzIGNoYW5n ZToNCj4gPiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tZHJvdGgvcWVtdS9jb21taXRzL3FnYS1pZi1z dGF0cw0KPiA+IA0KPiA+IEJ1dCBJJ20gYSBiaXQgY29uZnVzZWQgbm93OiB3aGVuIEkgdHJpZWQg dG8gdGVzdCB0aGlzIG9uIFhQIEkgcmVhbGl6ZWQgdGhhdA0KPiA+IHRoYXQgcWVtdS1nYSBubyBs b25nZXIgd29ya3Mgb24gWFAsIGFuZCBnZW5lcmF0ZXMgdGhlIGZvbGxvd2luZyBlcnJvcg0KPiA+ IHdoZW4gSSB0cnkgdG8gc3RhcnQgaXQgKGV2ZW4gd2l0aG91dCB5b3VyIHN0YXRzIHBhdGNoKToN Cj4gPiANCj4gPiAgICJUaGUgcHJvY2VkdXJlIGVudHJ5IHBvaW50IEFjcXVpcmVTUldMb2NrRXhj bHVzaXZlIGNvdWxkIG5vdCBiZSBsb2NhdGVkDQo+ID4gICAgaW4gdGhlIGR5bmFtaWMgbGluayBs aWJyYXJ5IEtFUk5FTDMyLmRsbCINCj4gPiANCj4gPiBJIHRoaW5rIHRoaXMgbWF5IGJlIGR1ZSB0 byB0aGUgZm9sbG93aW5nIGNvbW1pdCwgd2hpY2ggbm90ZXMgdGhhdCBWaXN0YSsNCj4gPiBhcmUg bm93IHJlcXVpcmVkIGFzIGEgcmVzdWx0Og0KPiA+IA0KPiA+IGNvbW1pdCAxMmY4ZGVmMGUwMjIz MmQ3YzY0MTZhZDliNjY2NDBmOTczYzUzMWQxDQo+ID4gQXV0aG9yOiBBbmRyZXkgU2hlZGVsIDxh c2hlZGVsQG1pY3Jvc29mdC5jb20+DQo+ID4gRGF0ZTogICBGcmkgTWFyIDI0IDE1OjAxOjQxIDIw MTcgLTA3MDANCj4gPiANCj4gPiAgICAgd2luMzI6IHJlcGxhY2UgY3VzdG9tIG11dGV4IGFuZCBj b25kaXRpb24gdmFyaWFibGUgd2l0aCBuYXRpdmUNCj4gPiAgICAgcHJpbWl0aXZlcw0KPiA+IA0K PiA+IFNvLCBhcmUgeW91IGFjdHVhbGx5IGFibGUgdG8gcnVuIG9uIFhQIGN1cnJlbnRseT8gSWYg c28sIGhvdz8gQW5kIGlmDQo+ID4gbm90LCBJIHRoaW5rIHdlIGhhdmUgb3RoZXIgaXNzdWVzIHRo YXQgbmVlZCB0byBiZSBhZGRyZXNzZWQgaWYgd2UNCj4gPiB3YW50IHRvIHN1cHBvcnQgWFAgc3Rp bGw7IEknbSBub3QgZXZlbiBzdXJlIHRoYXQncyByZWFsaXN0aWMgYXQgdGhpcw0KPiA+IHBvaW50 Lg0KPiA+IA0KPiA+IFVubGVzcyB0aGVyZSdzIGFjdHVhbGx5IGEgd2F5IHRvIHRlc3QgUUdBIG9u IFhQIHJpZ2h0IG5vdyBJIHRoaW5rIEkNCj4gPiB3ZSBzaG91bGQganVzdCBnZXQgaW4gdGhlIHVw ZGF0ZWQgcGF0Y2ggbWludXMgdGhlIGR5bmFtaWMgRExMIHN0dWZmLA0KPiA+IGkuZS46DQo+ID4g ICBodHRwczovL2dpdGh1Yi5jb20vbWRyb3RoL3FlbXUvY29tbWl0Lw0KPiA+IGRlNTk3YThiMjc3 MjJjZTRmOWNjNjYwZjkzMGY3ZGNjYzcxMjcxMmQNCj4gPiANCj4gPiBNYWtlIHNlbnNlPw0KPiA+ IA0KPiA+ID4gDQo+ID4gPiANCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiANCj4gPiA+IOS4uuS6huiu qeaCqOeahFZQbGF06Jma5ouf5py65pWF6Zqc5ZKMZG9ja2Vy5pWF6Zqc5b6X5Yiw6auY5pWI55qE 5aSE55CG77yM6K+35LiK5oql5pWF6Zqc5YiwOiAkVlBsYXTmioANCj4g5pyvDQo+ID4g5pSvDQo+ ID4gPiDmjIHjgIINCj4gPiA+IA0KPiA+ID4g6Iqm5b+X5pyLIGx1emhpcGVuZw0KPiA+ID4gDQo+ ID4gPiANCj4gPiA+IElU5byA5Y+R5bel56iL5biIIElUIERldmVsb3BtZW50IEVuZ2luZWVyDQo+ ID4gPiDmk43kvZzns7vnu5/kuqflk4Hpg6gv5Lit5b+D56CU56m26ZmiL+ezu+e7n+S6p+WTgSBP UyBQcm9kdWN0IERlcHQuL0NlbnRyYWwgUu+8hkQgSW5zdGl0dXRlLw0KPiA+ID4gU3lzdGVtIFBy b2R1Y3QNCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiBbY2lkXSAgICAgICAgICBbY2lkXQ0KPiA+ID4g ICAgICAgICAgICAgICAg5Zub5bed55yB5oiQ6YO95biC5aSp5bqc5aSn6YGT5Lit5q61ODAw5Y+3 DQo+ID4gPiAgICAgICAgICAgICAgICBFOiBsdS56aGlwZW5nQHp0ZS5jb20uY24NCj4gPiA+ICAg ICAgICAgICAgICAgIHd3dy56dGUuY29tLmNuDQo+ID4gPiANCj4gPiA+IOWOn+Wni+mCruS7tg0K PiA+ID4g5Y+R5Lu25Lq677ya6Iqm5b+X5pyLMTAxMDgyNzINCj4gPiA+IOaUtuS7tuS6uu+8miA8 bWRyb3RoQGxpbnV4LnZuZXQuaWJtLmNvbT47DQo+ID4gPiDmioTpgIHkurrvvJogPHFlbXUtZGV2 ZWxAbm9uZ251Lm9yZz47DQo+ID4gPiDml6XmnJ/vvJoyMDE35bm0MTHmnIgwOOaXpSAxMDo1NA0K PiA+ID4g5Li76aKY77ya562U5aSNOiBSZTogW1BBVENIIHYyXSBxZ2E6IHJlcGxhY2UgR2V0SWZF bnRyeQ0KPiA+ID4gDQo+ID4gPiANCj4gPiA+ID5JIGhhdmUgdGhlIG1vZGlmaWVkIHBhdGNoIHN0 YWdlZCBoZXJlOg0KPiA+ID4gDQo+ID4gPiA+ICBodHRwczovL2dpdGh1Yi5jb20vbWRyb3RoL3Fl bXUvY29tbWl0Lw0KPiA+ID4gZGU1OTdhOGIyNzcyMmNlNGY5Y2M2NjBmOTMwZjdkY2NjNzEyNzEy ZA0KPiA+ID4gPkxldCBtZSBrbm93IGlmIGl0IGxvb2tzIG9rYXkgYW5kIEknbGwgc2VuZCBhIHB1 bGwgcmVxdWVzdCBmb3IgcmMxDQo+ID4gPiANCj4gPiA+ICANCj4gPiA+IA0KPiA+ID4NCj4gPg0K PiAgIHRoZSBjb2RlIHJpZ2h0LCBidXQgcnVubmluZyBRR0Egb24gdGhlIFdpbmRvd3MgWFAsIGVy cm9yOiBjYW4gbm90IGZpbmQgdGhlIGxpbmsNCj4gPiA+IHRvICBHZXRJZkVudHJ5MiBpbiBpcGhs cGFwaS5ETEwuDQo+ID4gPiANCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiANCj4gPiA+IOS4uuS6huiu qeaCqOeahFZQbGF06Jma5ouf5py65pWF6Zqc5ZKMZG9ja2Vy5pWF6Zqc5b6X5Yiw6auY5pWI55qE 5aSE55CG77yM6K+35LiK5oql5pWF6Zqc5YiwOiAkVlBsYXTmioANCj4g5pyvDQo+ID4g5pSvDQo+ ID4gPiDmjIHjgIINCj4gPiA+IA0KPiA+ID4g6Iqm5b+X5pyLIGx1emhpcGVuZw0KPiA+ID4gDQo+ ID4gPiANCj4gPiA+IElU5byA5Y+R5bel56iL5biIIElUIERldmVsb3BtZW50IEVuZ2luZWVyDQo+ ID4gPiDmk43kvZzns7vnu5/kuqflk4Hpg6gv5Lit5b+D56CU56m26ZmiL+ezu+e7n+S6p+WTgSBP UyBQcm9kdWN0IERlcHQuL0NlbnRyYWwgUu+8hkQgSW5zdGl0dXRlLw0KPiA+ID4gU3lzdGVtIFBy b2R1Y3QNCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiBbY2lkXSAgICAgICAgICBbY2lkXQ0KPiA+ID4g ICAgICAgICAgICAgICAg5Zub5bed55yB5oiQ6YO95biC5aSp5bqc5aSn6YGT5Lit5q61ODAw5Y+3 DQo+ID4gPiAgICAgICAgICAgICAgICBFOiBsdS56aGlwZW5nQHp0ZS5jb20uY24NCj4gPiA+ICAg ICAgICAgICAgICAgIHd3dy56dGUuY29tLmNuDQo+ID4gPiANCj4gPiA+IA0KPiA+ID4g5Y+R5Lu2 5Lq677yaIDxtZHJvdGhAbGludXgudm5ldC5pYm0uY29tPjsNCj4gPiA+IOaUtuS7tuS6uu+8muiK puW/l+acizEwMTA4MjcyOw0KPiA+ID4g5oqE6YCB5Lq677yaIDxxZW11LWRldmVsQG5vbmdudS5v cmc+O+iKpuW/l+acizEwMTA4MjcyOw0KPiA+ID4g5pel5pyf77yaMjAxN+W5tDEx5pyIMDjml6Ug MDE6MDcNCj4gPiA+IOS4u+mimO+8mlJlOiBbUEFUQ0ggdjJdIHFnYTogcmVwbGFjZSBHZXRJZkVu dHJ5DQo+ID4gPiANCj4gPiA+IA0KPiA+ID4gUXVvdGluZyBaaGlQZW5nIEx1ICgyMDE3LTExLTAz IDA5OjU0OjIwKQ0KPiA+ID4gPg0KPiA+ID4NCj4gPg0KPiAgICBUaGUgZGF0YSBvYnRhaW5lZCBi eSBHZXRJZkVudHJ5IGlzIDMyIGJpdHMsIGFuZCBpdCBtYXkgb3ZlcmZsb3cuIFRodXMgdXNpbmcg R2V0SWZFbnRyeTIgaW5zdGVhZCBvZiBHZXRJZkVudHJ5Lg0KPiA+ID4gPiANCj4gPiA+ID4gU2ln bmVkLW9mZi1ieTogWmhpUGVuZyBMdSA8bHUuemhpcGVuZ0B6dGUuY29tLmNuPg0KPiA+ID4gPiAt LS0NCj4gPiA+ID4gIHFnYS9jb21tYW5kcy13aW4zMi5jIHwgMzEgKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLQ0KPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyks IDEzIGRlbGV0aW9ucygtKQ0KPiA+ID4gPiANCj4gPiA+ID4gZGlmZiAtLWdpdCBhL3FnYS9jb21t YW5kcy13aW4zMi5jIGIvcWdhL2NvbW1hbmRzLXdpbjMyLmMNCj4gPiA+ID4gaW5kZXggMDMyMjE4 OC4uZDA5NmRjMiAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvcWdhL2NvbW1hbmRzLXdpbjMyLmMNCj4g PiA+ID4gKysrIGIvcWdhL2NvbW1hbmRzLXdpbjMyLmMNCj4gPiA+ID4gQEAgLTExNzMsMjAgKzEx NzMsMjUgQEAgc3RhdGljIGludCBndWVzdF9nZXRfbmV0d29ya19zdGF0cw0KPiA+IChjb25zdCBj aGFyICpuYW1lLA0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBHdWVzdE5ldHdvcmtJ bnRlcmZhY2VTdGF0ICpzdGF0cykNCj4gPiA+ID4gIHsNCj4gPiA+ID4gICAgICBEV09SRCBpZl9p bmRleCA9IDA7DQo+ID4gPiA+IC0gICAgTUlCX0lGUk9XIGFfbWlkX2lmcm93Ow0KPiA+ID4gPiAt ICAgIG1lbXNldCgmYV9taWRfaWZyb3csIDAsIHNpemVvZihhX21pZF9pZnJvdykpOw0KPiA+ID4g PiArICAgIE9TVkVSU0lPTklORk8gT1N2ZXI7DQo+ID4gPiA+ICAgICAgaWZfaW5kZXggPSBnZXRf aW50ZXJmYWNlX2luZGV4KG5hbWUpOw0KPiA+ID4gPiAtICAgIGFfbWlkX2lmcm93LmR3SW5kZXgg PSBpZl9pbmRleDsNCj4gPiA+ID4gLSAgICBpZiAoTk9fRVJST1IgPT0gR2V0SWZFbnRyeSgmYV9t aWRfaWZyb3cpKSB7DQo+ID4gPiA+IC0gICAgICAgIHN0YXRzLT5yeF9ieXRlcyA9IGFfbWlkX2lm cm93LmR3SW5PY3RldHM7DQo+ID4gPiA+IC0gICAgICAgIHN0YXRzLT5yeF9wYWNrZXRzID0gYV9t aWRfaWZyb3cuZHdJblVjYXN0UGt0czsNCj4gPiA+ID4gLSAgICAgICAgc3RhdHMtPnJ4X2VycnMg PSBhX21pZF9pZnJvdy5kd0luRXJyb3JzOw0KPiA+ID4gPiAtICAgICAgICBzdGF0cy0+cnhfZHJv cHBlZCA9IGFfbWlkX2lmcm93LmR3SW5EaXNjYXJkczsNCj4gPiA+ID4gLSAgICAgICAgc3RhdHMt PnR4X2J5dGVzID0gYV9taWRfaWZyb3cuZHdPdXRPY3RldHM7DQo+ID4gPiA+IC0gICAgICAgIHN0 YXRzLT50eF9wYWNrZXRzID0gYV9taWRfaWZyb3cuZHdPdXRVY2FzdFBrdHM7DQo+ID4gPiA+IC0g ICAgICAgIHN0YXRzLT50eF9lcnJzID0gYV9taWRfaWZyb3cuZHdPdXRFcnJvcnM7DQo+ID4gPiA+ IC0gICAgICAgIHN0YXRzLT50eF9kcm9wcGVkID0gYV9taWRfaWZyb3cuZHdPdXREaXNjYXJkczsN Cj4gPiA+ID4gLSAgICAgICAgcmV0dXJuIDA7DQo+ID4gPiA+ICsgICAgT1N2ZXIuZHdPU1ZlcnNp b25JbmZvU2l6ZSA9IHNpemVvZihPU1ZFUlNJT05JTkZPKTsNCj4gPiA+ID4gKyAgICBHZXRWZXJz aW9uRXgoJk9TdmVyKTsNCj4gPiA+ID4gKyAgICBpZiAoT1N2ZXIuZHdNYWpvclZlcnNpb24gPj0g Nikgew0KPiA+ID4gPiArICAgICAgICBNSUJfSUZfUk9XMiBhX21pZF9pZnJvdzsNCj4gPiA+ID4g KyAgICAgICAgbWVtc2V0KCZhX21pZF9pZnJvdywgMCwgc2l6ZW9mKGFfbWlkX2lmcm93KSk7DQo+ ID4gPiA+ICsgICAgICAgIGFfbWlkX2lmcm93LmR3SW5kZXggPSBpZl9pbmRleDsNCj4gPiA+ID4g KyAgICAgICAgaWYgKE5PX0VSUk9SID09IEdldElmRW50cnkyKCZhX21pZF9pZnJvdykpIHsNCj4g PiA+ID4gKyAgICAgICAgICAgIHN0YXRzLT5yeF9ieXRlcyA9IGFfbWlkX2lmcm93LmR3SW5PY3Rl dHM7DQo+ID4gPiA+ICsgICAgICAgICAgICBzdGF0cy0+cnhfcGFja2V0cyA9IGFfbWlkX2lmcm93 LmR3SW5VY2FzdFBrdHM7DQo+ID4gPiA+ICsgICAgICAgICAgICBzdGF0cy0+cnhfZXJycyA9IGFf bWlkX2lmcm93LmR3SW5FcnJvcnM7DQo+ID4gPiA+ICsgICAgICAgICAgICBzdGF0cy0+cnhfZHJv cHBlZCA9IGFfbWlkX2lmcm93LmR3SW5EaXNjYXJkczsNCj4gPiA+ID4gKyAgICAgICAgICAgIHN0 YXRzLT50eF9ieXRlcyA9IGFfbWlkX2lmcm93LmR3T3V0T2N0ZXRzOw0KPiA+ID4gPiArICAgICAg ICAgICAgc3RhdHMtPnR4X3BhY2tldHMgPSBhX21pZF9pZnJvdy5kd091dFVjYXN0UGt0czsNCj4g PiA+ID4gKyAgICAgICAgICAgIHN0YXRzLT50eF9lcnJzID0gYV9taWRfaWZyb3cuZHdPdXRFcnJv cnM7DQo+ID4gPiA+ICsgICAgICAgICAgICBzdGF0cy0+dHhfZHJvcHBlZCA9IGFfbWlkX2lmcm93 LmR3T3V0RGlzY2FyZHM7DQo+ID4gPiA+ICsgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiA+IA0K PiA+ID4gVGhpcyBmYWlscyB0byBidWlsZCBpbiBteSBmYzIwIG1pbmd3NjQgZW52aXJvbm1lbnQ6 DQo+ID4gPiANCj4gPiA+IC9ob21lL21kcm90aC93L3FlbXU0LmdpdC9xZ2EvDQo+ID4gPg0KPiAg Y29tbWFuZHMtd2luMzIuYzoxMTg0OjIwOiBlcnJvcjogJ01JQl9JRl9ST1cyJyBoYXMgbm8gbWVt YmVyIG5hbWVkICdkd0luZGV4Jw0KPiA+ID4gICAgICAgICAgYV9taWRfaWZyb3cuZHdJbmRleCA9 IGlmX2luZGV4Ow0KPiA+ID4gICAgICAgICAgICAgICAgICAgICBeDQo+ID4gPiAvaG9tZS9tZHJv dGgvdy9xZW11NC5naXQvcWdhLw0KPiA+ID4NCj4gPg0KPiAgIGNvbW1hbmRzLXdpbjMyLmM6MTE4 Njo0MjogZXJyb3I6ICdNSUJfSUZfUk9XMicgaGFzIG5vIG1lbWJlciBuYW1lZCAnZHdJbk9jdGV0 cycNCj4gPiA+ICAgICAgICAgICAgICBzdGF0cy0+cnhfYnl0ZXMgPSBhX21pZF9pZnJvdy5kd0lu T2N0ZXRzOw0KPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xg0KPiA+ID4gL2hvbWUvbWRyb3RoL3cvcWVtdTQuZ2l0L3FnYS8NCj4gPiA+DQo+ID4NCj4gICBj b21tYW5kcy13aW4zMi5jOjExODc6NDQ6IGVycm9yOiAnTUlCX0lGX1JPVzInIGhhcyBubyBtZW1i ZXIgbmFtZWQgJ2R3SW5VY2FzdFBrdHMnDQo+ID4gPiAgICAgICAgICAgICAgc3RhdHMtPnJ4X3Bh Y2tldHMgPSBhX21pZF9pZnJvdy5kd0luVWNhc3RQa3RzOw0KPiA+ID4gDQo+ID4gPiBldGMgLi4u DQo+ID4gPiANCj4gPiA+DQo+ICBUaGUgcGF0Y2ggc2VlbXMgdG8gYXNzdW1lIE1JQl9JRlJPVyBh bmQgTUlCX0lGX1JPVzIgaGF2ZSB0aGUgc2FtZSBmaWVsZCBuYW1lcw0KPiA+ID4gZm9yIHRoZSBz dGF0cywgYnV0IGFjY29yZGluZyB0byB0aGlzIHRoZXkncmUgc2xpZ2h0bHkgZGlmZmVyZW50Og0K PiA+ID4gDQo+ID4gPiAgIGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkv d2luZG93cy9kZXNrdG9wL2FhODE0NDkxKHY9DQo+ID4gPiB2cy44NSkuYXNweA0KPiA+ID4gDQo+ ID4gPiBUaGlzIGNoYW5nZSBvbiB0b3Agb2YgeW91ciBwYXRjaCBzZWVtcyB0byB3b3JrOg0KPiA+ ID4gDQo+ID4gPiBkaWZmIC0tZ2l0IGEvcWdhL2NvbW1hbmRzLXdpbjMyLmMgYi9xZ2EvY29tbWFu ZHMtd2luMzIuYw0KPiA+ID4gaW5kZXggZTE3ZmMzYzI4NC4uNThlNDcwODc3ZiAxMDA2NDQNCj4g PiA+IC0tLSBhL3FnYS9jb21tYW5kcy13aW4zMi5jDQo+ID4gPiArKysgYi9xZ2EvY29tbWFuZHMt d2luMzIuYw0KPiA+ID4gQEAgLTExODEsMTYgKzExODEsMTYgQEAgc3RhdGljIGludCBndWVzdF9n ZXRfbmV0d29ya19zdGF0cw0KPiAoY29uc3QgY2hhciAqbmFtZSwNCj4gPiA+ICAgICAgaWYgKG9z X3Zlci5kd01ham9yVmVyc2lvbiA+PSA2KSB7DQo+ID4gPiAgICAgICAgICBNSUJfSUZfUk9XMiBh X21pZF9pZnJvdzsNCj4gPiA+ICAgICAgICAgIG1lbXNldCgmYV9taWRfaWZyb3csIDAsIHNpemVv ZihhX21pZF9pZnJvdykpOw0KPiA+ID4gLSAgICAgICAgYV9taWRfaWZyb3cuZHdJbmRleCA9IGlm X2luZGV4Ow0KPiA+ID4gKyAgICAgICAgYV9taWRfaWZyb3cuSW50ZXJmYWNlSW5kZXggPSBpZl9p bmRleDsNCj4gPiA+ICAgICAgICAgIGlmIChOT19FUlJPUiA9PSBHZXRJZkVudHJ5MigmYV9taWRf aWZyb3cpKSB7DQo+ID4gPiAtICAgICAgICAgICAgc3RhdHMtPnJ4X2J5dGVzID0gYV9taWRfaWZy b3cuZHdJbk9jdGV0czsNCj4gPiA+IC0gICAgICAgICAgICBzdGF0cy0+cnhfcGFja2V0cyA9IGFf bWlkX2lmcm93LmR3SW5VY2FzdFBrdHM7DQo+ID4gPiAtICAgICAgICAgICAgc3RhdHMtPnJ4X2Vy cnMgPSBhX21pZF9pZnJvdy5kd0luRXJyb3JzOw0KPiA+ID4gLSAgICAgICAgICAgIHN0YXRzLT5y eF9kcm9wcGVkID0gYV9taWRfaWZyb3cuZHdJbkRpc2NhcmRzOw0KPiA+ID4gLSAgICAgICAgICAg IHN0YXRzLT50eF9ieXRlcyA9IGFfbWlkX2lmcm93LmR3T3V0T2N0ZXRzOw0KPiA+ID4gLSAgICAg ICAgICAgIHN0YXRzLT50eF9wYWNrZXRzID0gYV9taWRfaWZyb3cuZHdPdXRVY2FzdFBrdHM7DQo+ ID4gPiAtICAgICAgICAgICAgc3RhdHMtPnR4X2VycnMgPSBhX21pZF9pZnJvdy5kd091dEVycm9y czsNCj4gPiA+IC0gICAgICAgICAgICBzdGF0cy0+dHhfZHJvcHBlZCA9IGFfbWlkX2lmcm93LmR3 T3V0RGlzY2FyZHM7DQo+ID4gPiArICAgICAgICAgICAgc3RhdHMtPnJ4X2J5dGVzID0gYV9taWRf aWZyb3cuSW5PY3RldHM7DQo+ID4gPiArICAgICAgICAgICAgc3RhdHMtPnJ4X3BhY2tldHMgPSBh X21pZF9pZnJvdy5JblVjYXN0UGt0czsNCj4gPiA+ICsgICAgICAgICAgICBzdGF0cy0+cnhfZXJy cyA9IGFfbWlkX2lmcm93LkluRXJyb3JzOw0KPiA+ID4gKyAgICAgICAgICAgIHN0YXRzLT5yeF9k cm9wcGVkID0gYV9taWRfaWZyb3cuSW5EaXNjYXJkczsNCj4gPiA+ICsgICAgICAgICAgICBzdGF0 cy0+dHhfYnl0ZXMgPSBhX21pZF9pZnJvdy5PdXRPY3RldHM7DQo+ID4gPiArICAgICAgICAgICAg c3RhdHMtPnR4X3BhY2tldHMgPSBhX21pZF9pZnJvdy5PdXRVY2FzdFBrdHM7DQo+ID4gPiArICAg ICAgICAgICAgc3RhdHMtPnR4X2VycnMgPSBhX21pZF9pZnJvdy5PdXRFcnJvcnM7DQo+ID4gPiAr ICAgICAgICAgICAgc3RhdHMtPnR4X2Ryb3BwZWQgPSBhX21pZF9pZnJvdy5PdXREaXNjYXJkczsN Cj4gPiA+ICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiA+ICAgICAgICAgIH0NCj4gPiA+ICAg ICAgfQ0KPiA+ID4gDQo+ID4gPiBJIGhhdmUgdGhlIG1vZGlmaWVkIHBhdGNoIHN0YWdlZCBoZXJl Og0KPiA+ID4gDQo+ID4gPiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tZHJvdGgvcWVtdS9jb21taXQv DQo+ID4gPiBkZTU5N2E4YjI3NzIyY2U0ZjljYzY2MGY5MzBmN2RjY2M3MTI3MTJkDQo+ID4gPiAN Cj4gPiA+IExldCBtZSBrbm93IGlmIGl0IGxvb2tzIG9rYXkgYW5kIEknbGwgc2VuZCBhIHB1bGwg cmVxdWVzdCBmb3IgcmMxDQo+ID4gPiANCj4gPiA+ID4gKyAgICAgICAgfQ0KPiA+ID4gPiAgICAg IH0NCj4gPiA+ID4gICAgICByZXR1cm4gLTE7DQo+ID4gPiA+ICB9DQo+ID4gPiA+IC0tIA0KPiA+ ID4gPiAxLjguMy4xDQo+ID4gPiA+IA0KPiA+ID4gDQo+ID4gPiANCj4gPiANCj4gPiANCj4gDQo+
Quoting lu.zhipeng@zte.com.cn (2017-11-14 19:41:58)
> i used xp version:
>
> xp professional 2002 service pack 3
>
> build environment:
>
> root@localhost qemu-2.5.0]# cat /etc/redhat-release
>
> CentOS Linux release 7.0.1406 (Core)
I haven't yet figured out why exactly, but with a CentOS 7.4 mingw
environment (via EPEL) I was indeed able to generate a binary that's
compatible with XP.
Still looking into it, but I've posted a pull for your modified patch in
the meantime. One notable change I made was to not make it fatal if we
fail to probe for GetIfStats2, since the stats are an optional return
value.
>
>
>
>
>
>
> 为了让您的VPlat虚拟机故障和docker故障得到高效的处理,请上报故障到: $VPlat技术支
> 持。
>
> 芦志朋 luzhipeng
>
>
> IT开发工程师 IT Development Engineer
> 操作系统产品部/中心研究院/系统产品 OS Product Dept./Central R&D Institute/
> System Product
>
>
> [cid] [cid]
> 四川省成都市天府大道中段800号
> E: lu.zhipeng@zte.com.cn
> www.zte.com.cn
>
> 原始邮件
> 发件人: <mdroth@linux.vnet.ibm.com>;
> 收件人:芦志朋10108272;
> 抄送人: <qemu-devel@nongnu.org>;
> 日期:2017年11月15日 09:22
> 主题:Re: 答复: Re: 答复: Re: [PATCH v2] qga: replace GetIfEntry
> Quoting lu.zhipeng@zte.com.cn (2017-11-14 05:09:35)
> > i test the latest qga in xp , it run ok .
> >
> >
> > my qga config :
> >
> > Configured with: './configure' '--enable-guest-agent' '--cross-prefix=
> > x86_64-w64-mingw32-' '--with-vss-sdk=/home/VSSSDK72' '--disable-fdt'
> > '--target-list=x86_64-softmmu'
>
> Hmm, so you're testing with Windows XP x64? I was using XP 32-bit (SP3),
> but I retried with XP x64 (SP2) and I still have the same issue.
>
> I can only get qemu-ga working if I build on top of something prior to
> commit 12f8def0e.
>
> What build environment are you using? I've tried Fedora Core 18 and 20
> and have the same issue with both.
>
> >
> > used qga version info
> >
> > [root@ceshi qemu]# git log
> >
> > commit 533ab83ea074d5fc457769f6ac698524a12f1156
> >
> > Author: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
> >
> > Date: Fri Nov 10 10:17:14 2017 +0800
> >
> >
> > qga: fix some errors for guest_get_network_stats
> >
> >
> >
> > fix some erros:
> >
> > 1.if building qga on Windows Vista/2008 and newer,
> >
> > it cann't find the link to GetIfEntry2 in windows xp.
> >
> > 2. check valid of if_index.
> >
> >
> >
> > Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
> >
> >
> > commit de597a8b27722ce4f9cc660f930f7dccc712712d
> >
> > Author: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
> >
> > Date: Fri Nov 3 22:54:20 2017 +0800
> >
> >
> > qga: replace GetIfEntry
> >
> >
> >
> >
> The data obtained by GetIfEntry is 32 bits, and it may overflow. Thus using
> > GetIfEntry2 instead of GetIfEntry.
> >
> >
> >
> > Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
> >
> > *avoid CamelCase variable names
> >
> > *update field names for MIB_IFROW -> MIB_IF_ROW2
> >
> > Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
> >
> >
> > commit 5ca7a3cba468736cfe555887af1f6ba754f6eac9
> >
> > Merge: a4f0537 10a7b7e
> >
> > Author: Peter Maydell <peter.maydell@linaro.org>
> >
> > Date: Tue Nov 7 14:43:35 2017 +0000
> >
> >
> > Merge remote-tracking branch 'remotes/berrange/tags/
> pull-2017-11-06-2' into
> > staging
> >
> >
> >
> > Pull IO 2017/11/06 v2
> >
> >
> >
> >
> > 为了让您的VPlat虚拟机故障和docker故障得到高效的处理,请上报故障到: $VPlat技术
> 支
> > 持。
> >
> > 芦志朋 luzhipeng
> >
> >
> > IT开发工程师 IT Development Engineer
> > 操作系统产品部/中心研究院/系统产品 OS Product Dept./Central R&D Institute/
> > System Product
> >
> >
> > [cid] [cid]
> > 四川省成都市天府大道中段800号
> > E: lu.zhipeng@zte.com.cn
> > www.zte.com.cn
> >
> > 原始邮件
> > 发件人: <mdroth@linux.vnet.ibm.com>;
> > 收件人:芦志朋10108272;
> > 抄送人: <qemu-devel@nongnu.org>;
> > 日期:2017年11月14日 07:57
> > 主题:Re: 答复: Re: [PATCH v2] qga: replace GetIfEntry
> > Quoting lu.zhipeng@zte.com.cn (2017-11-09 05:26:15)
> > > i think the code is better
> > >
> > > if (OSver.dwMajorVersion >= 6) {
> > > MIB_IF_ROW2 aMib_ifrow;
> > > typedef NETIOAPI_API (WINAPI *getifentry2_t)(PMIB_IF_ROW2 Row);
> > > memset(&aMib_ifrow, 0, sizeof(aMib_ifrow));
> > > aMib_ifrow.InterfaceIndex = nicId;
> > > HMODULE module = GetModuleHandle("iphlpapi");
> > > PVOID fun = GetProcAddress(module, "GetIfEntry2");
> > > if (fun == NULL) {
> > > error_setg(errp, QERR_QGA_COMMAND_FAILED,
> > > "Failed to get address of GetIfEntry2");
> > > return NULL;
> > > }
> > > getifentry2_t getifentry2_ex = (getifentry2_t)fun;
> > > if (NO_ERROR == getifentry2_ex(&aMib_ifrow)){
> > > }
> >
> > I've updated the patch with this change:
> > https://github.com/mdroth/qemu/commits/qga-if-stats
> >
> > But I'm a bit confused now: when I tried to test this on XP I realized that
> > that qemu-ga no longer works on XP, and generates the following error
> > when I try to start it (even without your stats patch):
> >
> > "The procedure entry point AcquireSRWLockExclusive could not be located
> > in the dynamic link library KERNEL32.dll"
> >
> > I think this may be due to the following commit, which notes that Vista+
> > are now required as a result:
> >
> > commit 12f8def0e02232d7c6416ad9b66640f973c531d1
> > Author: Andrey Shedel <ashedel@microsoft.com>
> > Date: Fri Mar 24 15:01:41 2017 -0700
> >
> > win32: replace custom mutex and condition variable with native
> > primitives
> >
> > So, are you actually able to run on XP currently? If so, how? And if
> > not, I think we have other issues that need to be addressed if we
> > want to support XP still; I'm not even sure that's realistic at this
> > point.
> >
> > Unless there's actually a way to test QGA on XP right now I think I
> > we should just get in the updated patch minus the dynamic DLL stuff,
> > i.e.:
> > https://github.com/mdroth/qemu/commit/
> > de597a8b27722ce4f9cc660f930f7dccc712712d
> >
> > Make sense?
> >
> > >
> > >
> > >
> > >
> > >
> > > 为了让您的VPlat虚拟机故障和docker故障得到高效的处理,请上报故障到: $VPlat技
> 术
> > 支
> > > 持。
> > >
> > > 芦志朋 luzhipeng
> > >
> > >
> > > IT开发工程师 IT Development Engineer
> > > 操作系统产品部/中心研究院/系统产品 OS Product Dept./Central R&D Institute/
> > > System Product
> > >
> > >
> > > [cid] [cid]
> > > 四川省成都市天府大道中段800号
> > > E: lu.zhipeng@zte.com.cn
> > > www.zte.com.cn
> > >
> > > 原始邮件
> > > 发件人:芦志朋10108272
> > > 收件人: <mdroth@linux.vnet.ibm.com>;
> > > 抄送人: <qemu-devel@nongnu.org>;
> > > 日期:2017年11月08日 10:54
> > > 主题:答复: Re: [PATCH v2] qga: replace GetIfEntry
> > >
> > >
> > > >I have the modified patch staged here:
> > >
> > > > https://github.com/mdroth/qemu/commit/
> > > de597a8b27722ce4f9cc660f930f7dccc712712d
> > > >Let me know if it looks okay and I'll send a pull request for rc1
> > >
> > >
> > >
> > >
> >
> the code right, but running QGA on the Windows XP, error: can not find the link
> > > to GetIfEntry2 in iphlpapi.DLL.
> > >
> > >
> > >
> > >
> > > 为了让您的VPlat虚拟机故障和docker故障得到高效的处理,请上报故障到: $VPlat技
> 术
> > 支
> > > 持。
> > >
> > > 芦志朋 luzhipeng
> > >
> > >
> > > IT开发工程师 IT Development Engineer
> > > 操作系统产品部/中心研究院/系统产品 OS Product Dept./Central R&D Institute/
> > > System Product
> > >
> > >
> > > [cid] [cid]
> > > 四川省成都市天府大道中段800号
> > > E: lu.zhipeng@zte.com.cn
> > > www.zte.com.cn
> > >
> > >
> > > 发件人: <mdroth@linux.vnet.ibm.com>;
> > > 收件人:芦志朋10108272;
> > > 抄送人: <qemu-devel@nongnu.org>;芦志朋10108272;
> > > 日期:2017年11月08日 01:07
> > > 主题:Re: [PATCH v2] qga: replace GetIfEntry
> > >
> > >
> > > Quoting ZhiPeng Lu (2017-11-03 09:54:20)
> > > >
> > >
> >
> The data obtained by GetIfEntry is 32 bits, and it may overflow. Thus using GetIfEntry2 instead of GetIfEntry.
> > > >
> > > > Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
> > > > ---
> > > > qga/commands-win32.c | 31 ++++++++++++++++++-------------
> > > > 1 file changed, 18 insertions(+), 13 deletions(-)
> > > >
> > > > diff --git a/qga/commands-win32.c b/qga/commands-win32.c
> > > > index 0322188..d096dc2 100644
> > > > --- a/qga/commands-win32.c
> > > > +++ b/qga/commands-win32.c
> > > > @@ -1173,20 +1173,25 @@ static int guest_get_network_stats
> > (const char *name,
> > > > GuestNetworkInterfaceStat *stats)
> > > > {
> > > > DWORD if_index = 0;
> > > > - MIB_IFROW a_mid_ifrow;
> > > > - memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
> > > > + OSVERSIONINFO OSver;
> > > > if_index = get_interface_index(name);
> > > > - a_mid_ifrow.dwIndex = if_index;
> > > > - if (NO_ERROR == GetIfEntry(&a_mid_ifrow)) {
> > > > - stats->rx_bytes = a_mid_ifrow.dwInOctets;
> > > > - stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> > > > - stats->rx_errs = a_mid_ifrow.dwInErrors;
> > > > - stats->rx_dropped = a_mid_ifrow.dwInDiscards;
> > > > - stats->tx_bytes = a_mid_ifrow.dwOutOctets;
> > > > - stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
> > > > - stats->tx_errs = a_mid_ifrow.dwOutErrors;
> > > > - stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
> > > > - return 0;
> > > > + OSver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
> > > > + GetVersionEx(&OSver);
> > > > + if (OSver.dwMajorVersion >= 6) {
> > > > + MIB_IF_ROW2 a_mid_ifrow;
> > > > + memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
> > > > + a_mid_ifrow.dwIndex = if_index;
> > > > + if (NO_ERROR == GetIfEntry2(&a_mid_ifrow)) {
> > > > + stats->rx_bytes = a_mid_ifrow.dwInOctets;
> > > > + stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> > > > + stats->rx_errs = a_mid_ifrow.dwInErrors;
> > > > + stats->rx_dropped = a_mid_ifrow.dwInDiscards;
> > > > + stats->tx_bytes = a_mid_ifrow.dwOutOctets;
> > > > + stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
> > > > + stats->tx_errs = a_mid_ifrow.dwOutErrors;
> > > > + stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
> > > > + return 0;
> > >
> > > This fails to build in my fc20 mingw64 environment:
> > >
> > > /home/mdroth/w/qemu4.git/qga/
> > >
> commands-win32.c:1184:20: error: 'MIB_IF_ROW2' has no member named 'dwIndex'
> > > a_mid_ifrow.dwIndex = if_index;
> > > ^
> > > /home/mdroth/w/qemu4.git/qga/
> > >
> >
> commands-win32.c:1186:42: error: 'MIB_IF_ROW2' has no member named 'dwInOctets'
> > > stats->rx_bytes = a_mid_ifrow.dwInOctets;
> > > ^
> > > /home/mdroth/w/qemu4.git/qga/
> > >
> >
> commands-win32.c:1187:44: error: 'MIB_IF_ROW2' has no member named 'dwInUcastPkts'
> > > stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> > >
> > > etc ...
> > >
> > >
> The patch seems to assume MIB_IFROW and MIB_IF_ROW2 have the same field names
> > > for the stats, but according to this they're slightly different:
> > >
> > > https://msdn.microsoft.com/en-us/library/windows/desktop/aa814491(v=
> > > vs.85).aspx
> > >
> > > This change on top of your patch seems to work:
> > >
> > > diff --git a/qga/commands-win32.c b/qga/commands-win32.c
> > > index e17fc3c284..58e470877f 100644
> > > --- a/qga/commands-win32.c
> > > +++ b/qga/commands-win32.c
> > > @@ -1181,16 +1181,16 @@ static int guest_get_network_stats
> (const char *name,
> > > if (os_ver.dwMajorVersion >= 6) {
> > > MIB_IF_ROW2 a_mid_ifrow;
> > > memset(&a_mid_ifrow, 0, sizeof(a_mid_ifrow));
> > > - a_mid_ifrow.dwIndex = if_index;
> > > + a_mid_ifrow.InterfaceIndex = if_index;
> > > if (NO_ERROR == GetIfEntry2(&a_mid_ifrow)) {
> > > - stats->rx_bytes = a_mid_ifrow.dwInOctets;
> > > - stats->rx_packets = a_mid_ifrow.dwInUcastPkts;
> > > - stats->rx_errs = a_mid_ifrow.dwInErrors;
> > > - stats->rx_dropped = a_mid_ifrow.dwInDiscards;
> > > - stats->tx_bytes = a_mid_ifrow.dwOutOctets;
> > > - stats->tx_packets = a_mid_ifrow.dwOutUcastPkts;
> > > - stats->tx_errs = a_mid_ifrow.dwOutErrors;
> > > - stats->tx_dropped = a_mid_ifrow.dwOutDiscards;
> > > + stats->rx_bytes = a_mid_ifrow.InOctets;
> > > + stats->rx_packets = a_mid_ifrow.InUcastPkts;
> > > + stats->rx_errs = a_mid_ifrow.InErrors;
> > > + stats->rx_dropped = a_mid_ifrow.InDiscards;
> > > + stats->tx_bytes = a_mid_ifrow.OutOctets;
> > > + stats->tx_packets = a_mid_ifrow.OutUcastPkts;
> > > + stats->tx_errs = a_mid_ifrow.OutErrors;
> > > + stats->tx_dropped = a_mid_ifrow.OutDiscards;
> > > return 0;
> > > }
> > > }
> > >
> > > I have the modified patch staged here:
> > >
> > > https://github.com/mdroth/qemu/commit/
> > > de597a8b27722ce4f9cc660f930f7dccc712712d
> > >
> > > Let me know if it looks okay and I'll send a pull request for rc1
> > >
> > > > + }
> > > > }
> > > > return -1;
> > > > }
> > > > --
> > > > 1.8.3.1
> > > >
> > >
> > >
> >
> >
>
>
© 2016 - 2025 Red Hat, Inc.