Merge remote-tracking branch 'mjt/trivial-patches' into staging
# By Stefan Weil (6) and others # Via Michael Tokarev * mjt/trivial-patches: aio / timers: use g_usleep() not sleep() adlib: sort offsets in portio registration qmp: fix integer usage in examples tci: Remove function tcg_out64 (fix broken build) target-arm: Report unimplemented opcodes (LOG_UNIMP) pflash_cfi02.c: fix debug macro configure: Remove unneeded redirections of stderr (pkg-config --exists) configure: Remove unneeded redirections of stderr (pkg-config --cflags, --libs) configure: Don't write .pyc files by default (python -B) curl: qemu_bh_new() can never return NULL slirp/arp_table.c: Avoid shifting into sign bit of signed integers configure: disable clang -Wstring-plus-int warning rdma: silly ipv6 bugfix misc: Fix some typos in names and comments slirp: Port redirection option behave differently on Linux and Windows Message-id: 1378119695-14568-1-git-send-email-mjt@msgid.tls.msk.ru Signed-off-by: Anthony Liguori <anthony@codemonkey.ws>
This commit is contained in:
commit
5a93d5c2ab
@ -290,7 +290,7 @@ static void coroutine_fn backup_run(void *opaque)
|
|||||||
|
|
||||||
for (i = 0; i < BACKUP_SECTORS_PER_CLUSTER;) {
|
for (i = 0; i < BACKUP_SECTORS_PER_CLUSTER;) {
|
||||||
/* bdrv_co_is_allocated() only returns true/false based
|
/* bdrv_co_is_allocated() only returns true/false based
|
||||||
* on the first set of sectors it comes accross that
|
* on the first set of sectors it comes across that
|
||||||
* are are all in the same state.
|
* are are all in the same state.
|
||||||
* For that reason we must verify each sector in the
|
* For that reason we must verify each sector in the
|
||||||
* backup cluster length. We end up copying more than
|
* backup cluster length. We end up copying more than
|
||||||
|
@ -572,12 +572,6 @@ static BlockDriverAIOCB *curl_aio_readv(BlockDriverState *bs,
|
|||||||
acb->nb_sectors = nb_sectors;
|
acb->nb_sectors = nb_sectors;
|
||||||
|
|
||||||
acb->bh = qemu_bh_new(curl_readv_bh_cb, acb);
|
acb->bh = qemu_bh_new(curl_readv_bh_cb, acb);
|
||||||
|
|
||||||
if (!acb->bh) {
|
|
||||||
DPRINTF("CURL: qemu_bh_new failed\n");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
qemu_bh_schedule(acb->bh);
|
qemu_bh_schedule(acb->bh);
|
||||||
return &acb->common;
|
return &acb->common;
|
||||||
}
|
}
|
||||||
|
71
configure
vendored
71
configure
vendored
@ -572,7 +572,7 @@ fi
|
|||||||
|
|
||||||
: ${make=${MAKE-make}}
|
: ${make=${MAKE-make}}
|
||||||
: ${install=${INSTALL-install}}
|
: ${install=${INSTALL-install}}
|
||||||
: ${python=${PYTHON-python}}
|
: ${python=${PYTHON-python -B}}
|
||||||
: ${smbd=${SMBD-/usr/sbin/smbd}}
|
: ${smbd=${SMBD-/usr/sbin/smbd}}
|
||||||
|
|
||||||
# Default objcc to clang if available, otherwise use CC
|
# Default objcc to clang if available, otherwise use CC
|
||||||
@ -1213,6 +1213,7 @@ gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_
|
|||||||
gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
|
gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
|
||||||
gcc_flags="-Wendif-labels $gcc_flags"
|
gcc_flags="-Wendif-labels $gcc_flags"
|
||||||
gcc_flags="-Wno-initializer-overrides $gcc_flags"
|
gcc_flags="-Wno-initializer-overrides $gcc_flags"
|
||||||
|
gcc_flags="-Wno-string-plus-int $gcc_flags"
|
||||||
# Note that we do not add -Werror to gcc_flags here, because that would
|
# Note that we do not add -Werror to gcc_flags here, because that would
|
||||||
# enable it for all configure tests. If a configure test failed due
|
# enable it for all configure tests. If a configure test failed due
|
||||||
# to -Werror this would just silently disable some features,
|
# to -Werror this would just silently disable some features,
|
||||||
@ -1357,7 +1358,7 @@ fi
|
|||||||
|
|
||||||
# Note that if the Python conditional here evaluates True we will exit
|
# Note that if the Python conditional here evaluates True we will exit
|
||||||
# with status 1 which is a shell 'false' value.
|
# with status 1 which is a shell 'false' value.
|
||||||
if ! "$python" -c 'import sys; sys.exit(sys.version_info < (2,4) or sys.version_info >= (3,))'; then
|
if ! $python -c 'import sys; sys.exit(sys.version_info < (2,4) or sys.version_info >= (3,))'; then
|
||||||
error_exit "Cannot use '$python', Python 2.4 or later is required." \
|
error_exit "Cannot use '$python', Python 2.4 or later is required." \
|
||||||
"Note that Python 3 or later is not yet supported." \
|
"Note that Python 3 or later is not yet supported." \
|
||||||
"Use --python=/path/to/python to specify a supported Python."
|
"Use --python=/path/to/python to specify a supported Python."
|
||||||
@ -1478,7 +1479,7 @@ libs_softmmu="$libs_softmmu -lz"
|
|||||||
# libseccomp check
|
# libseccomp check
|
||||||
|
|
||||||
if test "$seccomp" != "no" ; then
|
if test "$seccomp" != "no" ; then
|
||||||
if $pkg_config --atleast-version=2.1.0 libseccomp --modversion >/dev/null 2>&1; then
|
if $pkg_config --atleast-version=2.1.0 libseccomp; then
|
||||||
libs_softmmu="$libs_softmmu `$pkg_config --libs libseccomp`"
|
libs_softmmu="$libs_softmmu `$pkg_config --libs libseccomp`"
|
||||||
QEMU_CFLAGS="$QEMU_CFLAGS `$pkg_config --cflags libseccomp`"
|
QEMU_CFLAGS="$QEMU_CFLAGS `$pkg_config --cflags libseccomp`"
|
||||||
seccomp="yes"
|
seccomp="yes"
|
||||||
@ -1712,10 +1713,10 @@ if test "$gtk" != "no"; then
|
|||||||
fi
|
fi
|
||||||
gtk="no"
|
gtk="no"
|
||||||
else
|
else
|
||||||
gtk_cflags=`$pkg_config --cflags $gtkpackage 2>/dev/null`
|
gtk_cflags=`$pkg_config --cflags $gtkpackage`
|
||||||
gtk_libs=`$pkg_config --libs $gtkpackage 2>/dev/null`
|
gtk_libs=`$pkg_config --libs $gtkpackage`
|
||||||
vte_cflags=`$pkg_config --cflags $vtepackage 2>/dev/null`
|
vte_cflags=`$pkg_config --cflags $vtepackage`
|
||||||
vte_libs=`$pkg_config --libs $vtepackage 2>/dev/null`
|
vte_libs=`$pkg_config --libs $vtepackage`
|
||||||
libs_softmmu="$gtk_libs $vte_libs $libs_softmmu"
|
libs_softmmu="$gtk_libs $vte_libs $libs_softmmu"
|
||||||
gtk="yes"
|
gtk="yes"
|
||||||
fi
|
fi
|
||||||
@ -1730,7 +1731,7 @@ if test "`basename $sdl_config`" != sdl-config && ! has ${sdl_config}; then
|
|||||||
sdl_config=sdl-config
|
sdl_config=sdl-config
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if $pkg_config sdl --modversion >/dev/null 2>&1; then
|
if $pkg_config sdl --exists; then
|
||||||
sdlconfig="$pkg_config sdl"
|
sdlconfig="$pkg_config sdl"
|
||||||
_sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'`
|
_sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'`
|
||||||
elif has ${sdl_config}; then
|
elif has ${sdl_config}; then
|
||||||
@ -1916,9 +1917,9 @@ int main(void) {
|
|||||||
return png_ptr != 0;
|
return png_ptr != 0;
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
if $pkg_config libpng --modversion >/dev/null 2>&1; then
|
if $pkg_config libpng --exists; then
|
||||||
vnc_png_cflags=`$pkg_config libpng --cflags 2> /dev/null`
|
vnc_png_cflags=`$pkg_config libpng --cflags`
|
||||||
vnc_png_libs=`$pkg_config libpng --libs 2> /dev/null`
|
vnc_png_libs=`$pkg_config libpng --libs`
|
||||||
else
|
else
|
||||||
vnc_png_cflags=""
|
vnc_png_cflags=""
|
||||||
vnc_png_libs="-lpng"
|
vnc_png_libs="-lpng"
|
||||||
@ -2195,7 +2196,7 @@ fi
|
|||||||
##########################################
|
##########################################
|
||||||
# curl probe
|
# curl probe
|
||||||
if test "$curl" != "no" ; then
|
if test "$curl" != "no" ; then
|
||||||
if $pkg_config libcurl --modversion >/dev/null 2>&1; then
|
if $pkg_config libcurl --exists; then
|
||||||
curlconfig="$pkg_config libcurl"
|
curlconfig="$pkg_config libcurl"
|
||||||
else
|
else
|
||||||
curlconfig=curl-config
|
curlconfig=curl-config
|
||||||
@ -2247,10 +2248,9 @@ if test "$mingw32" = yes; then
|
|||||||
else
|
else
|
||||||
glib_req_ver=2.12
|
glib_req_ver=2.12
|
||||||
fi
|
fi
|
||||||
if $pkg_config --atleast-version=$glib_req_ver gthread-2.0 > /dev/null 2>&1
|
if $pkg_config --atleast-version=$glib_req_ver gthread-2.0; then
|
||||||
then
|
glib_cflags=`$pkg_config --cflags gthread-2.0`
|
||||||
glib_cflags=`$pkg_config --cflags gthread-2.0 2>/dev/null`
|
glib_libs=`$pkg_config --libs gthread-2.0`
|
||||||
glib_libs=`$pkg_config --libs gthread-2.0 2>/dev/null`
|
|
||||||
LIBS="$glib_libs $LIBS"
|
LIBS="$glib_libs $LIBS"
|
||||||
libs_qga="$glib_libs $libs_qga"
|
libs_qga="$glib_libs $libs_qga"
|
||||||
else
|
else
|
||||||
@ -2279,8 +2279,8 @@ if test "$pixman" = "none"; then
|
|||||||
pixman_cflags=
|
pixman_cflags=
|
||||||
pixman_libs=
|
pixman_libs=
|
||||||
elif test "$pixman" = "system"; then
|
elif test "$pixman" = "system"; then
|
||||||
pixman_cflags=`$pkg_config --cflags pixman-1 2>/dev/null`
|
pixman_cflags=`$pkg_config --cflags pixman-1`
|
||||||
pixman_libs=`$pkg_config --libs pixman-1 2>/dev/null`
|
pixman_libs=`$pkg_config --libs pixman-1`
|
||||||
else
|
else
|
||||||
if test ! -d ${source_path}/pixman/pixman; then
|
if test ! -d ${source_path}/pixman/pixman; then
|
||||||
error_exit "pixman not present. Your options:" \
|
error_exit "pixman not present. Your options:" \
|
||||||
@ -2379,8 +2379,7 @@ fi
|
|||||||
# libssh2 probe
|
# libssh2 probe
|
||||||
min_libssh2_version=1.2.8
|
min_libssh2_version=1.2.8
|
||||||
if test "$libssh2" != "no" ; then
|
if test "$libssh2" != "no" ; then
|
||||||
if $pkg_config --atleast-version=$min_libssh2_version libssh2 >/dev/null 2>&1
|
if $pkg_config --atleast-version=$min_libssh2_version libssh2; then
|
||||||
then
|
|
||||||
libssh2_cflags=`$pkg_config libssh2 --cflags`
|
libssh2_cflags=`$pkg_config libssh2 --cflags`
|
||||||
libssh2_libs=`$pkg_config libssh2 --libs`
|
libssh2_libs=`$pkg_config libssh2 --libs`
|
||||||
libssh2=yes
|
libssh2=yes
|
||||||
@ -2598,14 +2597,14 @@ fi
|
|||||||
##########################################
|
##########################################
|
||||||
# glusterfs probe
|
# glusterfs probe
|
||||||
if test "$glusterfs" != "no" ; then
|
if test "$glusterfs" != "no" ; then
|
||||||
if $pkg_config --atleast-version=3 glusterfs-api >/dev/null 2>&1; then
|
if $pkg_config --atleast-version=3 glusterfs-api; then
|
||||||
glusterfs="yes"
|
glusterfs="yes"
|
||||||
glusterfs_cflags=`$pkg_config --cflags glusterfs-api 2>/dev/null`
|
glusterfs_cflags=`$pkg_config --cflags glusterfs-api`
|
||||||
glusterfs_libs=`$pkg_config --libs glusterfs-api 2>/dev/null`
|
glusterfs_libs=`$pkg_config --libs glusterfs-api`
|
||||||
CFLAGS="$CFLAGS $glusterfs_cflags"
|
CFLAGS="$CFLAGS $glusterfs_cflags"
|
||||||
libs_tools="$glusterfs_libs $libs_tools"
|
libs_tools="$glusterfs_libs $libs_tools"
|
||||||
libs_softmmu="$glusterfs_libs $libs_softmmu"
|
libs_softmmu="$glusterfs_libs $libs_softmmu"
|
||||||
if $pkg_config --atleast-version=5 glusterfs-api >/dev/null 2>&1; then
|
if $pkg_config --atleast-version=5 glusterfs-api; then
|
||||||
glusterfs_discard="yes"
|
glusterfs_discard="yes"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
@ -2968,10 +2967,10 @@ if test "$libiscsi" != "no" ; then
|
|||||||
#include <iscsi/iscsi.h>
|
#include <iscsi/iscsi.h>
|
||||||
int main(void) { iscsi_unmap_sync(NULL,0,0,0,NULL,0); return 0; }
|
int main(void) { iscsi_unmap_sync(NULL,0,0,0,NULL,0); return 0; }
|
||||||
EOF
|
EOF
|
||||||
if $pkg_config --atleast-version=1.7.0 libiscsi --modversion >/dev/null 2>&1; then
|
if $pkg_config --atleast-version=1.7.0 libiscsi; then
|
||||||
libiscsi="yes"
|
libiscsi="yes"
|
||||||
libiscsi_cflags=$($pkg_config --cflags libiscsi 2>/dev/null)
|
libiscsi_cflags=$($pkg_config --cflags libiscsi)
|
||||||
libiscsi_libs=$($pkg_config --libs libiscsi 2>/dev/null)
|
libiscsi_libs=$($pkg_config --libs libiscsi)
|
||||||
CFLAGS="$CFLAGS $libiscsi_cflags"
|
CFLAGS="$CFLAGS $libiscsi_cflags"
|
||||||
LIBS="$LIBS $libiscsi_libs"
|
LIBS="$LIBS $libiscsi_libs"
|
||||||
elif compile_prog "" "-liscsi" ; then
|
elif compile_prog "" "-liscsi" ; then
|
||||||
@ -3038,8 +3037,8 @@ int main(void) { spice_server_new(); return 0; }
|
|||||||
EOF
|
EOF
|
||||||
spice_cflags=$($pkg_config --cflags spice-protocol spice-server 2>/dev/null)
|
spice_cflags=$($pkg_config --cflags spice-protocol spice-server 2>/dev/null)
|
||||||
spice_libs=$($pkg_config --libs spice-protocol spice-server 2>/dev/null)
|
spice_libs=$($pkg_config --libs spice-protocol spice-server 2>/dev/null)
|
||||||
if $pkg_config --atleast-version=0.12.0 spice-server >/dev/null 2>&1 && \
|
if $pkg_config --atleast-version=0.12.0 spice-server && \
|
||||||
$pkg_config --atleast-version=0.12.3 spice-protocol > /dev/null 2>&1 && \
|
$pkg_config --atleast-version=0.12.3 spice-protocol && \
|
||||||
compile_prog "$spice_cflags" "$spice_libs" ; then
|
compile_prog "$spice_cflags" "$spice_libs" ; then
|
||||||
spice="yes"
|
spice="yes"
|
||||||
libs_softmmu="$libs_softmmu $spice_libs"
|
libs_softmmu="$libs_softmmu $spice_libs"
|
||||||
@ -3074,7 +3073,7 @@ EOF
|
|||||||
test_cflags="-Werror $test_cflags"
|
test_cflags="-Werror $test_cflags"
|
||||||
fi
|
fi
|
||||||
if test -n "$libtool" &&
|
if test -n "$libtool" &&
|
||||||
$pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 && \
|
$pkg_config --atleast-version=3.12.8 nss && \
|
||||||
compile_prog "$test_cflags" "$libcacard_libs"; then
|
compile_prog "$test_cflags" "$libcacard_libs"; then
|
||||||
smartcard_nss="yes"
|
smartcard_nss="yes"
|
||||||
QEMU_CFLAGS="$QEMU_CFLAGS $libcacard_cflags"
|
QEMU_CFLAGS="$QEMU_CFLAGS $libcacard_cflags"
|
||||||
@ -3090,11 +3089,11 @@ fi
|
|||||||
|
|
||||||
# check for libusb
|
# check for libusb
|
||||||
if test "$libusb" != "no" ; then
|
if test "$libusb" != "no" ; then
|
||||||
if $pkg_config --atleast-version=1.0.13 libusb-1.0 >/dev/null 2>&1 ; then
|
if $pkg_config --atleast-version=1.0.13 libusb-1.0; then
|
||||||
libusb="yes"
|
libusb="yes"
|
||||||
usb="libusb"
|
usb="libusb"
|
||||||
libusb_cflags=$($pkg_config --cflags libusb-1.0 2>/dev/null)
|
libusb_cflags=$($pkg_config --cflags libusb-1.0)
|
||||||
libusb_libs=$($pkg_config --libs libusb-1.0 2>/dev/null)
|
libusb_libs=$($pkg_config --libs libusb-1.0)
|
||||||
QEMU_CFLAGS="$QEMU_CFLAGS $libusb_cflags"
|
QEMU_CFLAGS="$QEMU_CFLAGS $libusb_cflags"
|
||||||
libs_softmmu="$libs_softmmu $libusb_libs"
|
libs_softmmu="$libs_softmmu $libusb_libs"
|
||||||
else
|
else
|
||||||
@ -3107,10 +3106,10 @@ fi
|
|||||||
|
|
||||||
# check for usbredirparser for usb network redirection support
|
# check for usbredirparser for usb network redirection support
|
||||||
if test "$usb_redir" != "no" ; then
|
if test "$usb_redir" != "no" ; then
|
||||||
if $pkg_config --atleast-version=0.6 libusbredirparser-0.5 >/dev/null 2>&1 ; then
|
if $pkg_config --atleast-version=0.6 libusbredirparser-0.5; then
|
||||||
usb_redir="yes"
|
usb_redir="yes"
|
||||||
usb_redir_cflags=$($pkg_config --cflags libusbredirparser-0.5 2>/dev/null)
|
usb_redir_cflags=$($pkg_config --cflags libusbredirparser-0.5)
|
||||||
usb_redir_libs=$($pkg_config --libs libusbredirparser-0.5 2>/dev/null)
|
usb_redir_libs=$($pkg_config --libs libusbredirparser-0.5)
|
||||||
QEMU_CFLAGS="$QEMU_CFLAGS $usb_redir_cflags"
|
QEMU_CFLAGS="$QEMU_CFLAGS $usb_redir_cflags"
|
||||||
libs_softmmu="$libs_softmmu $usb_redir_libs"
|
libs_softmmu="$libs_softmmu $usb_redir_libs"
|
||||||
else
|
else
|
||||||
|
@ -284,9 +284,9 @@ static void Adlib_fini (AdlibState *s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static MemoryRegionPortio adlib_portio_list[] = {
|
static MemoryRegionPortio adlib_portio_list[] = {
|
||||||
{ 0x388, 4, 1, .read = adlib_read, .write = adlib_write, },
|
|
||||||
{ 0, 4, 1, .read = adlib_read, .write = adlib_write, },
|
{ 0, 4, 1, .read = adlib_read, .write = adlib_write, },
|
||||||
{ 0, 2, 1, .read = adlib_read, .write = adlib_write, },
|
{ 0, 2, 1, .read = adlib_read, .write = adlib_write, },
|
||||||
|
{ 0x388, 4, 1, .read = adlib_read, .write = adlib_write, },
|
||||||
PORTIO_END_OF_LIST(),
|
PORTIO_END_OF_LIST(),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@
|
|||||||
#ifdef PFLASH_DEBUG
|
#ifdef PFLASH_DEBUG
|
||||||
#define DPRINTF(fmt, ...) \
|
#define DPRINTF(fmt, ...) \
|
||||||
do { \
|
do { \
|
||||||
fprintf(stderr "PFLASH: " fmt , ## __VA_ARGS__); \
|
fprintf(stderr, "PFLASH: " fmt , ## __VA_ARGS__); \
|
||||||
} while (0)
|
} while (0)
|
||||||
#else
|
#else
|
||||||
#define DPRINTF(fmt, ...) do { } while (0)
|
#define DPRINTF(fmt, ...) do { } while (0)
|
||||||
|
@ -124,7 +124,7 @@ static void sch_handle_clear_func(SubchDev *sch)
|
|||||||
/* Path management: In our simple css, we always choose the only path. */
|
/* Path management: In our simple css, we always choose the only path. */
|
||||||
path = 0x80;
|
path = 0x80;
|
||||||
|
|
||||||
/* Reset values prior to 'issueing the clear signal'. */
|
/* Reset values prior to 'issuing the clear signal'. */
|
||||||
p->lpum = 0;
|
p->lpum = 0;
|
||||||
p->pom = 0xff;
|
p->pom = 0xff;
|
||||||
s->flags &= ~SCSW_FLAGS_MASK_PNO;
|
s->flags &= ~SCSW_FLAGS_MASK_PNO;
|
||||||
|
@ -67,7 +67,7 @@
|
|||||||
#define CURTICNT 0x0090
|
#define CURTICNT 0x0090
|
||||||
|
|
||||||
#define TICK_TIMER_ENABLE 0x0100
|
#define TICK_TIMER_ENABLE 0x0100
|
||||||
#define TICNT_THRESHHOLD 2
|
#define TICNT_THRESHOLD 2
|
||||||
|
|
||||||
|
|
||||||
#define RTC_ENABLE 0x0001
|
#define RTC_ENABLE 0x0001
|
||||||
@ -429,7 +429,7 @@ static void exynos4210_rtc_write(void *opaque, hwaddr offset,
|
|||||||
s->reg_rtccon = value;
|
s->reg_rtccon = value;
|
||||||
break;
|
break;
|
||||||
case TICCNT:
|
case TICCNT:
|
||||||
if (value > TICNT_THRESHHOLD) {
|
if (value > TICNT_THRESHOLD) {
|
||||||
s->reg_ticcnt = value;
|
s->reg_ticcnt = value;
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
|
@ -640,8 +640,8 @@ typedef struct {
|
|||||||
#define OCF_SETUP_SYNC_CONN 0x0028
|
#define OCF_SETUP_SYNC_CONN 0x0028
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint16_t handle;
|
uint16_t handle;
|
||||||
uint32_t tx_bandwith;
|
uint32_t tx_bandwidth;
|
||||||
uint32_t rx_bandwith;
|
uint32_t rx_bandwidth;
|
||||||
uint16_t max_latency;
|
uint16_t max_latency;
|
||||||
uint16_t voice_setting;
|
uint16_t voice_setting;
|
||||||
uint8_t retrans_effort;
|
uint8_t retrans_effort;
|
||||||
@ -652,8 +652,8 @@ typedef struct {
|
|||||||
#define OCF_ACCEPT_SYNC_CONN_REQ 0x0029
|
#define OCF_ACCEPT_SYNC_CONN_REQ 0x0029
|
||||||
typedef struct {
|
typedef struct {
|
||||||
bdaddr_t bdaddr;
|
bdaddr_t bdaddr;
|
||||||
uint32_t tx_bandwith;
|
uint32_t tx_bandwidth;
|
||||||
uint32_t rx_bandwith;
|
uint32_t rx_bandwidth;
|
||||||
uint16_t max_latency;
|
uint16_t max_latency;
|
||||||
uint16_t voice_setting;
|
uint16_t voice_setting;
|
||||||
uint8_t retrans_effort;
|
uint8_t retrans_effort;
|
||||||
|
@ -232,7 +232,7 @@ vcard_apdu_set_class(VCardAPDU *apdu) {
|
|||||||
case 0xf0:
|
case 0xf0:
|
||||||
default:
|
default:
|
||||||
apdu->a_gen_type =
|
apdu->a_gen_type =
|
||||||
(apdu->a_cla == 0xff) ? VCARD_7816_PTS : VCARD_7816_PROPIETARY;
|
(apdu->a_cla == 0xff) ? VCARD_7816_PTS : VCARD_7816_PROPRIETARY;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return VCARD7816_STATUS_SUCCESS;
|
return VCARD7816_STATUS_SUCCESS;
|
||||||
|
@ -43,7 +43,7 @@ typedef enum {
|
|||||||
VCARD_7816_ISO,
|
VCARD_7816_ISO,
|
||||||
VCARD_7816_RFU,
|
VCARD_7816_RFU,
|
||||||
VCARD_7816_PTS,
|
VCARD_7816_PTS,
|
||||||
VCARD_7816_PROPIETARY
|
VCARD_7816_PROPRIETARY
|
||||||
} VCardAPDUType;
|
} VCardAPDUType;
|
||||||
|
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@
|
|||||||
#define EV_SUCCESS 0
|
#define EV_SUCCESS 0
|
||||||
#define EV_EPERM 1 /* Operation not permitted */
|
#define EV_EPERM 1 /* Operation not permitted */
|
||||||
#define EV_ENOENT 2 /* Entry Not Found */
|
#define EV_ENOENT 2 /* Entry Not Found */
|
||||||
#define EV_EIO 3 /* I/O error occured */
|
#define EV_EIO 3 /* I/O error occurred */
|
||||||
#define EV_EAGAIN 4 /* The operation had insufficient
|
#define EV_EAGAIN 4 /* The operation had insufficient
|
||||||
* resources to complete and should be
|
* resources to complete and should be
|
||||||
* retried
|
* retried
|
||||||
@ -89,7 +89,7 @@
|
|||||||
#define EV_ENODEV 7 /* No such device */
|
#define EV_ENODEV 7 /* No such device */
|
||||||
#define EV_EINVAL 8 /* An argument supplied to the hcall
|
#define EV_EINVAL 8 /* An argument supplied to the hcall
|
||||||
was out of range or invalid */
|
was out of range or invalid */
|
||||||
#define EV_INTERNAL 9 /* An internal error occured */
|
#define EV_INTERNAL 9 /* An internal error occurred */
|
||||||
#define EV_CONFIG 10 /* A configuration error was detected */
|
#define EV_CONFIG 10 /* A configuration error was detected */
|
||||||
#define EV_INVALID_STATE 11 /* The object is in an invalid state */
|
#define EV_INVALID_STATE 11 /* The object is in an invalid state */
|
||||||
#define EV_UNIMPLEMENTED 12 /* Unimplemented hypercall */
|
#define EV_UNIMPLEMENTED 12 /* Unimplemented hypercall */
|
||||||
|
@ -756,7 +756,7 @@ static void qemu_rdma_dump_gid(const char *who, struct rdma_cm_id *id)
|
|||||||
* connections (both IPv4 and IPv6) if the destination machine does not have
|
* connections (both IPv4 and IPv6) if the destination machine does not have
|
||||||
* a regular infiniband network available for use.
|
* a regular infiniband network available for use.
|
||||||
*
|
*
|
||||||
* The only way to gaurantee that an error is thrown for broken kernels is
|
* The only way to guarantee that an error is thrown for broken kernels is
|
||||||
* for the management software to choose a *specific* interface at bind time
|
* for the management software to choose a *specific* interface at bind time
|
||||||
* and validate what time of hardware it is.
|
* and validate what time of hardware it is.
|
||||||
*
|
*
|
||||||
@ -778,7 +778,7 @@ static void qemu_rdma_dump_gid(const char *who, struct rdma_cm_id *id)
|
|||||||
* Infiniband.
|
* Infiniband.
|
||||||
*
|
*
|
||||||
* If we detect that we have a *pure* RoCE environment, then we can safely
|
* If we detect that we have a *pure* RoCE environment, then we can safely
|
||||||
* thrown an error even if the management sofware has specified '[::]' as the
|
* thrown an error even if the management software has specified '[::]' as the
|
||||||
* bind address.
|
* bind address.
|
||||||
*
|
*
|
||||||
* However, if there is are multiple hetergeneous devices, then we cannot make
|
* However, if there is are multiple hetergeneous devices, then we cannot make
|
||||||
@ -801,7 +801,7 @@ static int qemu_rdma_broken_ipv6_kernel(Error **errp, struct ibv_context *verbs)
|
|||||||
* devices (non-ethernet).
|
* devices (non-ethernet).
|
||||||
*
|
*
|
||||||
* If not, then we can safely proceed with the migration.
|
* If not, then we can safely proceed with the migration.
|
||||||
* Otherwise, there are no gaurantees until the bug is fixed in linux.
|
* Otherwise, there are no guarantees until the bug is fixed in linux.
|
||||||
*/
|
*/
|
||||||
if (!verbs) {
|
if (!verbs) {
|
||||||
int num_devices, x;
|
int num_devices, x;
|
||||||
@ -920,9 +920,11 @@ static int qemu_rdma_resolve_host(RDMAContext *rdma, Error **errp)
|
|||||||
ret = rdma_resolve_addr(rdma->cm_id, NULL, e->ai_dst_addr,
|
ret = rdma_resolve_addr(rdma->cm_id, NULL, e->ai_dst_addr,
|
||||||
RDMA_RESOLVE_TIMEOUT_MS);
|
RDMA_RESOLVE_TIMEOUT_MS);
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
ret = qemu_rdma_broken_ipv6_kernel(errp, rdma->cm_id->verbs);
|
if (e->ai_family == AF_INET6) {
|
||||||
if (ret) {
|
ret = qemu_rdma_broken_ipv6_kernel(errp, rdma->cm_id->verbs);
|
||||||
continue;
|
if (ret) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
goto route;
|
goto route;
|
||||||
}
|
}
|
||||||
|
@ -1402,22 +1402,22 @@ Change I/O throttle limits for a block drive.
|
|||||||
Arguments:
|
Arguments:
|
||||||
|
|
||||||
- "device": device name (json-string)
|
- "device": device name (json-string)
|
||||||
- "bps": total throughput limit in bytes per second(json-int)
|
- "bps": total throughput limit in bytes per second (json-int)
|
||||||
- "bps_rd": read throughput limit in bytes per second(json-int)
|
- "bps_rd": read throughput limit in bytes per second (json-int)
|
||||||
- "bps_wr": read throughput limit in bytes per second(json-int)
|
- "bps_wr": write throughput limit in bytes per second (json-int)
|
||||||
- "iops": total I/O operations per second(json-int)
|
- "iops": total I/O operations per second (json-int)
|
||||||
- "iops_rd": read I/O operations per second(json-int)
|
- "iops_rd": read I/O operations per second (json-int)
|
||||||
- "iops_wr": write I/O operations per second(json-int)
|
- "iops_wr": write I/O operations per second (json-int)
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
-> { "execute": "block_set_io_throttle", "arguments": { "device": "virtio0",
|
-> { "execute": "block_set_io_throttle", "arguments": { "device": "virtio0",
|
||||||
"bps": "1000000",
|
"bps": 1000000,
|
||||||
"bps_rd": "0",
|
"bps_rd": 0,
|
||||||
"bps_wr": "0",
|
"bps_wr": 0,
|
||||||
"iops": "0",
|
"iops": 0,
|
||||||
"iops_rd": "0",
|
"iops_rd": 0,
|
||||||
"iops_wr": "0" } }
|
"iops_wr": 0 } }
|
||||||
<- { "return": {} }
|
<- { "return": {} }
|
||||||
|
|
||||||
EQMP
|
EQMP
|
||||||
@ -1791,7 +1791,7 @@ Each json-object contain the following:
|
|||||||
- "vm-state-size": size of the VM state in bytes (json-int)
|
- "vm-state-size": size of the VM state in bytes (json-int)
|
||||||
- "date-sec": UTC date of the snapshot in seconds (json-int)
|
- "date-sec": UTC date of the snapshot in seconds (json-int)
|
||||||
- "date-nsec": fractional part in nanoseconds to be used with
|
- "date-nsec": fractional part in nanoseconds to be used with
|
||||||
date-sec(json-int)
|
date-sec (json-int)
|
||||||
- "vm-clock-sec": VM clock relative to boot in seconds
|
- "vm-clock-sec": VM clock relative to boot in seconds
|
||||||
(json-int)
|
(json-int)
|
||||||
- "vm-clock-nsec": fractional part in nanoseconds to be used
|
- "vm-clock-nsec": fractional part in nanoseconds to be used
|
||||||
|
@ -38,7 +38,7 @@ void arp_table_add(Slirp *slirp, uint32_t ip_addr, uint8_t ethaddr[ETH_ALEN])
|
|||||||
ethaddr[3], ethaddr[4], ethaddr[5]));
|
ethaddr[3], ethaddr[4], ethaddr[5]));
|
||||||
|
|
||||||
/* Check 0.0.0.0/8 invalid source-only addresses */
|
/* Check 0.0.0.0/8 invalid source-only addresses */
|
||||||
if ((ip_addr & htonl(~(0xf << 28))) == 0) {
|
if ((ip_addr & htonl(~(0xfU << 28))) == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ bool arp_table_search(Slirp *slirp, uint32_t ip_addr,
|
|||||||
DEBUG_ARG("ip = 0x%x", ip_addr);
|
DEBUG_ARG("ip = 0x%x", ip_addr);
|
||||||
|
|
||||||
/* Check 0.0.0.0/8 invalid source-only addresses */
|
/* Check 0.0.0.0/8 invalid source-only addresses */
|
||||||
assert((ip_addr & htonl(~(0xf << 28))) != 0);
|
assert((ip_addr & htonl(~(0xfU << 28))) != 0);
|
||||||
|
|
||||||
/* If broadcast address */
|
/* If broadcast address */
|
||||||
if (ip_addr == 0xffffffff || ip_addr == broadcast_addr) {
|
if (ip_addr == 0xffffffff || ip_addr == broadcast_addr) {
|
||||||
|
@ -627,7 +627,9 @@ tcp_listen(Slirp *slirp, uint32_t haddr, u_int hport, uint32_t laddr,
|
|||||||
addr.sin_port = hport;
|
addr.sin_port = hport;
|
||||||
|
|
||||||
if (((s = qemu_socket(AF_INET,SOCK_STREAM,0)) < 0) ||
|
if (((s = qemu_socket(AF_INET,SOCK_STREAM,0)) < 0) ||
|
||||||
|
#ifndef _WIN32
|
||||||
(qemu_setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int)) < 0) ||
|
(qemu_setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int)) < 0) ||
|
||||||
|
#endif
|
||||||
(bind(s,(struct sockaddr *)&addr, sizeof(addr)) < 0) ||
|
(bind(s,(struct sockaddr *)&addr, sizeof(addr)) < 0) ||
|
||||||
(listen(s,1) < 0)) {
|
(listen(s,1) < 0)) {
|
||||||
int tmperrno = errno; /* Don't clobber the real reason we failed */
|
int tmperrno = errno; /* Don't clobber the real reason we failed */
|
||||||
|
@ -6715,6 +6715,7 @@ static void disas_arm_insn(CPUARMState * env, DisasContext *s)
|
|||||||
/* setend */
|
/* setend */
|
||||||
if (((insn >> 9) & 1) != s->bswap_code) {
|
if (((insn >> 9) & 1) != s->bswap_code) {
|
||||||
/* Dynamic endianness switching not implemented. */
|
/* Dynamic endianness switching not implemented. */
|
||||||
|
qemu_log_mask(LOG_UNIMP, "arm: unimplemented setend\n");
|
||||||
goto illegal_op;
|
goto illegal_op;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -8740,6 +8741,8 @@ static int disas_thumb2_insn(CPUARMState *env, DisasContext *s, uint16_t insn_hw
|
|||||||
|
|
||||||
if (insn & (1 << 26)) {
|
if (insn & (1 << 26)) {
|
||||||
/* Secure monitor call (v6Z) */
|
/* Secure monitor call (v6Z) */
|
||||||
|
qemu_log_mask(LOG_UNIMP,
|
||||||
|
"arm: unimplemented secure monitor call\n");
|
||||||
goto illegal_op; /* not implemented. */
|
goto illegal_op; /* not implemented. */
|
||||||
} else {
|
} else {
|
||||||
op = (insn >> 20) & 7;
|
op = (insn >> 20) & 7;
|
||||||
@ -9779,6 +9782,7 @@ static void disas_thumb_insn(CPUARMState *env, DisasContext *s)
|
|||||||
ARCH(6);
|
ARCH(6);
|
||||||
if (((insn >> 3) & 1) != s->bswap_code) {
|
if (((insn >> 3) & 1) != s->bswap_code) {
|
||||||
/* Dynamic endianness switching not implemented. */
|
/* Dynamic endianness switching not implemented. */
|
||||||
|
qemu_log_mask(LOG_UNIMP, "arm: unimplemented setend\n");
|
||||||
goto illegal_op;
|
goto illegal_op;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -415,13 +415,6 @@ static void tcg_out_i(TCGContext *s, tcg_target_ulong v)
|
|||||||
s->code_ptr += sizeof(tcg_target_ulong);
|
s->code_ptr += sizeof(tcg_target_ulong);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Write 64 bit value. */
|
|
||||||
static void tcg_out64(TCGContext *s, uint64_t v)
|
|
||||||
{
|
|
||||||
*(uint64_t *)s->code_ptr = v;
|
|
||||||
s->code_ptr += sizeof(v);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Write opcode. */
|
/* Write opcode. */
|
||||||
static void tcg_out_op_t(TCGContext *s, TCGOpcode op)
|
static void tcg_out_op_t(TCGContext *s, TCGOpcode op)
|
||||||
{
|
{
|
||||||
|
@ -396,7 +396,7 @@ static void test_timer_schedule(void)
|
|||||||
g_assert(!aio_poll(ctx, false));
|
g_assert(!aio_poll(ctx, false));
|
||||||
g_assert_cmpint(data.n, ==, 0);
|
g_assert_cmpint(data.n, ==, 0);
|
||||||
|
|
||||||
sleep(1);
|
g_usleep(1 * G_USEC_PER_SEC);
|
||||||
g_assert_cmpint(data.n, ==, 0);
|
g_assert_cmpint(data.n, ==, 0);
|
||||||
|
|
||||||
g_assert(aio_poll(ctx, false));
|
g_assert(aio_poll(ctx, false));
|
||||||
@ -729,7 +729,7 @@ static void test_source_timer_schedule(void)
|
|||||||
|
|
||||||
g_assert_cmpint(data.n, ==, 0);
|
g_assert_cmpint(data.n, ==, 0);
|
||||||
|
|
||||||
sleep(1);
|
g_usleep(1 * G_USEC_PER_SEC);
|
||||||
g_assert_cmpint(data.n, ==, 0);
|
g_assert_cmpint(data.n, ==, 0);
|
||||||
|
|
||||||
g_assert(g_main_context_iteration(NULL, false));
|
g_assert(g_main_context_iteration(NULL, false));
|
||||||
@ -739,7 +739,7 @@ static void test_source_timer_schedule(void)
|
|||||||
do {
|
do {
|
||||||
g_assert(g_main_context_iteration(NULL, true));
|
g_assert(g_main_context_iteration(NULL, true));
|
||||||
} while (qemu_clock_get_ns(data.clock_type) <= expiry);
|
} while (qemu_clock_get_ns(data.clock_type) <= expiry);
|
||||||
sleep(1);
|
g_usleep(1 * G_USEC_PER_SEC);
|
||||||
g_main_context_iteration(NULL, false);
|
g_main_context_iteration(NULL, false);
|
||||||
|
|
||||||
g_assert_cmpint(data.n, ==, 2);
|
g_assert_cmpint(data.n, ==, 2);
|
||||||
|
Loading…
Reference in New Issue
Block a user