mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-26 21:10:42 +00:00
* Update the references to some doc files (use *.rst instead of *.txt)
* Bump minimum versions of some requirements after removing CentOS 7 support -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmC3L1IRHHRodXRoQHJl ZGhhdC5jb20ACgkQLtnXdP5wLbU8wA//aRAIn0Qa3xoZdsT434P99GHauCZ5ePq3 meY4co69c+TfkQZ/b0xlyvT3+7bd9Ni92CQL7n/LtX5bs3pIhRjHNIsm50e4x6Da 0jb422cKWfRIltXlCfdL/dnFRtJluH83M0seRGMvmhveuWPZ19oSIasEiQjeg//e KMNK5z4HEnJ1czb3Bf8p38bmmY/O/QEAA5wAqk7iJkJHz6T/GlqImLYYwpFPlHj6 JQttm0aWsHrsqEXxnuV0/DT1yHyXDB6S4iuAvABZWhv/M/nCaXo0ib0gW5NPtRPo Yf3HO163F9/fewJCc1AUsBe1C/2UwmSWRhEtxpr9uuW2Mv9qEl3hkJwd4k6sEOvh U4i+GONC4eElPcmECKUfHA9EP+7faDs6xnM6Ev/PIEp+cPJ2QRfklZv4qpMUWYtb 3KkADchOyVZAsdB8cGmnznDEVmno1Dt0adVUq8CF6uW6MwD3pb4838arrfwIfwOp g4yTI1AQQykkxxOaR7GSNoxWRti7TH4fzLhx/xXDd9TKIOWuOepiyuhB7+Q48WAJ 6EW/JUIzOe7k3GsI0iBsk+y67ED2tpATiRKWWw4QS1BwIhNEMUqgZkucFfKE6Ze1 B1Xw+Di+1CzrLHV6lCjtdLVmqWqcGcO43HqhSK4sodE87BDGGwy9UxE6oBVt2C1x HPQ6/omDlFk= =RAkI -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/thuth-gitlab/tags/pull-request-2021-06-02' into staging * Update the references to some doc files (use *.rst instead of *.txt) * Bump minimum versions of some requirements after removing CentOS 7 support # gpg: Signature made Wed 02 Jun 2021 08:12:18 BST # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * remotes/thuth-gitlab/tags/pull-request-2021-06-02: configure: bump min required CLang to 6.0 / XCode 10.0 configure: bump min required GCC to 7.5.0 configure: bump min required glib version to 2.56 tests/docker: drop CentOS 7 container tests/vm: convert centos VM recipe to CentOS 8 crypto: drop used conditional check crypto: bump min gnutls to 3.5.18, dropping RHEL-7 support crypto: bump min gcrypt to 1.8.0, dropping RHEL-7 support crypto: drop back compatibility typedefs for nettle crypto: bump min nettle to 3.4, dropping RHEL-7 support patchew: move quick build job from CentOS 7 to CentOS 8 container block/ssh: Bump minimum libssh version to 0.8.7 docs: fix references to docs/devel/s390-dasd-ipl.rst docs: fix references to docs/specs/tpm.rst docs: fix references to docs/devel/build-system.rst docs: fix references to docs/devel/atomics.rst docs: fix references to docs/devel/tracing.rst Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
8c345b3e6a
@ -626,41 +626,6 @@ build-coroutine-sigaltstack:
|
||||
--enable-trace-backends=ftrace
|
||||
MAKE_CHECK_ARGS: check-unit
|
||||
|
||||
# Most jobs test latest gcrypt or nettle builds
|
||||
#
|
||||
# These jobs test old gcrypt and nettle from RHEL7
|
||||
# which had some API differences.
|
||||
crypto-old-nettle:
|
||||
extends: .native_build_job_template
|
||||
needs:
|
||||
job: amd64-centos7-container
|
||||
variables:
|
||||
IMAGE: centos7
|
||||
TARGETS: x86_64-softmmu x86_64-linux-user
|
||||
CONFIGURE_ARGS: --disable-gcrypt --enable-nettle
|
||||
MAKE_CHECK_ARGS: check
|
||||
|
||||
crypto-old-gcrypt:
|
||||
extends: .native_build_job_template
|
||||
needs:
|
||||
job: amd64-centos7-container
|
||||
variables:
|
||||
IMAGE: centos7
|
||||
TARGETS: x86_64-softmmu x86_64-linux-user
|
||||
CONFIGURE_ARGS: --disable-nettle --enable-gcrypt
|
||||
MAKE_CHECK_ARGS: check
|
||||
|
||||
crypto-only-gnutls:
|
||||
extends: .native_build_job_template
|
||||
needs:
|
||||
job: amd64-centos7-container
|
||||
variables:
|
||||
IMAGE: centos7
|
||||
TARGETS: x86_64-softmmu x86_64-linux-user
|
||||
CONFIGURE_ARGS: --disable-nettle --disable-gcrypt --enable-gnutls
|
||||
MAKE_CHECK_ARGS: check
|
||||
|
||||
|
||||
# Check our reduced build configurations
|
||||
build-without-default-devices:
|
||||
extends: .native_build_job_template
|
||||
|
@ -7,11 +7,6 @@ amd64-alpine-container:
|
||||
variables:
|
||||
NAME: alpine
|
||||
|
||||
amd64-centos7-container:
|
||||
extends: .container_job_template
|
||||
variables:
|
||||
NAME: centos7
|
||||
|
||||
amd64-debian11-container:
|
||||
extends: .container_job_template
|
||||
variables:
|
||||
|
@ -88,7 +88,7 @@ email:
|
||||
more information:
|
||||
|
||||
{{ logtext }}
|
||||
{% elif test == "docker-mingw@fedora" or test == "docker-quick@centos7" or test == "asan" %}
|
||||
{% elif test == "docker-mingw@fedora" or test == "docker-quick@centos8" or test == "asan" %}
|
||||
Hi,
|
||||
|
||||
This series failed the {{ test }} build test. Please find the testing commands and
|
||||
@ -124,13 +124,13 @@ testing:
|
||||
script: |
|
||||
#!/bin/bash
|
||||
time make docker-test-debug@fedora TARGET_LIST=x86_64-softmmu J=14 NETWORK=1
|
||||
docker-quick@centos7:
|
||||
docker-quick@centos8:
|
||||
enabled: false
|
||||
requirements: docker,x86_64
|
||||
timeout: 3600
|
||||
script: |
|
||||
#!/bin/bash
|
||||
time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1
|
||||
time make docker-test-quick@centos8 SHOW_ENV=1 J=14 NETWORK=1
|
||||
checkpatch:
|
||||
enabled: true
|
||||
requirements: ''
|
||||
|
@ -2692,7 +2692,7 @@ F: scripts/tracetool.py
|
||||
F: scripts/tracetool/
|
||||
F: scripts/qemu-trace-stap*
|
||||
F: docs/tools/qemu-trace-stap.rst
|
||||
F: docs/devel/tracing.txt
|
||||
F: docs/devel/tracing.rst
|
||||
T: git https://github.com/stefanha/qemu.git tracing
|
||||
|
||||
TPM
|
||||
@ -3361,7 +3361,7 @@ Documentation
|
||||
Build system architecture
|
||||
M: Daniel P. Berrange <berrange@redhat.com>
|
||||
S: Odd Fixes
|
||||
F: docs/devel/build-system.txt
|
||||
F: docs/devel/build-system.rst
|
||||
|
||||
GIT Data Mining Config
|
||||
M: Alex Bennée <alex.bennee@linaro.org>
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# kvm-all.c
|
||||
kvm_ioctl(int type, void *arg) "type 0x%x, arg %p"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# TCG related tracing
|
||||
# cpu-exec.c
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# alsaaudio.c
|
||||
alsa_revents(int revents) "revents = %d"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# base.c
|
||||
qauthz_is_allowed(void *authz, const char *identity, bool allowed) "AuthZ %p check identity=%s allowed=%d"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# tpm_passthrough.c
|
||||
tpm_passthrough_handle_request(void *cmd) "processing command %p"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# dbus-vmstate.c
|
||||
dbus_vmstate_pre_save(void)
|
||||
|
59
block/ssh.c
59
block/ssh.c
@ -277,7 +277,6 @@ static void ssh_parse_filename(const char *filename, QDict *options,
|
||||
static int check_host_key_knownhosts(BDRVSSHState *s, Error **errp)
|
||||
{
|
||||
int ret;
|
||||
#ifdef HAVE_LIBSSH_0_8
|
||||
enum ssh_known_hosts_e state;
|
||||
int r;
|
||||
ssh_key pubkey;
|
||||
@ -343,46 +342,6 @@ static int check_host_key_knownhosts(BDRVSSHState *s, Error **errp)
|
||||
error_setg(errp, "error while checking for known server (%d)", state);
|
||||
goto out;
|
||||
}
|
||||
#else /* !HAVE_LIBSSH_0_8 */
|
||||
int state;
|
||||
|
||||
state = ssh_is_server_known(s->session);
|
||||
trace_ssh_server_status(state);
|
||||
|
||||
switch (state) {
|
||||
case SSH_SERVER_KNOWN_OK:
|
||||
/* OK */
|
||||
trace_ssh_check_host_key_knownhosts();
|
||||
break;
|
||||
case SSH_SERVER_KNOWN_CHANGED:
|
||||
ret = -EINVAL;
|
||||
error_setg(errp,
|
||||
"host key does not match the one in known_hosts; this "
|
||||
"may be a possible attack");
|
||||
goto out;
|
||||
case SSH_SERVER_FOUND_OTHER:
|
||||
ret = -EINVAL;
|
||||
error_setg(errp,
|
||||
"host key for this server not found, another type exists");
|
||||
goto out;
|
||||
case SSH_SERVER_FILE_NOT_FOUND:
|
||||
ret = -ENOENT;
|
||||
error_setg(errp, "known_hosts file not found");
|
||||
goto out;
|
||||
case SSH_SERVER_NOT_KNOWN:
|
||||
ret = -EINVAL;
|
||||
error_setg(errp, "no host key was found in known_hosts");
|
||||
goto out;
|
||||
case SSH_SERVER_ERROR:
|
||||
ret = -EINVAL;
|
||||
error_setg(errp, "server error");
|
||||
goto out;
|
||||
default:
|
||||
ret = -EINVAL;
|
||||
error_setg(errp, "error while checking for known server (%d)", state);
|
||||
goto out;
|
||||
}
|
||||
#endif /* !HAVE_LIBSSH_0_8 */
|
||||
|
||||
/* known_hosts checking successful. */
|
||||
ret = 0;
|
||||
@ -438,11 +397,7 @@ check_host_key_hash(BDRVSSHState *s, const char *hash,
|
||||
unsigned char *server_hash;
|
||||
size_t server_hash_len;
|
||||
|
||||
#ifdef HAVE_LIBSSH_0_8
|
||||
r = ssh_get_server_publickey(s->session, &pubkey);
|
||||
#else
|
||||
r = ssh_get_publickey(s->session, &pubkey);
|
||||
#endif
|
||||
if (r != SSH_OK) {
|
||||
session_error_setg(errp, s, "failed to read remote host key");
|
||||
return -EINVAL;
|
||||
@ -1233,8 +1188,6 @@ static void unsafe_flush_warning(BDRVSSHState *s, const char *what)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBSSH_0_8
|
||||
|
||||
static coroutine_fn int ssh_flush(BDRVSSHState *s, BlockDriverState *bs)
|
||||
{
|
||||
int r;
|
||||
@ -1271,18 +1224,6 @@ static coroutine_fn int ssh_co_flush(BlockDriverState *bs)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#else /* !HAVE_LIBSSH_0_8 */
|
||||
|
||||
static coroutine_fn int ssh_co_flush(BlockDriverState *bs)
|
||||
{
|
||||
BDRVSSHState *s = bs->opaque;
|
||||
|
||||
unsafe_flush_warning(s, "libssh >= 0.8.0");
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* !HAVE_LIBSSH_0_8 */
|
||||
|
||||
static int64_t ssh_getlength(BlockDriverState *bs)
|
||||
{
|
||||
BDRVSSHState *s = bs->opaque;
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# ../block.c
|
||||
bdrv_open_common(void *bs, const char *filename, int flags, const char *format_name) "bs %p filename \"%s\" flags 0x%x format_name \"%s\""
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# wctablet.c
|
||||
wct_init(void) ""
|
||||
|
59
configure
vendored
59
configure
vendored
@ -407,7 +407,6 @@ gnutls="$default_feature"
|
||||
nettle="$default_feature"
|
||||
nettle_xts="no"
|
||||
gcrypt="$default_feature"
|
||||
gcrypt_hmac="no"
|
||||
gcrypt_xts="no"
|
||||
qemu_private_xts="yes"
|
||||
auth_pam="$default_feature"
|
||||
@ -2057,17 +2056,17 @@ fi
|
||||
cat > $TMPC << EOF
|
||||
#if defined(__clang_major__) && defined(__clang_minor__)
|
||||
# ifdef __apple_build_version__
|
||||
# if __clang_major__ < 5 || (__clang_major__ == 5 && __clang_minor__ < 1)
|
||||
# error You need at least XCode Clang v5.1 to compile QEMU
|
||||
# if __clang_major__ < 10 || (__clang_major__ == 10 && __clang_minor__ < 0)
|
||||
# error You need at least XCode Clang v10.0 to compile QEMU
|
||||
# endif
|
||||
# else
|
||||
# if __clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 4)
|
||||
# error You need at least Clang v3.4 to compile QEMU
|
||||
# if __clang_major__ < 6 || (__clang_major__ == 6 && __clang_minor__ < 0)
|
||||
# error You need at least Clang v6.0 to compile QEMU
|
||||
# endif
|
||||
# endif
|
||||
#elif defined(__GNUC__) && defined(__GNUC_MINOR__)
|
||||
# if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8)
|
||||
# error You need at least GCC v4.8 to compile QEMU
|
||||
# if __GNUC__ < 7 || (__GNUC__ == 7 && __GNUC_MINOR__ < 5)
|
||||
# error You need at least GCC v7.5.0 to compile QEMU
|
||||
# endif
|
||||
#else
|
||||
# error You either need GCC or Clang to compiler QEMU
|
||||
@ -2075,7 +2074,7 @@ cat > $TMPC << EOF
|
||||
int main (void) { return 0; }
|
||||
EOF
|
||||
if ! compile_prog "" "" ; then
|
||||
error_exit "You need at least GCC v4.8 or Clang v3.4 (or XCode Clang v5.1)"
|
||||
error_exit "You need at least GCC v7.5 or Clang v6.0 (or XCode Clang v10.0)"
|
||||
fi
|
||||
|
||||
# Accumulate -Wfoo and -Wno-bar separately.
|
||||
@ -2802,7 +2801,7 @@ fi
|
||||
|
||||
if test "$gnutls" != "no"; then
|
||||
pass="no"
|
||||
if $pkg_config --exists "gnutls >= 3.1.18"; then
|
||||
if $pkg_config --exists "gnutls >= 3.5.18"; then
|
||||
gnutls_cflags=$($pkg_config --cflags gnutls)
|
||||
gnutls_libs=$($pkg_config --libs gnutls)
|
||||
# Packaging for the static libraries is not always correct.
|
||||
@ -2860,7 +2859,7 @@ has_libgcrypt() {
|
||||
maj=`libgcrypt-config --version | awk -F . '{print $1}'`
|
||||
min=`libgcrypt-config --version | awk -F . '{print $2}'`
|
||||
|
||||
if test $maj != 1 || test $min -lt 5
|
||||
if test $maj != 1 || test $min -lt 8
|
||||
then
|
||||
return 1
|
||||
fi
|
||||
@ -2871,10 +2870,9 @@ has_libgcrypt() {
|
||||
|
||||
if test "$nettle" != "no"; then
|
||||
pass="no"
|
||||
if $pkg_config --exists "nettle >= 2.7.1"; then
|
||||
if $pkg_config --exists "nettle >= 3.4"; then
|
||||
nettle_cflags=$($pkg_config --cflags nettle)
|
||||
nettle_libs=$($pkg_config --libs nettle)
|
||||
nettle_version=$($pkg_config --modversion nettle)
|
||||
# Link test to make sure the given libraries work (e.g for static).
|
||||
write_c_skeleton
|
||||
if compile_prog "" "$nettle_libs" ; then
|
||||
@ -2927,18 +2925,6 @@ if test "$gcrypt" != "no"; then
|
||||
gcrypt="yes"
|
||||
cat > $TMPC << EOF
|
||||
#include <gcrypt.h>
|
||||
int main(void) {
|
||||
gcry_mac_hd_t handle;
|
||||
gcry_mac_open(&handle, GCRY_MAC_HMAC_MD5,
|
||||
GCRY_MAC_FLAG_SECURE, NULL);
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
if compile_prog "$gcrypt_cflags" "$gcrypt_libs" ; then
|
||||
gcrypt_hmac=yes
|
||||
fi
|
||||
cat > $TMPC << EOF
|
||||
#include <gcrypt.h>
|
||||
int main(void) {
|
||||
gcry_cipher_hd_t handle;
|
||||
gcry_cipher_open(&handle, GCRY_CIPHER_AES, GCRY_CIPHER_MODE_XTS, 0);
|
||||
@ -3321,7 +3307,7 @@ done
|
||||
##########################################
|
||||
# glib support probe
|
||||
|
||||
glib_req_ver=2.48
|
||||
glib_req_ver=2.56
|
||||
glib_modules=gthread-2.0
|
||||
if test "$modules" = yes; then
|
||||
glib_modules="$glib_modules gmodule-export-2.0"
|
||||
@ -3529,7 +3515,7 @@ fi
|
||||
##########################################
|
||||
# libssh probe
|
||||
if test "$libssh" != "no" ; then
|
||||
if $pkg_config --exists libssh; then
|
||||
if $pkg_config --exists "libssh >= 0.8.7"; then
|
||||
libssh_cflags=$($pkg_config libssh --cflags)
|
||||
libssh_libs=$($pkg_config libssh --libs)
|
||||
libssh=yes
|
||||
@ -3541,23 +3527,6 @@ if test "$libssh" != "no" ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
##########################################
|
||||
# Check for libssh 0.8
|
||||
# This is done like this instead of using the LIBSSH_VERSION_* and
|
||||
# SSH_VERSION_* macros because some distributions in the past shipped
|
||||
# snapshots of the future 0.8 from Git, and those snapshots did not
|
||||
# have updated version numbers (still referring to 0.7.0).
|
||||
|
||||
if test "$libssh" = "yes"; then
|
||||
cat > $TMPC <<EOF
|
||||
#include <libssh/libssh.h>
|
||||
int main(void) { return ssh_get_server_publickey(NULL, NULL); }
|
||||
EOF
|
||||
if compile_prog "$libssh_cflags" "$libssh_libs"; then
|
||||
libssh_cflags="-DHAVE_LIBSSH_0_8 $libssh_cflags"
|
||||
fi
|
||||
fi
|
||||
|
||||
##########################################
|
||||
# linux-aio probe
|
||||
|
||||
@ -5739,15 +5708,11 @@ if test "$gnutls" = "yes" ; then
|
||||
fi
|
||||
if test "$gcrypt" = "yes" ; then
|
||||
echo "CONFIG_GCRYPT=y" >> $config_host_mak
|
||||
if test "$gcrypt_hmac" = "yes" ; then
|
||||
echo "CONFIG_GCRYPT_HMAC=y" >> $config_host_mak
|
||||
fi
|
||||
echo "GCRYPT_CFLAGS=$gcrypt_cflags" >> $config_host_mak
|
||||
echo "GCRYPT_LIBS=$gcrypt_libs" >> $config_host_mak
|
||||
fi
|
||||
if test "$nettle" = "yes" ; then
|
||||
echo "CONFIG_NETTLE=y" >> $config_host_mak
|
||||
echo "CONFIG_NETTLE_VERSION_MAJOR=${nettle_version%%.*}" >> $config_host_mak
|
||||
echo "NETTLE_CFLAGS=$nettle_cflags" >> $config_host_mak
|
||||
echo "NETTLE_LIBS=$nettle_libs" >> $config_host_mak
|
||||
fi
|
||||
|
@ -34,47 +34,6 @@
|
||||
#include <nettle/xts.h>
|
||||
#endif
|
||||
|
||||
typedef void (*QCryptoCipherNettleFuncWrapper)(const void *ctx,
|
||||
size_t length,
|
||||
uint8_t *dst,
|
||||
const uint8_t *src);
|
||||
|
||||
#if CONFIG_NETTLE_VERSION_MAJOR < 3
|
||||
typedef nettle_crypt_func * QCryptoCipherNettleFuncNative;
|
||||
typedef void * cipher_ctx_t;
|
||||
typedef unsigned cipher_length_t;
|
||||
#define CONST_CTX
|
||||
|
||||
#define cast5_set_key cast128_set_key
|
||||
|
||||
#define aes128_ctx aes_ctx
|
||||
#define aes192_ctx aes_ctx
|
||||
#define aes256_ctx aes_ctx
|
||||
#define aes128_set_encrypt_key(c, k) \
|
||||
aes_set_encrypt_key(c, 16, k)
|
||||
#define aes192_set_encrypt_key(c, k) \
|
||||
aes_set_encrypt_key(c, 24, k)
|
||||
#define aes256_set_encrypt_key(c, k) \
|
||||
aes_set_encrypt_key(c, 32, k)
|
||||
#define aes128_set_decrypt_key(c, k) \
|
||||
aes_set_decrypt_key(c, 16, k)
|
||||
#define aes192_set_decrypt_key(c, k) \
|
||||
aes_set_decrypt_key(c, 24, k)
|
||||
#define aes256_set_decrypt_key(c, k) \
|
||||
aes_set_decrypt_key(c, 32, k)
|
||||
#define aes128_encrypt aes_encrypt
|
||||
#define aes192_encrypt aes_encrypt
|
||||
#define aes256_encrypt aes_encrypt
|
||||
#define aes128_decrypt aes_decrypt
|
||||
#define aes192_decrypt aes_decrypt
|
||||
#define aes256_decrypt aes_decrypt
|
||||
#else
|
||||
typedef nettle_cipher_func * QCryptoCipherNettleFuncNative;
|
||||
typedef const void * cipher_ctx_t;
|
||||
typedef size_t cipher_length_t;
|
||||
#define CONST_CTX const
|
||||
#endif
|
||||
|
||||
static inline bool qcrypto_length_check(size_t len, size_t blocksize,
|
||||
Error **errp)
|
||||
{
|
||||
@ -197,12 +156,12 @@ static const struct QCryptoCipherDriver NAME##_driver_ctr = { \
|
||||
static void NAME##_xts_wrape(const void *ctx, size_t length, \
|
||||
uint8_t *dst, const uint8_t *src) \
|
||||
{ \
|
||||
ENCRYPT((cipher_ctx_t)ctx, length, dst, src); \
|
||||
ENCRYPT((const void *)ctx, length, dst, src); \
|
||||
} \
|
||||
static void NAME##_xts_wrapd(const void *ctx, size_t length, \
|
||||
uint8_t *dst, const uint8_t *src) \
|
||||
{ \
|
||||
DECRYPT((cipher_ctx_t)ctx, length, dst, src); \
|
||||
DECRYPT((const void *)ctx, length, dst, src); \
|
||||
} \
|
||||
static int NAME##_encrypt_xts(QCryptoCipher *cipher, const void *in, \
|
||||
void *out, size_t len, Error **errp) \
|
||||
@ -282,13 +241,13 @@ typedef struct QCryptoNettleDESRFB {
|
||||
uint8_t iv[DES_BLOCK_SIZE];
|
||||
} QCryptoNettleDESRFB;
|
||||
|
||||
static void des_encrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void des_encrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
des_encrypt(ctx, length, dst, src);
|
||||
}
|
||||
|
||||
static void des_decrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void des_decrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
des_decrypt(ctx, length, dst, src);
|
||||
@ -304,13 +263,13 @@ typedef struct QCryptoNettleDES3 {
|
||||
uint8_t iv[DES3_BLOCK_SIZE];
|
||||
} QCryptoNettleDES3;
|
||||
|
||||
static void des3_encrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void des3_encrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
des3_encrypt(ctx, length, dst, src);
|
||||
}
|
||||
|
||||
static void des3_decrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void des3_decrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
des3_decrypt(ctx, length, dst, src);
|
||||
@ -327,17 +286,17 @@ typedef struct QCryptoNettleAES128 {
|
||||
struct aes128_ctx key[2], key_xts[2];
|
||||
} QCryptoNettleAES128;
|
||||
|
||||
static void aes128_encrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void aes128_encrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
CONST_CTX struct aes128_ctx *keys = ctx;
|
||||
const struct aes128_ctx *keys = ctx;
|
||||
aes128_encrypt(&keys[0], length, dst, src);
|
||||
}
|
||||
|
||||
static void aes128_decrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void aes128_decrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
CONST_CTX struct aes128_ctx *keys = ctx;
|
||||
const struct aes128_ctx *keys = ctx;
|
||||
aes128_decrypt(&keys[1], length, dst, src);
|
||||
}
|
||||
|
||||
@ -353,17 +312,17 @@ typedef struct QCryptoNettleAES192 {
|
||||
struct aes192_ctx key[2], key_xts[2];
|
||||
} QCryptoNettleAES192;
|
||||
|
||||
static void aes192_encrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void aes192_encrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
CONST_CTX struct aes192_ctx *keys = ctx;
|
||||
const struct aes192_ctx *keys = ctx;
|
||||
aes192_encrypt(&keys[0], length, dst, src);
|
||||
}
|
||||
|
||||
static void aes192_decrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void aes192_decrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
CONST_CTX struct aes192_ctx *keys = ctx;
|
||||
const struct aes192_ctx *keys = ctx;
|
||||
aes192_decrypt(&keys[1], length, dst, src);
|
||||
}
|
||||
|
||||
@ -379,17 +338,17 @@ typedef struct QCryptoNettleAES256 {
|
||||
struct aes256_ctx key[2], key_xts[2];
|
||||
} QCryptoNettleAES256;
|
||||
|
||||
static void aes256_encrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void aes256_encrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
CONST_CTX struct aes256_ctx *keys = ctx;
|
||||
const struct aes256_ctx *keys = ctx;
|
||||
aes256_encrypt(&keys[0], length, dst, src);
|
||||
}
|
||||
|
||||
static void aes256_decrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
static void aes256_decrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
CONST_CTX struct aes256_ctx *keys = ctx;
|
||||
const struct aes256_ctx *keys = ctx;
|
||||
aes256_decrypt(&keys[1], length, dst, src);
|
||||
}
|
||||
|
||||
@ -404,13 +363,13 @@ typedef struct QCryptoNettleCAST128 {
|
||||
struct cast128_ctx key, key_xts;
|
||||
} QCryptoNettleCAST128;
|
||||
|
||||
static void cast128_encrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void cast128_encrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
cast128_encrypt(ctx, length, dst, src);
|
||||
}
|
||||
|
||||
static void cast128_decrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void cast128_decrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
cast128_decrypt(ctx, length, dst, src);
|
||||
@ -428,13 +387,13 @@ typedef struct QCryptoNettleSerpent {
|
||||
} QCryptoNettleSerpent;
|
||||
|
||||
|
||||
static void serpent_encrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void serpent_encrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
serpent_encrypt(ctx, length, dst, src);
|
||||
}
|
||||
|
||||
static void serpent_decrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void serpent_decrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
serpent_decrypt(ctx, length, dst, src);
|
||||
@ -451,13 +410,13 @@ typedef struct QCryptoNettleTwofish {
|
||||
struct twofish_ctx key, key_xts;
|
||||
} QCryptoNettleTwofish;
|
||||
|
||||
static void twofish_encrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void twofish_encrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
twofish_encrypt(ctx, length, dst, src);
|
||||
}
|
||||
|
||||
static void twofish_decrypt_native(cipher_ctx_t ctx, cipher_length_t length,
|
||||
static void twofish_decrypt_native(const void *ctx, size_t length,
|
||||
uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
twofish_decrypt(ctx, length, dst, src);
|
||||
|
@ -26,18 +26,12 @@
|
||||
#include <nettle/sha.h>
|
||||
#include <nettle/ripemd160.h>
|
||||
|
||||
#if CONFIG_NETTLE_VERSION_MAJOR < 3
|
||||
typedef unsigned int hash_length_t;
|
||||
#else
|
||||
typedef size_t hash_length_t;
|
||||
#endif
|
||||
|
||||
typedef void (*qcrypto_nettle_init)(void *ctx);
|
||||
typedef void (*qcrypto_nettle_write)(void *ctx,
|
||||
hash_length_t len,
|
||||
size_t len,
|
||||
const uint8_t *buf);
|
||||
typedef void (*qcrypto_nettle_result)(void *ctx,
|
||||
hash_length_t len,
|
||||
size_t len,
|
||||
uint8_t *buf);
|
||||
|
||||
union qcrypto_hash_ctx {
|
||||
|
@ -18,22 +18,16 @@
|
||||
#include "hmacpriv.h"
|
||||
#include <nettle/hmac.h>
|
||||
|
||||
#if CONFIG_NETTLE_VERSION_MAJOR < 3
|
||||
typedef unsigned int hmac_length_t;
|
||||
#else
|
||||
typedef size_t hmac_length_t;
|
||||
#endif
|
||||
|
||||
typedef void (*qcrypto_nettle_hmac_setkey)(void *ctx,
|
||||
hmac_length_t key_length,
|
||||
size_t key_length,
|
||||
const uint8_t *key);
|
||||
|
||||
typedef void (*qcrypto_nettle_hmac_update)(void *ctx,
|
||||
hmac_length_t length,
|
||||
size_t length,
|
||||
const uint8_t *data);
|
||||
|
||||
typedef void (*qcrypto_nettle_hmac_digest)(void *ctx,
|
||||
hmac_length_t length,
|
||||
size_t length,
|
||||
uint8_t *digest);
|
||||
|
||||
typedef struct QCryptoHmacNettle QCryptoHmacNettle;
|
||||
|
@ -26,11 +26,7 @@ if 'CONFIG_NETTLE' in config_host
|
||||
crypto_ss.add(files('hash-nettle.c', 'hmac-nettle.c', 'pbkdf-nettle.c'))
|
||||
elif 'CONFIG_GCRYPT' in config_host
|
||||
crypto_ss.add(files('hash-gcrypt.c', 'pbkdf-gcrypt.c'))
|
||||
if 'CONFIG_GCRYPT_HMAC' in config_host
|
||||
crypto_ss.add(files('hmac-gcrypt.c'))
|
||||
else
|
||||
crypto_ss.add(files('hmac-glib.c'))
|
||||
endif
|
||||
crypto_ss.add(files('hmac-gcrypt.c'))
|
||||
else
|
||||
crypto_ss.add(files('hash-glib.c', 'hmac-glib.c', 'pbkdf-stub.c'))
|
||||
endif
|
||||
|
@ -354,11 +354,9 @@ qcrypto_tls_creds_check_cert_pair(gnutls_x509_crt_t cert,
|
||||
reason = "The certificate has been revoked";
|
||||
}
|
||||
|
||||
#ifndef GNUTLS_1_0_COMPAT
|
||||
if (status & GNUTLS_CERT_INSECURE_ALGORITHM) {
|
||||
reason = "The certificate uses an insecure algorithm";
|
||||
}
|
||||
#endif
|
||||
|
||||
error_setg(errp,
|
||||
"Our own certificate %s failed validation against %s: %s",
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# tlscreds.c
|
||||
qcrypto_tls_creds_load_dh(void *creds, const char *filename) "TLS creds load DH creds=%p filename=%s"
|
||||
|
@ -145,7 +145,7 @@ can also be more efficient in two ways:
|
||||
- on some platforms, one can implement QemuLockCnt to hold the lock
|
||||
and the mutex in a single word, making the fast path no more expensive
|
||||
than simply managing a counter using atomic operations (see
|
||||
docs/devel/atomics.txt). This can be very helpful if concurrent access to
|
||||
docs/devel/atomics.rst). This can be very helpful if concurrent access to
|
||||
the data structure is expected to be rare.
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# 9p.c
|
||||
v9fs_rcancel(uint16_t tag, uint8_t id) "tag %d id %d"
|
||||
|
@ -57,7 +57,7 @@ void tpm_build_ppi_acpi(TPMIf *tpm, Aml *dev)
|
||||
aml_operation_region(
|
||||
"TPP3", AML_SYSTEM_MEMORY,
|
||||
aml_int(TPM_PPI_ADDR_BASE +
|
||||
0x15a /* movv, docs/specs/tpm.txt */),
|
||||
0x15a /* movv, docs/specs/tpm.rst */),
|
||||
0x1));
|
||||
field = aml_field("TPP3", AML_BYTE_ACC, AML_NOLOCK, AML_PRESERVE);
|
||||
aml_append(field, aml_named_field("MOVV", 8));
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# memory_hotplug.c
|
||||
mhp_acpi_invalid_slot_selected(uint32_t slot) "0x%"PRIx32
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# npcm7xx_adc.c
|
||||
npcm7xx_adc_read(const char *id, uint64_t offset, uint32_t value) " %s offset: 0x%04" PRIx64 " value 0x%04" PRIx32
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# pci.c
|
||||
alpha_pci_iack_write(void) ""
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# virt-acpi-build.c
|
||||
virt_acpi_setup(void) "No fw cfg or ACPI disabled. Bailing out."
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# cs4231.c
|
||||
cs4231_mem_readl_dreg(uint32_t reg, uint32_t ret) "read dreg %d: 0x%02x"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# virtio-blk.c
|
||||
virtio_blk_data_plane_start(void *s) "dataplane %p"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# fdc.c
|
||||
fdc_ioport_read(uint8_t reg, uint8_t value) "read reg 0x%02x val 0x%02x"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# parallel.c
|
||||
parallel_ioport_read(const char *desc, uint16_t addr, uint8_t value) "read [%s] addr 0x%02x val 0x%02x"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# jazz_led.c
|
||||
jazz_led_read(uint64_t addr, uint8_t val) "read addr=0x%"PRIx64": 0x%x"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# rc4030.c
|
||||
jazzio_read(uint64_t addr, uint32_t ret) "read reg[0x%"PRIx64"] = 0x%x"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# npcm7xx_gpio.c
|
||||
npcm7xx_gpio_read(const char *id, uint64_t offset, uint64_t value) " %s offset: 0x%04" PRIx64 " value 0x%08" PRIx64
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# pci.c
|
||||
hppa_pci_iack_write(void) ""
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# core.c
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# x86-iommu.c
|
||||
x86_iommu_iec_notify(bool global, uint32_t index, uint32_t mask) "Notify IEC invalidation: global=%d index=%" PRIu32 " mask=%" PRIu32
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# xen_platform.c
|
||||
xen_platform_log(char *s) "xen platform: %s"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# core.c
|
||||
# portio
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# adb-kbd.c
|
||||
adb_device_kbd_no_key(void) "Ignoring NO_KEY"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# i8259.c
|
||||
pic_update_irq(bool master, uint8_t imr, uint8_t irr, uint8_t padd) "master %d imr %"PRIu8" irr %"PRIu8" padd %"PRIu8
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# isa-superio.c
|
||||
superio_create_parallel(int id, uint16_t base, unsigned int irq) "id=%d, base 0x%03x, irq %u"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# pc-dimm.c
|
||||
mhp_pc_dimm_assigned_slot(int slot) "%d"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# cuda.c
|
||||
cuda_delay_set_sr_int(void) ""
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# allwinner-cpucfg.c
|
||||
allwinner_cpucfg_cpu_reset(uint8_t cpu_id, uint32_t reset_addr) "id %u, reset_addr 0x%" PRIu32
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# allwinner-sun8i-emac.c
|
||||
allwinner_sun8i_emac_mii_write_reg(uint32_t reg, uint32_t value) "MII write: reg=0x%" PRIx32 " value=0x%" PRIx32
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# ds1225y.c
|
||||
nvram_read(uint32_t addr, uint32_t ret) "read addr %d: 0x%02x"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# grackle.c
|
||||
grackle_set_irq(int irq_num, int level) "set_irq num %d level %d"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# pci.c
|
||||
pci_update_mappings_del(void *d, uint32_t bus, uint32_t slot, uint32_t func, int bar, uint64_t addr, uint64_t size) "d=%p %02x:%02x.%x %d,0x%"PRIx64"+0x%"PRIx64
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# spapr_pci.c
|
||||
spapr_pci_msi(const char *msg, uint32_t ca) "%s (cfg=0x%x)"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# rdma_backend.c
|
||||
rdma_check_dev_attr(const char *name, int max_bk, int max_fe) "%s: be=%d, fe=%d"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# pvrdma_main.c
|
||||
pvrdma_regs_read(uint64_t addr, uint64_t val) "pvrdma.regs[0x%"PRIx64"]=0x%"PRIx64
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# allwinner-rtc.c
|
||||
allwinner_rtc_read(uint64_t addr, uint64_t value) "addr 0x%" PRIx64 " value 0x%" PRIx64
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# css.c
|
||||
css_enable_facility(const char *facility) "CSS: enable %s"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# scsi-bus.c
|
||||
scsi_req_alloc(int target, int lun, int tag) "target %d lun %d tag %d"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# allwinner-sdhost.c
|
||||
allwinner_sdhost_set_inserted(bool inserted) "inserted %u"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# sun4m.c
|
||||
sun4m_cpu_set_irq_raise(int level) "Raise CPU IRQ %d"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# sun4u.c
|
||||
ebus_isa_irq_handler(int n, int level) "Set ISA IRQ %d level %d"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# slavio_timer.c
|
||||
slavio_timer_get_out(uint64_t limit, uint32_t counthigh, uint32_t count) "limit 0x%"PRIx64" count 0x%x0x%08x"
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
void tpm_ppi_reset(TPMPPI *tpmppi)
|
||||
{
|
||||
if (tpmppi->buf[0x15a /* movv, docs/specs/tpm.txt */] & 0x1) {
|
||||
if (tpmppi->buf[0x15a /* movv, docs/specs/tpm.rst */] & 0x1) {
|
||||
GuestPhysBlockList guest_phys_blocks;
|
||||
GuestPhysBlock *block;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# tpm_crb.c
|
||||
tpm_crb_mmio_read(uint64_t addr, unsigned size, uint32_t val) "CRB read 0x%016" PRIx64 " len:%u val: 0x%" PRIx32
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# core.c
|
||||
usb_packet_state_change(int bus, const char *port, int ep, void *p, const char *o, const char *n) "bus %d, port %s, ep %d, packet %p, state %s -> %s"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# pci.c
|
||||
vfio_intx_interrupt(const char *name, char line) " (%s) Pin %c"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# vhost.c
|
||||
vhost_commit(bool started, bool changed) "Started: %d Changed: %d"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# cmsdk-apb-watchdog.c
|
||||
cmsdk_apb_watchdog_read(uint64_t offset, uint64_t data, unsigned size) "CMSDK APB watchdog read: offset 0x%" PRIx64 " data 0x%" PRIx64 " size %u"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# ../../include/hw/xen/xen_common.h
|
||||
xen_default_ioreq_server(void) ""
|
||||
|
@ -19,12 +19,12 @@
|
||||
/* Ask for warnings for anything that was marked deprecated in
|
||||
* the defined version, or before. It is a candidate for rewrite.
|
||||
*/
|
||||
#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_48
|
||||
#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_56
|
||||
|
||||
/* Ask for warnings if code tries to use function that did not
|
||||
* exist in the defined version. These risk breaking builds
|
||||
*/
|
||||
#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_48
|
||||
#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_56
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
@ -68,15 +68,6 @@
|
||||
* without generating warnings.
|
||||
*/
|
||||
|
||||
#if defined(_WIN32) && !GLIB_CHECK_VERSION(2, 50, 0)
|
||||
/*
|
||||
* g_poll has a problem on Windows when using
|
||||
* timeouts < 10ms, so use wrapper.
|
||||
*/
|
||||
#define g_poll(fds, nfds, timeout) g_poll_fixed(fds, nfds, timeout)
|
||||
gint g_poll_fixed(GPollFD *fds, guint nfds, gint timeout);
|
||||
#endif
|
||||
|
||||
#if defined(G_OS_UNIX)
|
||||
/*
|
||||
* Note: The fallback implementation is not MT-safe, and it returns a copy of
|
||||
|
@ -8,7 +8,7 @@
|
||||
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
||||
* See the COPYING file in the top-level directory.
|
||||
*
|
||||
* See docs/devel/atomics.txt for discussion about the guarantees each
|
||||
* See docs/devel/atomics.rst for discussion about the guarantees each
|
||||
* atomic primitive is meant to provide.
|
||||
*/
|
||||
|
||||
@ -432,7 +432,7 @@
|
||||
* sequentially consistent operations.
|
||||
*
|
||||
* As long as they are used as paired operations they are safe to
|
||||
* use. See docs/devel/atomics.txt for more discussion.
|
||||
* use. See docs/devel/atomics.rst for more discussion.
|
||||
*/
|
||||
|
||||
#ifndef qatomic_mb_read
|
||||
|
@ -6,7 +6,7 @@
|
||||
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
||||
* See the COPYING file in the top-level directory.
|
||||
*
|
||||
* See docs/devel/atomics.txt for discussion about the guarantees each
|
||||
* See docs/devel/atomics.rst for discussion about the guarantees each
|
||||
* atomic primitive is meant to provide.
|
||||
*/
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# task.c
|
||||
qio_task_new(void *task, void *source, void *func, void *opaque) "Task new task=%p source=%p func=%p opaque=%p"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# signal.c
|
||||
signal_table_init(int i) "number of unavailable signals: %d"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# savevm.c
|
||||
qemu_loadvm_state_section(unsigned int section_type) "%d"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# hmp.c
|
||||
handle_hmp_command(void *mon, const char *cmdline) "mon %p cmdline: %s"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# client.c
|
||||
nbd_send_option_request(uint32_t opt, const char *name, uint32_t len) "Sending option request %" PRIu32" (%s), len %" PRIu32
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# announce.c
|
||||
qemu_announce_self_iter(const char *id, const char *name, const char *mac, int skip) "%s:%s:%s skip: %d"
|
||||
|
@ -205,7 +205,7 @@ static void run_ipl2(SubChannelId schid, uint16_t cutype, uint32_t addr)
|
||||
|
||||
/*
|
||||
* Limitations in vfio-ccw support complicate the IPL process. Details can
|
||||
* be found in docs/devel/s390-dasd-ipl.txt
|
||||
* be found in docs/devel/s390-dasd-ipl.rst
|
||||
*/
|
||||
void dasd_ipl(SubChannelId schid, uint16_t cutype)
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# qapi-visit-core.c
|
||||
visit_free(void *v) "v=%p"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# object.c
|
||||
object_dynamic_cast_assert(const char *type, const char *target, const char *file, int line, const char *func) "%s->%s (%s:%d:%s)"
|
||||
|
@ -7,7 +7,7 @@
|
||||
# This work is licensed under the terms of the GNU GPL, version 2. See
|
||||
# the COPYING file in the top-level directory.
|
||||
#
|
||||
# For help see docs/devel/tracing.txt
|
||||
# For help see docs/devel/tracing.rst
|
||||
|
||||
import struct
|
||||
import inspect
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# pr-manager.c
|
||||
pr_manager_execute(int fd, int cmd, int sa) "fd=%d cmd=0x%02x service action=0x%02x"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# balloon.c
|
||||
# Since requests are raised via monitor, not many tracepoints are needed.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# helper.c
|
||||
arm_gt_recalc(int timer, int irqstate, uint64_t nexttick) "gt recalc: timer %d irqstate %d next tick 0x%" PRIx64
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# mem_helper.c
|
||||
disable hppa_tlb_flush_ent(void *env, void *ent, uint64_t va_b, uint64_t va_e, uint64_t pa) "env=%p ent=%p va_b=0x%lx va_e=0x%lx pa=0x%lx"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# kvm.c
|
||||
kvm_x86_fixup_msi_error(uint32_t gsi) "VT-d failed to remap interrupt for GSI %" PRIu32
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# sev.c
|
||||
kvm_sev_init(void) ""
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# translate.c
|
||||
mips_translate_c0(const char *instr, const char *rn, int reg, int sel) "%s %s (reg %d sel %d)"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# kvm.c
|
||||
kvm_failed_spr_set(int spr, const char *msg) "Warning: Unable to set SPR %d to KVM: %s"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# mmu_helper.c
|
||||
get_skeys_nonzero(int rc) "SKEY: Call to get_skeys unexpectedly returned %d"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# mmu_helper.c
|
||||
mmu_helper_dfault(uint64_t address, uint64_t context, int mmu_idx, uint32_t tl) "DFAULT at 0x%"PRIx64" context 0x%"PRIx64" mmu_idx=%d tl=%d"
|
||||
|
@ -461,7 +461,7 @@ when MTTCG is enabled.
|
||||
The guest translators should generate this opcode for all guest instructions
|
||||
which have ordering side effects.
|
||||
|
||||
Please see docs/devel/atomics.txt for more information on memory barriers.
|
||||
Please see docs/devel/atomics.rst for more information on memory barriers.
|
||||
|
||||
********* 64-bit guest on 32-bit host support
|
||||
|
||||
|
@ -1,43 +0,0 @@
|
||||
FROM centos:7
|
||||
RUN yum install -y epel-release centos-release-xen-48
|
||||
|
||||
RUN yum -y update
|
||||
|
||||
# Please keep this list sorted alphabetically
|
||||
ENV PACKAGES \
|
||||
bzip2 \
|
||||
bzip2-devel \
|
||||
ccache \
|
||||
csnappy-devel \
|
||||
dbus-daemon \
|
||||
gcc-c++ \
|
||||
gcc \
|
||||
gettext \
|
||||
git \
|
||||
glib2-devel \
|
||||
glibc-static \
|
||||
gnutls-devel \
|
||||
libaio-devel \
|
||||
libepoxy-devel \
|
||||
libfdt-devel \
|
||||
libgcrypt-devel \
|
||||
librdmacm-devel \
|
||||
libzstd-devel \
|
||||
lzo-devel \
|
||||
make \
|
||||
mesa-libEGL-devel \
|
||||
mesa-libgbm-devel \
|
||||
nettle-devel \
|
||||
ninja-build \
|
||||
perl-Test-Harness \
|
||||
pixman-devel \
|
||||
python3 \
|
||||
SDL2-devel \
|
||||
spice-glib-devel \
|
||||
spice-server-devel \
|
||||
tar \
|
||||
vte-devel \
|
||||
xen-devel \
|
||||
zlib-devel
|
||||
RUN yum install -y $PACKAGES
|
||||
RUN rpm -q $PACKAGES | sort > /packages.txt
|
@ -208,7 +208,7 @@ schemas += [meson.current_source_dir() / 'missing-schema.json']
|
||||
|
||||
# Because people may want to use test-qapi.py from the command line, we
|
||||
# are not using the "#! /usr/bin/env python3" trick here. See
|
||||
# docs/devel/build-system.txt
|
||||
# docs/devel/build-system.rst
|
||||
test('QAPI schema regression tests', python,
|
||||
args: files('test-qapi.py') + schemas,
|
||||
env: test_env, suite: ['qapi-schema', 'qapi-frontend'])
|
||||
|
@ -26,24 +26,23 @@ class CentosVM(basevm.BaseVM):
|
||||
export SRC_ARCHIVE=/dev/vdb;
|
||||
sudo chmod a+r $SRC_ARCHIVE;
|
||||
tar -xf $SRC_ARCHIVE;
|
||||
make docker-test-block@centos7 {verbose} J={jobs} NETWORK=1;
|
||||
make docker-test-quick@centos7 {verbose} J={jobs} NETWORK=1;
|
||||
make docker-test-block@centos8 {verbose} J={jobs} NETWORK=1;
|
||||
make docker-test-quick@centos8 {verbose} J={jobs} NETWORK=1;
|
||||
make docker-test-mingw@fedora {verbose} J={jobs} NETWORK=1;
|
||||
"""
|
||||
|
||||
def build_image(self, img):
|
||||
cimg = self._download_with_cache("https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1802.qcow2.xz")
|
||||
cimg = self._download_with_cache("https://cloud.centos.org/centos/8/x86_64/images/CentOS-8-GenericCloud-8.3.2011-20201204.2.x86_64.qcow2")
|
||||
img_tmp = img + ".tmp"
|
||||
sys.stderr.write("Extracting the image...\n")
|
||||
subprocess.check_call(["ln", "-f", cimg, img_tmp + ".xz"])
|
||||
subprocess.check_call(["xz", "--keep", "-dvf", img_tmp + ".xz"])
|
||||
subprocess.check_call(["ln", "-f", cimg, img_tmp])
|
||||
self.exec_qemu_img("resize", img_tmp, "50G")
|
||||
self.boot(img_tmp, extra_args = ["-cdrom", self.gen_cloud_init_iso()])
|
||||
self.wait_ssh()
|
||||
self.ssh_root_check("touch /etc/cloud/cloud-init.disabled")
|
||||
self.ssh_root_check("yum update -y")
|
||||
self.ssh_root_check("yum install -y docker make ninja-build git python3")
|
||||
self.ssh_root_check("systemctl enable docker")
|
||||
self.ssh_root_check("dnf update -y")
|
||||
self.ssh_root_check("dnf install -y dnf-plugins-core")
|
||||
self.ssh_root_check("dnf config-manager --set-enabled powertools")
|
||||
self.ssh_root_check("dnf install -y podman make ninja-build git python3")
|
||||
self.ssh_root("poweroff")
|
||||
self.wait()
|
||||
os.rename(img_tmp, img)
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
#
|
||||
# This file is processed by the tracetool script during the build.
|
||||
#
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# console.c
|
||||
console_gfx_new(void) ""
|
||||
|
@ -347,210 +347,6 @@ const char *qemu_get_exec_dir(void)
|
||||
return exec_dir;
|
||||
}
|
||||
|
||||
#if !GLIB_CHECK_VERSION(2, 50, 0)
|
||||
/*
|
||||
* The original implementation of g_poll from glib has a problem on Windows
|
||||
* when using timeouts < 10 ms.
|
||||
*
|
||||
* Whenever g_poll is called with timeout < 10 ms, it does a quick poll instead
|
||||
* of wait. This causes significant performance degradation of QEMU.
|
||||
*
|
||||
* The following code is a copy of the original code from glib/gpoll.c
|
||||
* (glib commit 20f4d1820b8d4d0fc4447188e33efffd6d4a88d8 from 2014-02-19).
|
||||
* Some debug code was removed and the code was reformatted.
|
||||
* All other code modifications are marked with 'QEMU'.
|
||||
*/
|
||||
|
||||
/*
|
||||
* gpoll.c: poll(2) abstraction
|
||||
* Copyright 1998 Owen Taylor
|
||||
* Copyright 2008 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
static int poll_rest(gboolean poll_msgs, HANDLE *handles, gint nhandles,
|
||||
GPollFD *fds, guint nfds, gint timeout)
|
||||
{
|
||||
DWORD ready;
|
||||
GPollFD *f;
|
||||
int recursed_result;
|
||||
|
||||
if (poll_msgs) {
|
||||
/* Wait for either messages or handles
|
||||
* -> Use MsgWaitForMultipleObjectsEx
|
||||
*/
|
||||
ready = MsgWaitForMultipleObjectsEx(nhandles, handles, timeout,
|
||||
QS_ALLINPUT, MWMO_ALERTABLE);
|
||||
|
||||
if (ready == WAIT_FAILED) {
|
||||
gchar *emsg = g_win32_error_message(GetLastError());
|
||||
g_warning("MsgWaitForMultipleObjectsEx failed: %s", emsg);
|
||||
g_free(emsg);
|
||||
}
|
||||
} else if (nhandles == 0) {
|
||||
/* No handles to wait for, just the timeout */
|
||||
if (timeout == INFINITE) {
|
||||
ready = WAIT_FAILED;
|
||||
} else {
|
||||
SleepEx(timeout, TRUE);
|
||||
ready = WAIT_TIMEOUT;
|
||||
}
|
||||
} else {
|
||||
/* Wait for just handles
|
||||
* -> Use WaitForMultipleObjectsEx
|
||||
*/
|
||||
ready =
|
||||
WaitForMultipleObjectsEx(nhandles, handles, FALSE, timeout, TRUE);
|
||||
if (ready == WAIT_FAILED) {
|
||||
gchar *emsg = g_win32_error_message(GetLastError());
|
||||
g_warning("WaitForMultipleObjectsEx failed: %s", emsg);
|
||||
g_free(emsg);
|
||||
}
|
||||
}
|
||||
|
||||
if (ready == WAIT_FAILED) {
|
||||
return -1;
|
||||
} else if (ready == WAIT_TIMEOUT || ready == WAIT_IO_COMPLETION) {
|
||||
return 0;
|
||||
} else if (poll_msgs && ready == WAIT_OBJECT_0 + nhandles) {
|
||||
for (f = fds; f < &fds[nfds]; ++f) {
|
||||
if (f->fd == G_WIN32_MSG_HANDLE && f->events & G_IO_IN) {
|
||||
f->revents |= G_IO_IN;
|
||||
}
|
||||
}
|
||||
|
||||
/* If we have a timeout, or no handles to poll, be satisfied
|
||||
* with just noticing we have messages waiting.
|
||||
*/
|
||||
if (timeout != 0 || nhandles == 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* If no timeout and handles to poll, recurse to poll them,
|
||||
* too.
|
||||
*/
|
||||
recursed_result = poll_rest(FALSE, handles, nhandles, fds, nfds, 0);
|
||||
return (recursed_result == -1) ? -1 : 1 + recursed_result;
|
||||
} else if (/* QEMU: removed the following unneeded statement which causes
|
||||
* a compiler warning: ready >= WAIT_OBJECT_0 && */
|
||||
ready < WAIT_OBJECT_0 + nhandles) {
|
||||
for (f = fds; f < &fds[nfds]; ++f) {
|
||||
if ((HANDLE) f->fd == handles[ready - WAIT_OBJECT_0]) {
|
||||
f->revents = f->events;
|
||||
}
|
||||
}
|
||||
|
||||
/* If no timeout and polling several handles, recurse to poll
|
||||
* the rest of them.
|
||||
*/
|
||||
if (timeout == 0 && nhandles > 1) {
|
||||
/* Remove the handle that fired */
|
||||
int i;
|
||||
for (i = ready - WAIT_OBJECT_0 + 1; i < nhandles; i++) {
|
||||
handles[i-1] = handles[i];
|
||||
}
|
||||
nhandles--;
|
||||
recursed_result = poll_rest(FALSE, handles, nhandles, fds, nfds, 0);
|
||||
return (recursed_result == -1) ? -1 : 1 + recursed_result;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
gint g_poll_fixed(GPollFD *fds, guint nfds, gint timeout)
|
||||
{
|
||||
HANDLE handles[MAXIMUM_WAIT_OBJECTS];
|
||||
gboolean poll_msgs = FALSE;
|
||||
GPollFD *f;
|
||||
gint nhandles = 0;
|
||||
int retval;
|
||||
|
||||
for (f = fds; f < &fds[nfds]; ++f) {
|
||||
if (f->fd == G_WIN32_MSG_HANDLE && (f->events & G_IO_IN)) {
|
||||
poll_msgs = TRUE;
|
||||
} else if (f->fd > 0) {
|
||||
/* Don't add the same handle several times into the array, as
|
||||
* docs say that is not allowed, even if it actually does seem
|
||||
* to work.
|
||||
*/
|
||||
gint i;
|
||||
|
||||
for (i = 0; i < nhandles; i++) {
|
||||
if (handles[i] == (HANDLE) f->fd) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i == nhandles) {
|
||||
if (nhandles == MAXIMUM_WAIT_OBJECTS) {
|
||||
g_warning("Too many handles to wait for!\n");
|
||||
break;
|
||||
} else {
|
||||
handles[nhandles++] = (HANDLE) f->fd;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (f = fds; f < &fds[nfds]; ++f) {
|
||||
f->revents = 0;
|
||||
}
|
||||
|
||||
if (timeout == -1) {
|
||||
timeout = INFINITE;
|
||||
}
|
||||
|
||||
/* Polling for several things? */
|
||||
if (nhandles > 1 || (nhandles > 0 && poll_msgs)) {
|
||||
/* First check if one or several of them are immediately
|
||||
* available
|
||||
*/
|
||||
retval = poll_rest(poll_msgs, handles, nhandles, fds, nfds, 0);
|
||||
|
||||
/* If not, and we have a significant timeout, poll again with
|
||||
* timeout then. Note that this will return indication for only
|
||||
* one event, or only for messages. We ignore timeouts less than
|
||||
* ten milliseconds as they are mostly pointless on Windows, the
|
||||
* MsgWaitForMultipleObjectsEx() call will timeout right away
|
||||
* anyway.
|
||||
*
|
||||
* Modification for QEMU: replaced timeout >= 10 by timeout > 0.
|
||||
*/
|
||||
if (retval == 0 && (timeout == INFINITE || timeout > 0)) {
|
||||
retval = poll_rest(poll_msgs, handles, nhandles,
|
||||
fds, nfds, timeout);
|
||||
}
|
||||
} else {
|
||||
/* Just polling for one thing, so no need to check first if
|
||||
* available immediately
|
||||
*/
|
||||
retval = poll_rest(poll_msgs, handles, nhandles, fds, nfds, timeout);
|
||||
}
|
||||
|
||||
if (retval == -1) {
|
||||
for (f = fds; f < &fds[nfds]; ++f) {
|
||||
f->revents = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return retval;
|
||||
}
|
||||
#endif
|
||||
|
||||
int getpagesize(void)
|
||||
{
|
||||
SYSTEM_INFO system_info;
|
||||
|
@ -1,4 +1,4 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
# See docs/devel/tracing.rst for syntax documentation.
|
||||
|
||||
# aio-posix.c
|
||||
run_poll_handlers_begin(void *ctx, int64_t max_ns, int64_t timeout) "ctx %p max_ns %"PRId64 " timeout %"PRId64
|
||||
|
Loading…
Reference in New Issue
Block a user