Skip to content
Snippets Groups Projects
  • Peter Maydell's avatar
    4cc10cae
    Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging · 4cc10cae
    Peter Maydell authored
    
    * NetBSD NVMM support
    * RateLimit mutex
    * Prepare for Meson 0.57 upgrade
    
    # gpg: Signature made Tue 04 May 2021 13:15:37 BST
    # gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
    # gpg:                issuer "pbonzini@redhat.com"
    # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
    # gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [full]
    # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
    #      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83
    
    * remotes/bonzini-gitlab/tags/for-upstream:
      glib-compat: accept G_TEST_SLOW environment variable
      gitlab-ci: use --meson=internal for CFI jobs
      configure: handle meson options that have changed type
      configure: reindent meson invocation
      slirp: add configure option to disable smbd
      ratelimit: protect with a mutex
      Add NVMM Accelerator: add maintainers for NetBSD/NVMM
      Add NVMM accelerator: acceleration enlightenments
      Add NVMM accelerator: x86 CPU support
      Add NVMM accelerator: configure and build logic
      oslib-win32: do not rely on macro to get redefined function name
    
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    4cc10cae
    History
    Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging
    Peter Maydell authored
    
    * NetBSD NVMM support
    * RateLimit mutex
    * Prepare for Meson 0.57 upgrade
    
    # gpg: Signature made Tue 04 May 2021 13:15:37 BST
    # gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
    # gpg:                issuer "pbonzini@redhat.com"
    # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
    # gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [full]
    # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
    #      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83
    
    * remotes/bonzini-gitlab/tags/for-upstream:
      glib-compat: accept G_TEST_SLOW environment variable
      gitlab-ci: use --meson=internal for CFI jobs
      configure: handle meson options that have changed type
      configure: reindent meson invocation
      slirp: add configure option to disable smbd
      ratelimit: protect with a mutex
      Add NVMM Accelerator: add maintainers for NetBSD/NVMM
      Add NVMM accelerator: acceleration enlightenments
      Add NVMM accelerator: x86 CPU support
      Add NVMM accelerator: configure and build logic
      oslib-win32: do not rely on macro to get redefined function name
    
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
oslib-win32.c 21.03 KiB
/*
 * os-win32.c
 *
 * Copyright (c) 2003-2008 Fabrice Bellard
 * Copyright (c) 2010-2016 Red Hat, Inc.
 *
 * QEMU library functions for win32 which are shared between QEMU and
 * the QEMU tools.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * The implementation of g_poll (functions poll_rest, g_poll) at the end of
 * this file are based on code from GNOME glib-2 and use a different license,
 * see the license comment there.
 */

#include "qemu/osdep.h"
#include <windows.h>
#include "qemu-common.h"
#include "qapi/error.h"
#include "qemu/main-loop.h"
#include "trace.h"
#include "qemu/sockets.h"
#include "qemu/cutils.h"
#include <malloc.h>

/* this must come after including "trace.h" */
#include <shlobj.h>

void *qemu_oom_check(void *ptr)
{
    if (ptr == NULL) {
        fprintf(stderr, "Failed to allocate memory: %lu\n", GetLastError());
        abort();
    }
    return ptr;
}

void *qemu_try_memalign(size_t alignment, size_t size)
{
    void *ptr;

    g_assert(size != 0);
    g_assert(is_power_of_2(alignment));
    ptr = _aligned_malloc(size, alignment);
    trace_qemu_memalign(alignment, size, ptr);
    return ptr;
}

void *qemu_memalign(size_t alignment, size_t size)
{
    return qemu_oom_check(qemu_try_memalign(alignment, size));
}