trivial patches for 2016-02-11
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJWvHuEAAoJEL7lnXSkw9fb2lAIAIMkxyMS6xtUFlASAA8yhPJe iWoWX8okweraRZKdjinG15dNsRMzOywL6zActb+roNHJ1+RICOpHYhpUtp1P5Kpd gGYq3ry9HoVZZLxw1dGlJoLZVwDGdkAZmMFl1nOo6vq3Rb0GR7Et6NS//4nzkDtp XcNrsOGbfq0ABo/sYvQMHoWgSfnGU/2mkiMDNQs5FRWtCnUXgRRlvoEuolUPzkDS SHovLVYVIFB9okLgYpUhj2NmvDCnAlGcOL0rBb7hGvnKgZu+vT2kFIej6InrLZGX hVcptzX4Msv2E40wVB2y2QyU0GyWg1CjN6J39UAxA/a0q5lh/fm6EZbtAeiSZ+8= =dGSI -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/mjt/tags/pull-trivial-patches-2016-02-11' into staging trivial patches for 2016-02-11 # gpg: Signature made Thu 11 Feb 2016 12:16:04 GMT using RSA key ID A4C3D7DB # gpg: Good signature from "Michael Tokarev <mjt@tls.msk.ru>" # gpg: aka "Michael Tokarev <mjt@corpit.ru>" # gpg: aka "Michael Tokarev <mjt@debian.org>" * remotes/mjt/tags/pull-trivial-patches-2016-02-11: w32: include winsock2.h before windows.h Adds keycode 86 to the hid_usage_keys translation table. s390x: remove s390-zipl.rom Passthru CCID card: QOMify Emulated CCID card: QOMify ES1370: QOMify char: fix parameter name / type in BSD codepath qmp-spec: fix index in doc rdma: remove check on time_spent when calculating mbs qemu-sockets: simplify error handling cpu: cpu_save/cpu_load is no more qom: Correct object_property_get_int() description man: virtfs-proxy-helper: Rework awkward sentence remove libtool support Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
fc1ec1acff
1
Makefile
1
Makefile
|
@ -400,7 +400,6 @@ efi-pcnet.rom efi-rtl8139.rom efi-virtio.rom \
|
||||||
qemu-icon.bmp qemu_logo_no_text.svg \
|
qemu-icon.bmp qemu_logo_no_text.svg \
|
||||||
bamboo.dtb petalogix-s3adsp1800.dtb petalogix-ml605.dtb \
|
bamboo.dtb petalogix-s3adsp1800.dtb petalogix-ml605.dtb \
|
||||||
multiboot.bin linuxboot.bin kvmvapic.bin \
|
multiboot.bin linuxboot.bin kvmvapic.bin \
|
||||||
s390-zipl.rom \
|
|
||||||
s390-ccw.img \
|
s390-ccw.img \
|
||||||
spapr-rtas.bin slof.bin \
|
spapr-rtas.bin slof.bin \
|
||||||
palcode-clipper \
|
palcode-clipper \
|
||||||
|
|
|
@ -116,38 +116,6 @@ compile_prog() {
|
||||||
do_cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags
|
do_cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags
|
||||||
}
|
}
|
||||||
|
|
||||||
do_libtool() {
|
|
||||||
local mode=$1
|
|
||||||
shift
|
|
||||||
# Run the compiler, capturing its output to the log.
|
|
||||||
echo $libtool $mode --tag=CC $cc "$@" >> config.log
|
|
||||||
$libtool $mode --tag=CC $cc "$@" >> config.log 2>&1 || return $?
|
|
||||||
# Test passed. If this is an --enable-werror build, rerun
|
|
||||||
# the test with -Werror and bail out if it fails. This
|
|
||||||
# makes warning-generating-errors in configure test code
|
|
||||||
# obvious to developers.
|
|
||||||
if test "$werror" != "yes"; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
# Don't bother rerunning the compile if we were already using -Werror
|
|
||||||
case "$*" in
|
|
||||||
*-Werror*)
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
echo $libtool $mode --tag=CC $cc -Werror "$@" >> config.log
|
|
||||||
$libtool $mode --tag=CC $cc -Werror "$@" >> config.log 2>&1 && return $?
|
|
||||||
error_exit "configure test passed without -Werror but failed with -Werror." \
|
|
||||||
"This is probably a bug in the configure script. The failing command" \
|
|
||||||
"will be at the bottom of config.log." \
|
|
||||||
"You can run configure with --disable-werror to bypass this check."
|
|
||||||
}
|
|
||||||
|
|
||||||
libtool_prog() {
|
|
||||||
do_libtool --mode=compile $QEMU_CFLAGS -c -fPIE -DPIE -o $TMPO $TMPC || return $?
|
|
||||||
do_libtool --mode=link $LDFLAGS -o $TMPA $TMPL -rpath /usr/local/lib
|
|
||||||
}
|
|
||||||
|
|
||||||
# symbolically link $1 to $2. Portable version of "ln -sf".
|
# symbolically link $1 to $2. Portable version of "ln -sf".
|
||||||
symlink() {
|
symlink() {
|
||||||
rm -rf "$2"
|
rm -rf "$2"
|
||||||
|
@ -398,7 +366,6 @@ as="${AS-${cross_prefix}as}"
|
||||||
cpp="${CPP-$cc -E}"
|
cpp="${CPP-$cc -E}"
|
||||||
objcopy="${OBJCOPY-${cross_prefix}objcopy}"
|
objcopy="${OBJCOPY-${cross_prefix}objcopy}"
|
||||||
ld="${LD-${cross_prefix}ld}"
|
ld="${LD-${cross_prefix}ld}"
|
||||||
libtool="${LIBTOOL-${cross_prefix}libtool}"
|
|
||||||
nm="${NM-${cross_prefix}nm}"
|
nm="${NM-${cross_prefix}nm}"
|
||||||
strip="${STRIP-${cross_prefix}strip}"
|
strip="${STRIP-${cross_prefix}strip}"
|
||||||
windres="${WINDRES-${cross_prefix}windres}"
|
windres="${WINDRES-${cross_prefix}windres}"
|
||||||
|
@ -1514,7 +1481,6 @@ EOF
|
||||||
if do_cc $QEMU_CFLAGS -Werror $flag -c -o $TMPO $TMPC &&
|
if do_cc $QEMU_CFLAGS -Werror $flag -c -o $TMPO $TMPC &&
|
||||||
compile_prog "-Werror $flag" ""; then
|
compile_prog "-Werror $flag" ""; then
|
||||||
QEMU_CFLAGS="$QEMU_CFLAGS $flag"
|
QEMU_CFLAGS="$QEMU_CFLAGS $flag"
|
||||||
LIBTOOLFLAGS="$LIBTOOLFLAGS -Wc,$flag"
|
|
||||||
sp_on=1
|
sp_on=1
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
@ -1609,32 +1575,6 @@ EOF
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# check for broken gcc and libtool in RHEL5
|
|
||||||
if test -n "$libtool" -a "$pie" != "no" ; then
|
|
||||||
cat > $TMPC <<EOF
|
|
||||||
|
|
||||||
void *f(unsigned char *buf, int len);
|
|
||||||
void *g(unsigned char *buf, int len);
|
|
||||||
|
|
||||||
void *
|
|
||||||
f(unsigned char *buf, int len)
|
|
||||||
{
|
|
||||||
return (void*)0L;
|
|
||||||
}
|
|
||||||
|
|
||||||
void *
|
|
||||||
g(unsigned char *buf, int len)
|
|
||||||
{
|
|
||||||
return f(buf, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
EOF
|
|
||||||
if ! libtool_prog; then
|
|
||||||
echo "Disabling libtool due to broken toolchain support"
|
|
||||||
libtool=
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# __sync_fetch_and_and requires at least -march=i486. Many toolchains
|
# __sync_fetch_and_and requires at least -march=i486. Many toolchains
|
||||||
# use i686 as default anyway, but for those that don't, an explicit
|
# use i686 as default anyway, but for those that don't, an explicit
|
||||||
|
@ -2240,21 +2180,6 @@ if test "$xen_pv_domain_build" = "yes" &&
|
||||||
"which requires Xen support."
|
"which requires Xen support."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
##########################################
|
|
||||||
# libtool probe
|
|
||||||
|
|
||||||
if ! has $libtool; then
|
|
||||||
libtool=
|
|
||||||
fi
|
|
||||||
|
|
||||||
# MacOSX ships with a libtool which isn't the GNU one; weed this
|
|
||||||
# out by checking whether libtool supports the --version switch
|
|
||||||
if test -n "$libtool"; then
|
|
||||||
if ! "$libtool" --version >/dev/null 2>&1; then
|
|
||||||
libtool=
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# Sparse probe
|
# Sparse probe
|
||||||
if test "$sparse" != "no" ; then
|
if test "$sparse" != "no" ; then
|
||||||
|
@ -5525,13 +5450,8 @@ echo "MAKE=$make" >> $config_host_mak
|
||||||
echo "INSTALL=$install" >> $config_host_mak
|
echo "INSTALL=$install" >> $config_host_mak
|
||||||
echo "INSTALL_DIR=$install -d -m 0755" >> $config_host_mak
|
echo "INSTALL_DIR=$install -d -m 0755" >> $config_host_mak
|
||||||
echo "INSTALL_DATA=$install -c -m 0644" >> $config_host_mak
|
echo "INSTALL_DATA=$install -c -m 0644" >> $config_host_mak
|
||||||
if test -n "$libtool"; then
|
echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak
|
||||||
echo "INSTALL_PROG=\$(LIBTOOL) --mode=install $install -c -m 0755" >> $config_host_mak
|
echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak
|
||||||
echo "INSTALL_LIB=\$(LIBTOOL) --mode=install $install -c -m 0644" >> $config_host_mak
|
|
||||||
else
|
|
||||||
echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak
|
|
||||||
echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak
|
|
||||||
fi
|
|
||||||
echo "PYTHON=$python" >> $config_host_mak
|
echo "PYTHON=$python" >> $config_host_mak
|
||||||
echo "CC=$cc" >> $config_host_mak
|
echo "CC=$cc" >> $config_host_mak
|
||||||
if $iasl -h > /dev/null 2>&1; then
|
if $iasl -h > /dev/null 2>&1; then
|
||||||
|
@ -5549,7 +5469,6 @@ echo "OBJCOPY=$objcopy" >> $config_host_mak
|
||||||
echo "LD=$ld" >> $config_host_mak
|
echo "LD=$ld" >> $config_host_mak
|
||||||
echo "NM=$nm" >> $config_host_mak
|
echo "NM=$nm" >> $config_host_mak
|
||||||
echo "WINDRES=$windres" >> $config_host_mak
|
echo "WINDRES=$windres" >> $config_host_mak
|
||||||
echo "LIBTOOL=$libtool" >> $config_host_mak
|
|
||||||
echo "CFLAGS=$CFLAGS" >> $config_host_mak
|
echo "CFLAGS=$CFLAGS" >> $config_host_mak
|
||||||
echo "CFLAGS_NOPIE=$CFLAGS_NOPIE" >> $config_host_mak
|
echo "CFLAGS_NOPIE=$CFLAGS_NOPIE" >> $config_host_mak
|
||||||
echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
|
echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
|
||||||
|
@ -5568,7 +5487,6 @@ else
|
||||||
fi
|
fi
|
||||||
echo "LDFLAGS=$LDFLAGS" >> $config_host_mak
|
echo "LDFLAGS=$LDFLAGS" >> $config_host_mak
|
||||||
echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak
|
echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak
|
||||||
echo "LIBTOOLFLAGS=$LIBTOOLFLAGS" >> $config_host_mak
|
|
||||||
echo "LIBS+=$LIBS" >> $config_host_mak
|
echo "LIBS+=$LIBS" >> $config_host_mak
|
||||||
echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
|
echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
|
||||||
echo "EXESUF=$EXESUF" >> $config_host_mak
|
echo "EXESUF=$EXESUF" >> $config_host_mak
|
||||||
|
|
|
@ -180,7 +180,7 @@ Some events are rate-limited to at most one per second. If additional
|
||||||
dropped, and the last one is delayed. "Similar" normally means same
|
dropped, and the last one is delayed. "Similar" normally means same
|
||||||
event type. See qmp-events.txt for details.
|
event type. See qmp-events.txt for details.
|
||||||
|
|
||||||
2.5 QGA Synchronization
|
2.6 QGA Synchronization
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
When using QGA, an additional synchronization feature is built into
|
When using QGA, an additional synchronization feature is built into
|
||||||
|
|
6
exec.c
6
exec.c
|
@ -661,12 +661,6 @@ void cpu_exec_init(CPUState *cpu, Error **errp)
|
||||||
if (qdev_get_vmsd(DEVICE(cpu)) == NULL) {
|
if (qdev_get_vmsd(DEVICE(cpu)) == NULL) {
|
||||||
vmstate_register(NULL, cpu_index, &vmstate_cpu_common, cpu);
|
vmstate_register(NULL, cpu_index, &vmstate_cpu_common, cpu);
|
||||||
}
|
}
|
||||||
#if defined(CPU_SAVE_VERSION) && !defined(CONFIG_USER_ONLY)
|
|
||||||
register_savevm(NULL, "cpu", cpu_index, CPU_SAVE_VERSION,
|
|
||||||
cpu_save, cpu_load, cpu->env_ptr);
|
|
||||||
assert(cc->vmsd == NULL);
|
|
||||||
assert(qdev_get_vmsd(DEVICE(cpu)) == NULL);
|
|
||||||
#endif
|
|
||||||
if (cc->vmsd != NULL) {
|
if (cc->vmsd != NULL) {
|
||||||
vmstate_register(NULL, cpu_index, cc->vmsd, cpu);
|
vmstate_register(NULL, cpu_index, cc->vmsd, cpu);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,8 +28,8 @@ QEMU and proxy helper communicate using this socket. QEMU proxy fs
|
||||||
driver sends filesystem request to proxy helper and receives the
|
driver sends filesystem request to proxy helper and receives the
|
||||||
response from it.
|
response from it.
|
||||||
|
|
||||||
Proxy helper is designed so that it can drop the root privilege with
|
The proxy helper is designed so that it can drop root privileges except
|
||||||
retaining capbilities needed for doing filesystem operations only.
|
for the capabilities needed for doing filesystem operations.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
@c man end
|
@c man end
|
||||||
|
|
|
@ -289,6 +289,10 @@ struct chan_bits {
|
||||||
uint32_t *old_freq, uint32_t *new_freq);
|
uint32_t *old_freq, uint32_t *new_freq);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define TYPE_ES1370 "ES1370"
|
||||||
|
#define ES1370(obj) \
|
||||||
|
OBJECT_CHECK(ES1370State, (obj), TYPE_ES1370)
|
||||||
|
|
||||||
static void es1370_dac1_calc_freq (ES1370State *s, uint32_t ctl,
|
static void es1370_dac1_calc_freq (ES1370State *s, uint32_t ctl,
|
||||||
uint32_t *old_freq, uint32_t *new_freq);
|
uint32_t *old_freq, uint32_t *new_freq);
|
||||||
static void es1370_dac2_and_adc_calc_freq (ES1370State *s, uint32_t ctl,
|
static void es1370_dac2_and_adc_calc_freq (ES1370State *s, uint32_t ctl,
|
||||||
|
@ -1014,7 +1018,7 @@ static void es1370_on_reset (void *opaque)
|
||||||
|
|
||||||
static void es1370_realize(PCIDevice *dev, Error **errp)
|
static void es1370_realize(PCIDevice *dev, Error **errp)
|
||||||
{
|
{
|
||||||
ES1370State *s = DO_UPCAST (ES1370State, dev, dev);
|
ES1370State *s = ES1370(dev);
|
||||||
uint8_t *c = s->dev.config;
|
uint8_t *c = s->dev.config;
|
||||||
|
|
||||||
c[PCI_STATUS + 1] = PCI_STATUS_DEVSEL_SLOW >> 8;
|
c[PCI_STATUS + 1] = PCI_STATUS_DEVSEL_SLOW >> 8;
|
||||||
|
@ -1039,7 +1043,7 @@ static void es1370_realize(PCIDevice *dev, Error **errp)
|
||||||
|
|
||||||
static int es1370_init (PCIBus *bus)
|
static int es1370_init (PCIBus *bus)
|
||||||
{
|
{
|
||||||
pci_create_simple (bus, -1, "ES1370");
|
pci_create_simple (bus, -1, TYPE_ES1370);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1060,7 +1064,7 @@ static void es1370_class_init (ObjectClass *klass, void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo es1370_info = {
|
static const TypeInfo es1370_info = {
|
||||||
.name = "ES1370",
|
.name = TYPE_ES1370,
|
||||||
.parent = TYPE_PCI_DEVICE,
|
.parent = TYPE_PCI_DEVICE,
|
||||||
.instance_size = sizeof (ES1370State),
|
.instance_size = sizeof (ES1370State),
|
||||||
.class_init = es1370_class_init,
|
.class_init = es1370_class_init,
|
||||||
|
|
|
@ -45,7 +45,7 @@ static const uint8_t hid_usage_keys[0x100] = {
|
||||||
0xe2, 0x2c, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e,
|
0xe2, 0x2c, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e,
|
||||||
0x3f, 0x40, 0x41, 0x42, 0x43, 0x53, 0x47, 0x5f,
|
0x3f, 0x40, 0x41, 0x42, 0x43, 0x53, 0x47, 0x5f,
|
||||||
0x60, 0x61, 0x56, 0x5c, 0x5d, 0x5e, 0x57, 0x59,
|
0x60, 0x61, 0x56, 0x5c, 0x5d, 0x5e, 0x57, 0x59,
|
||||||
0x5a, 0x5b, 0x62, 0x63, 0x00, 0x00, 0x00, 0x44,
|
0x5a, 0x5b, 0x62, 0x63, 0x00, 0x00, 0x64, 0x44,
|
||||||
0x45, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e,
|
0x45, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e,
|
||||||
0xe8, 0xe9, 0x71, 0x72, 0x73, 0x00, 0x00, 0x00,
|
0xe8, 0xe9, 0x71, 0x72, 0x73, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
|
|
@ -106,7 +106,7 @@ static void s390_ipl_realize(DeviceState *dev, Error **errp)
|
||||||
/* Adjust ELF start address to final location */
|
/* Adjust ELF start address to final location */
|
||||||
ipl->bios_start_addr += fwbase;
|
ipl->bios_start_addr += fwbase;
|
||||||
} else {
|
} else {
|
||||||
/* Try to load non-ELF file (e.g. s390-zipl.rom) */
|
/* Try to load non-ELF file (e.g. s390-ccw.img) */
|
||||||
bios_size = load_image_targphys(bios_filename, ZIPL_IMAGE_START,
|
bios_size = load_image_targphys(bios_filename, ZIPL_IMAGE_START,
|
||||||
4096);
|
4096);
|
||||||
ipl->bios_start_addr = ZIPL_IMAGE_START;
|
ipl->bios_start_addr = ZIPL_IMAGE_START;
|
||||||
|
|
|
@ -54,7 +54,6 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define MAX_BLK_DEVS 10
|
#define MAX_BLK_DEVS 10
|
||||||
#define ZIPL_FILENAME "s390-zipl.rom"
|
|
||||||
#define S390_MACHINE "s390-virtio"
|
#define S390_MACHINE "s390-virtio"
|
||||||
#define TYPE_S390_MACHINE MACHINE_TYPE_NAME(S390_MACHINE)
|
#define TYPE_S390_MACHINE MACHINE_TYPE_NAME(S390_MACHINE)
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,10 @@ do {\
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define EMULATED_DEV_NAME "ccid-card-emulated"
|
|
||||||
|
#define TYPE_EMULATED_CCID "ccid-card-emulated"
|
||||||
|
#define EMULATED_CCID_CARD(obj) \
|
||||||
|
OBJECT_CHECK(EmulatedState, (obj), TYPE_EMULATED_CCID)
|
||||||
|
|
||||||
#define BACKEND_NSS_EMULATED_NAME "nss-emulated"
|
#define BACKEND_NSS_EMULATED_NAME "nss-emulated"
|
||||||
#define BACKEND_CERTIFICATES_NAME "certificates"
|
#define BACKEND_CERTIFICATES_NAME "certificates"
|
||||||
|
@ -134,7 +137,7 @@ struct EmulatedState {
|
||||||
static void emulated_apdu_from_guest(CCIDCardState *base,
|
static void emulated_apdu_from_guest(CCIDCardState *base,
|
||||||
const uint8_t *apdu, uint32_t len)
|
const uint8_t *apdu, uint32_t len)
|
||||||
{
|
{
|
||||||
EmulatedState *card = DO_UPCAST(EmulatedState, base, base);
|
EmulatedState *card = EMULATED_CCID_CARD(base);
|
||||||
EmulEvent *event = (EmulEvent *)g_malloc(sizeof(EmulEvent) + len);
|
EmulEvent *event = (EmulEvent *)g_malloc(sizeof(EmulEvent) + len);
|
||||||
|
|
||||||
assert(event);
|
assert(event);
|
||||||
|
@ -151,7 +154,7 @@ static void emulated_apdu_from_guest(CCIDCardState *base,
|
||||||
|
|
||||||
static const uint8_t *emulated_get_atr(CCIDCardState *base, uint32_t *len)
|
static const uint8_t *emulated_get_atr(CCIDCardState *base, uint32_t *len)
|
||||||
{
|
{
|
||||||
EmulatedState *card = DO_UPCAST(EmulatedState, base, base);
|
EmulatedState *card = EMULATED_CCID_CARD(base);
|
||||||
|
|
||||||
*len = card->atr_length;
|
*len = card->atr_length;
|
||||||
return card->atr;
|
return card->atr;
|
||||||
|
@ -479,7 +482,7 @@ static uint32_t parse_enumeration(char *str,
|
||||||
|
|
||||||
static int emulated_initfn(CCIDCardState *base)
|
static int emulated_initfn(CCIDCardState *base)
|
||||||
{
|
{
|
||||||
EmulatedState *card = DO_UPCAST(EmulatedState, base, base);
|
EmulatedState *card = EMULATED_CCID_CARD(base);
|
||||||
VCardEmulError ret;
|
VCardEmulError ret;
|
||||||
const EnumTable *ptable;
|
const EnumTable *ptable;
|
||||||
|
|
||||||
|
@ -515,26 +518,26 @@ static int emulated_initfn(CCIDCardState *base)
|
||||||
ret = emulated_initialize_vcard_from_certificates(card);
|
ret = emulated_initialize_vcard_from_certificates(card);
|
||||||
} else {
|
} else {
|
||||||
printf("%s: you must provide all three certs for"
|
printf("%s: you must provide all three certs for"
|
||||||
" certificates backend\n", EMULATED_DEV_NAME);
|
" certificates backend\n", TYPE_EMULATED_CCID);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (card->backend != BACKEND_NSS_EMULATED) {
|
if (card->backend != BACKEND_NSS_EMULATED) {
|
||||||
printf("%s: bad backend specified. The options are:\n%s (default),"
|
printf("%s: bad backend specified. The options are:\n%s (default),"
|
||||||
" %s.\n", EMULATED_DEV_NAME, BACKEND_NSS_EMULATED_NAME,
|
" %s.\n", TYPE_EMULATED_CCID, BACKEND_NSS_EMULATED_NAME,
|
||||||
BACKEND_CERTIFICATES_NAME);
|
BACKEND_CERTIFICATES_NAME);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (card->cert1 != NULL || card->cert2 != NULL || card->cert3 != NULL) {
|
if (card->cert1 != NULL || card->cert2 != NULL || card->cert3 != NULL) {
|
||||||
printf("%s: unexpected cert parameters to nss emulated backend\n",
|
printf("%s: unexpected cert parameters to nss emulated backend\n",
|
||||||
EMULATED_DEV_NAME);
|
TYPE_EMULATED_CCID);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
/* default to mirroring the local hardware readers */
|
/* default to mirroring the local hardware readers */
|
||||||
ret = wrap_vcard_emul_init(NULL);
|
ret = wrap_vcard_emul_init(NULL);
|
||||||
}
|
}
|
||||||
if (ret != VCARD_EMUL_OK) {
|
if (ret != VCARD_EMUL_OK) {
|
||||||
printf("%s: failed to initialize vcard\n", EMULATED_DEV_NAME);
|
printf("%s: failed to initialize vcard\n", TYPE_EMULATED_CCID);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
qemu_thread_create(&card->event_thread_id, "ccid/event", event_thread,
|
qemu_thread_create(&card->event_thread_id, "ccid/event", event_thread,
|
||||||
|
@ -546,7 +549,7 @@ static int emulated_initfn(CCIDCardState *base)
|
||||||
|
|
||||||
static int emulated_exitfn(CCIDCardState *base)
|
static int emulated_exitfn(CCIDCardState *base)
|
||||||
{
|
{
|
||||||
EmulatedState *card = DO_UPCAST(EmulatedState, base, base);
|
EmulatedState *card = EMULATED_CCID_CARD(base);
|
||||||
VEvent *vevent = vevent_new(VEVENT_LAST, NULL, NULL);
|
VEvent *vevent = vevent_new(VEVENT_LAST, NULL, NULL);
|
||||||
|
|
||||||
vevent_queue_vevent(vevent); /* stop vevent thread */
|
vevent_queue_vevent(vevent); /* stop vevent thread */
|
||||||
|
@ -589,7 +592,7 @@ static void emulated_class_initfn(ObjectClass *klass, void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo emulated_card_info = {
|
static const TypeInfo emulated_card_info = {
|
||||||
.name = EMULATED_DEV_NAME,
|
.name = TYPE_EMULATED_CCID,
|
||||||
.parent = TYPE_CCID_CARD,
|
.parent = TYPE_CCID_CARD,
|
||||||
.instance_size = sizeof(EmulatedState),
|
.instance_size = sizeof(EmulatedState),
|
||||||
.class_init = emulated_class_initfn,
|
.class_init = emulated_class_initfn,
|
||||||
|
|
|
@ -39,8 +39,6 @@ static const uint8_t DEFAULT_ATR[] = {
|
||||||
0x13, 0x08
|
0x13, 0x08
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#define PASSTHRU_DEV_NAME "ccid-card-passthru"
|
|
||||||
#define VSCARD_IN_SIZE 65536
|
#define VSCARD_IN_SIZE 65536
|
||||||
|
|
||||||
/* maximum size of ATR - from 7816-3 */
|
/* maximum size of ATR - from 7816-3 */
|
||||||
|
@ -59,6 +57,10 @@ struct PassthruState {
|
||||||
uint8_t debug;
|
uint8_t debug;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define TYPE_CCID_PASSTHRU "ccid-card-passthru"
|
||||||
|
#define PASSTHRU_CCID_CARD(obj) \
|
||||||
|
OBJECT_CHECK(PassthruState, (obj), TYPE_CCID_PASSTHRU)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* VSCard protocol over chardev
|
* VSCard protocol over chardev
|
||||||
* This code should not depend on the card type.
|
* This code should not depend on the card type.
|
||||||
|
@ -317,7 +319,7 @@ static void ccid_card_vscard_event(void *opaque, int event)
|
||||||
static void passthru_apdu_from_guest(
|
static void passthru_apdu_from_guest(
|
||||||
CCIDCardState *base, const uint8_t *apdu, uint32_t len)
|
CCIDCardState *base, const uint8_t *apdu, uint32_t len)
|
||||||
{
|
{
|
||||||
PassthruState *card = DO_UPCAST(PassthruState, base, base);
|
PassthruState *card = PASSTHRU_CCID_CARD(base);
|
||||||
|
|
||||||
if (!card->cs) {
|
if (!card->cs) {
|
||||||
printf("ccid-passthru: no chardev, discarding apdu length %d\n", len);
|
printf("ccid-passthru: no chardev, discarding apdu length %d\n", len);
|
||||||
|
@ -328,7 +330,7 @@ static void passthru_apdu_from_guest(
|
||||||
|
|
||||||
static const uint8_t *passthru_get_atr(CCIDCardState *base, uint32_t *len)
|
static const uint8_t *passthru_get_atr(CCIDCardState *base, uint32_t *len)
|
||||||
{
|
{
|
||||||
PassthruState *card = DO_UPCAST(PassthruState, base, base);
|
PassthruState *card = PASSTHRU_CCID_CARD(base);
|
||||||
|
|
||||||
*len = card->atr_length;
|
*len = card->atr_length;
|
||||||
return card->atr;
|
return card->atr;
|
||||||
|
@ -336,7 +338,7 @@ static const uint8_t *passthru_get_atr(CCIDCardState *base, uint32_t *len)
|
||||||
|
|
||||||
static int passthru_initfn(CCIDCardState *base)
|
static int passthru_initfn(CCIDCardState *base)
|
||||||
{
|
{
|
||||||
PassthruState *card = DO_UPCAST(PassthruState, base, base);
|
PassthruState *card = PASSTHRU_CCID_CARD(base);
|
||||||
|
|
||||||
card->vscard_in_pos = 0;
|
card->vscard_in_pos = 0;
|
||||||
card->vscard_in_hdr = 0;
|
card->vscard_in_hdr = 0;
|
||||||
|
@ -400,7 +402,7 @@ static void passthru_class_initfn(ObjectClass *klass, void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo passthru_card_info = {
|
static const TypeInfo passthru_card_info = {
|
||||||
.name = PASSTHRU_DEV_NAME,
|
.name = TYPE_CCID_PASSTHRU,
|
||||||
.parent = TYPE_CCID_CARD,
|
.parent = TYPE_CCID_CARD,
|
||||||
.instance_size = sizeof(PassthruState),
|
.instance_size = sizeof(PassthruState),
|
||||||
.class_init = passthru_class_initfn,
|
.class_init = passthru_class_initfn,
|
||||||
|
|
|
@ -330,12 +330,6 @@ bool tcg_enabled(void);
|
||||||
|
|
||||||
void cpu_exec_init_all(void);
|
void cpu_exec_init_all(void);
|
||||||
|
|
||||||
/* CPU save/load. */
|
|
||||||
#ifdef CPU_SAVE_VERSION
|
|
||||||
void cpu_save(QEMUFile *f, void *opaque);
|
|
||||||
int cpu_load(QEMUFile *f, void *opaque, int version_id);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Unblock cpu */
|
/* Unblock cpu */
|
||||||
void qemu_cpu_kick_self(void);
|
void qemu_cpu_kick_self(void);
|
||||||
|
|
||||||
|
|
|
@ -1115,7 +1115,7 @@ void object_property_set_int(Object *obj, int64_t value,
|
||||||
* @name: the name of the property
|
* @name: the name of the property
|
||||||
* @errp: returns an error if this function fails
|
* @errp: returns an error if this function fails
|
||||||
*
|
*
|
||||||
* Returns: the value of the property, converted to an integer, or NULL if
|
* Returns: the value of the property, converted to an integer, or negative if
|
||||||
* an error occurs (including when the property value is not an integer).
|
* an error occurs (including when the property value is not an integer).
|
||||||
*/
|
*/
|
||||||
int64_t object_property_get_int(Object *obj, const char *name,
|
int64_t object_property_get_int(Object *obj, const char *name,
|
||||||
|
|
|
@ -26,8 +26,8 @@
|
||||||
#ifndef QEMU_OS_WIN32_H
|
#ifndef QEMU_OS_WIN32_H
|
||||||
#define QEMU_OS_WIN32_H
|
#define QEMU_OS_WIN32_H
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
/* Workaround for older versions of MinGW. */
|
/* Workaround for older versions of MinGW. */
|
||||||
#ifndef ECONNREFUSED
|
#ifndef ECONNREFUSED
|
||||||
|
|
|
@ -1691,8 +1691,8 @@ static void *migration_thread(void *opaque)
|
||||||
double bandwidth = (double)transferred_bytes / time_spent;
|
double bandwidth = (double)transferred_bytes / time_spent;
|
||||||
max_size = bandwidth * migrate_max_downtime() / 1000000;
|
max_size = bandwidth * migrate_max_downtime() / 1000000;
|
||||||
|
|
||||||
s->mbps = time_spent ? (((double) transferred_bytes * 8.0) /
|
s->mbps = (((double) transferred_bytes * 8.0) /
|
||||||
((double) time_spent / 1000.0)) / 1000.0 / 1000.0 : -1;
|
((double) time_spent / 1000.0)) / 1000.0 / 1000.0;
|
||||||
|
|
||||||
trace_migrate_transferred(transferred_bytes, time_spent,
|
trace_migrate_transferred(transferred_bytes, time_spent,
|
||||||
bandwidth, max_size);
|
bandwidth, max_size);
|
||||||
|
|
|
@ -35,10 +35,6 @@
|
||||||
10ec:8139 -> pxe-rtl8139.rom
|
10ec:8139 -> pxe-rtl8139.rom
|
||||||
1af4:1000 -> pxe-virtio.rom
|
1af4:1000 -> pxe-virtio.rom
|
||||||
|
|
||||||
- The S390 zipl loader is an addition to the official IBM s390-tools
|
|
||||||
package. That fork is maintained in its own git repository at:
|
|
||||||
git://repo.or.cz/s390-tools.git
|
|
||||||
|
|
||||||
- The sources for the Alpha palcode image is available from:
|
- The sources for the Alpha palcode image is available from:
|
||||||
git://github.com/rth7680/qemu-palcode.git
|
git://github.com/rth7680/qemu-palcode.git
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -1796,12 +1796,12 @@ static int pp_ioctl(CharDriverState *chr, int cmd, void *arg)
|
||||||
}
|
}
|
||||||
|
|
||||||
static CharDriverState *qemu_chr_open_pp_fd(int fd,
|
static CharDriverState *qemu_chr_open_pp_fd(int fd,
|
||||||
ChardevBackend *backend,
|
ChardevCommon *backend,
|
||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
CharDriverState *chr;
|
CharDriverState *chr;
|
||||||
|
|
||||||
chr = qemu_chr_alloc(common, errp);
|
chr = qemu_chr_alloc(backend, errp);
|
||||||
if (!chr) {
|
if (!chr) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3064,7 +3064,6 @@ Additional Requirements (install in order):
|
||||||
@item pkg-config: @uref{http://www.freedesktop.org/wiki/Software/pkg-config/}
|
@item pkg-config: @uref{http://www.freedesktop.org/wiki/Software/pkg-config/}
|
||||||
@item autoconf: @uref{http://www.gnu.org/software/autoconf/autoconf.html}
|
@item autoconf: @uref{http://www.gnu.org/software/autoconf/autoconf.html}
|
||||||
@item automake: @uref{http://www.gnu.org/software/automake/}
|
@item automake: @uref{http://www.gnu.org/software/automake/}
|
||||||
@item libtool: @uref{http://www.gnu.org/software/libtool/}
|
|
||||||
@item pixman: @uref{http://www.pixman.org/}
|
@item pixman: @uref{http://www.pixman.org/}
|
||||||
@end enumerate
|
@end enumerate
|
||||||
|
|
||||||
|
|
18
rules.mak
18
rules.mak
|
@ -62,27 +62,9 @@ expand-objs = $(strip $(sort $(filter %.o,$1)) \
|
||||||
# must link with the C++ compiler, not the plain C compiler.
|
# must link with the C++ compiler, not the plain C compiler.
|
||||||
LINKPROG = $(or $(CXX),$(CC))
|
LINKPROG = $(or $(CXX),$(CC))
|
||||||
|
|
||||||
ifeq ($(LIBTOOL),)
|
|
||||||
LINK = $(call quiet-command, $(LINKPROG) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \
|
LINK = $(call quiet-command, $(LINKPROG) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \
|
||||||
$(call process-archive-undefs, $1) \
|
$(call process-archive-undefs, $1) \
|
||||||
$(version-obj-y) $(call extract-libs,$1) $(LIBS)," LINK $(TARGET_DIR)$@")
|
$(version-obj-y) $(call extract-libs,$1) $(LIBS)," LINK $(TARGET_DIR)$@")
|
||||||
else
|
|
||||||
LIBTOOL += $(if $(V),,--quiet)
|
|
||||||
%.lo: %.c
|
|
||||||
$(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC $(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) $($*.o-cflags) -c -o $@ $<," lt CC $@")
|
|
||||||
%.lo: %.rc
|
|
||||||
$(call quiet-command,$(LIBTOOL) --mode=compile --tag=RC $(WINDRES) -I. -o $@ $<,"lt RC $(TARGET_DIR)$@")
|
|
||||||
%.lo: %.dtrace
|
|
||||||
$(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC dtrace -o $@ -G -s $<, " lt GEN $(TARGET_DIR)$@")
|
|
||||||
|
|
||||||
LINK = $(call quiet-command,\
|
|
||||||
$(if $(filter %.lo %.la,$1),$(LIBTOOL) --mode=link --tag=CC \
|
|
||||||
)$(LINKPROG) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \
|
|
||||||
$(call process-archive-undefs, $1)\
|
|
||||||
$(if $(filter %.lo %.la,$1),$(version-lobj-y),$(version-obj-y)) \
|
|
||||||
$(if $(filter %.lo %.la,$1),$(LIBTOOLFLAGS)) \
|
|
||||||
$(call extract-libs,$(1:.lo=.o)) $(LIBS),$(if $(filter %.lo %.la,$1),"lt LINK ", " LINK ")"$(TARGET_DIR)$@")
|
|
||||||
endif
|
|
||||||
|
|
||||||
%.asm: %.S
|
%.asm: %.S
|
||||||
$(call quiet-command,$(CPP) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -o $@ $<," CPP $(TARGET_DIR)$@")
|
$(call quiet-command,$(CPP) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -o $@ $<," CPP $(TARGET_DIR)$@")
|
||||||
|
|
|
@ -459,7 +459,7 @@ static int inet_dgram_saddr(InetSocketAddress *sraddr,
|
||||||
|
|
||||||
if (err) {
|
if (err) {
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
return -1;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
addr = sraddr->host;
|
addr = sraddr->host;
|
||||||
|
@ -469,13 +469,13 @@ static int inet_dgram_saddr(InetSocketAddress *sraddr,
|
||||||
}
|
}
|
||||||
if (port == NULL || strlen(port) == 0) {
|
if (port == NULL || strlen(port) == 0) {
|
||||||
error_setg(errp, "remote port not specified");
|
error_setg(errp, "remote port not specified");
|
||||||
return -1;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 != (rc = getaddrinfo(addr, port, &ai, &peer))) {
|
if (0 != (rc = getaddrinfo(addr, port, &ai, &peer))) {
|
||||||
error_setg(errp, "address resolution failed for %s:%s: %s", addr, port,
|
error_setg(errp, "address resolution failed for %s:%s: %s", addr, port,
|
||||||
gai_strerror(rc));
|
gai_strerror(rc));
|
||||||
return -1;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* lookup local addr */
|
/* lookup local addr */
|
||||||
|
|
Loading…
Reference in New Issue