diff --git a/src/gallium/auxiliary/os/os_misc.c b/src/gallium/auxiliary/os/os_misc.c deleted file mode 100644 index 447e720..0000000 --- a/src/gallium/auxiliary/os/os_misc.c +++ /dev/null @@ -1,91 +0,0 @@ -/************************************************************************** - * - * Copyright 2008-2010 Vmware, Inc. - * All Rights Reserved. - * - * 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, sub license, 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 (including the - * next paragraph) 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 NON-INFRINGEMENT. - * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS 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. - * - **************************************************************************/ - - -#include "os_misc.h" - -#include - - -#if defined(PIPE_SUBSYSTEM_WINDOWS_USER) - -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -#endif -#include -#include - -#else - -#include -#include - -#endif - - -void -os_log_message(const char *message) -{ - /* If the GALLIUM_LOG_FILE environment variable is set to a valid filename, - * write all messages to that file. - */ - static FILE *fout = NULL; - - if (!fout) { - /* one-time init */ - const char *filename = os_get_option("GALLIUM_LOG_FILE"); - if (filename) - fout = fopen(filename, "w"); - if (!fout) - fout = stderr; - } - -#if defined(PIPE_SUBSYSTEM_WINDOWS_USER) - OutputDebugStringA(message); - if(GetConsoleWindow() && !IsDebuggerPresent()) { - fflush(stdout); - fputs(message, fout); - fflush(fout); - } - else if (fout != stderr) { - fputs(message, fout); - fflush(fout); - } -#else /* !PIPE_SUBSYSTEM_WINDOWS */ - fflush(stdout); - fputs(message, fout); - fflush(fout); -#endif -} - - -const char * -os_get_option(const char *name) -{ - return getenv(name); -} - diff --git a/src/gallium/auxiliary/util/u_debug.h b/src/gallium/auxiliary/util/u_debug.h index 26fb6bb..c6ae6cc 100644 --- a/src/gallium/auxiliary/util/u_debug.h +++ b/src/gallium/auxiliary/util/u_debug.h @@ -39,8 +39,9 @@ #define U_DEBUG_H_ -#include "os/os_misc.h" +#include "util/os_misc.h" +#include "pipe/p_compiler.h" #include "pipe/p_format.h" diff --git a/src/gallium/meson.build b/src/gallium/meson.build index ac2c855..1cb2917 100644 --- a/src/gallium/meson.build +++ b/src/gallium/meson.build @@ -94,8 +94,6 @@ sources_libgallium = [ 'auxiliary/tgsi/tgsi_transform.c', 'auxiliary/os/os_thread.h', 'auxiliary/os/os_mman.h', - 'auxiliary/os/os_misc.h', - 'auxiliary/os/os_misc.c', ] inc_gallium = include_directories('include', 'auxiliary', 'auxiliary/util') diff --git a/src/mesa/meson.build b/src/mesa/meson.build index e9acbac..95ac012 100644 --- a/src/mesa/meson.build +++ b/src/mesa/meson.build @@ -4,6 +4,8 @@ inc_mesa = include_directories('.', 'compat', 'pipe', 'util') files_mesa = files( + 'util/os_file.c', + 'util/os_misc.c', ) deps_mesa = [ diff --git a/src/mesa/util/os_file.c b/src/mesa/util/os_file.c new file mode 100644 index 0000000..5f79284 --- /dev/null +++ b/src/mesa/util/os_file.c @@ -0,0 +1,227 @@ +/* + * Copyright 2019 Intel Corporation + * SPDX-License-Identifier: MIT + */ + +#include "os_file.h" +#include "detect_os.h" + +#include +#include +#include +#include + +#if DETECT_OS_WINDOWS +#include +#define open _open +#define fdopen _fdopen +#define O_CREAT _O_CREAT +#define O_EXCL _O_EXCL +#define O_WRONLY _O_WRONLY +#else +#include +#ifndef F_DUPFD_CLOEXEC +#define F_DUPFD_CLOEXEC 1030 +#endif +#endif + + +FILE * +os_file_create_unique(const char *filename, int filemode) +{ + int fd = open(filename, O_CREAT | O_EXCL | O_WRONLY, filemode); + if (fd == -1) + return NULL; + return fdopen(fd, "w"); +} + + +#if DETECT_OS_WINDOWS +int +os_dupfd_cloexec(int fd) +{ + /* + * On Windows child processes don't inherit handles by default: + * https://devblogs.microsoft.com/oldnewthing/20111216-00/?p=8873 + */ + return dup(fd); +} +#else +int +os_dupfd_cloexec(int fd) +{ + int minfd = 3; + int newfd = fcntl(fd, F_DUPFD_CLOEXEC, minfd); + + if (newfd >= 0) + return newfd; + + if (errno != EINVAL) + return -1; + + newfd = fcntl(fd, F_DUPFD, minfd); + + if (newfd < 0) + return -1; + + long flags = fcntl(newfd, F_GETFD); + if (flags == -1) { + close(newfd); + return -1; + } + + if (fcntl(newfd, F_SETFD, flags | FD_CLOEXEC) == -1) { + close(newfd); + return -1; + } + + return newfd; +} +#endif + +#include +#include + +#if DETECT_OS_WINDOWS +typedef ptrdiff_t ssize_t; +#endif + +static ssize_t +readN(int fd, char *buf, size_t len) +{ + /* err was initially set to -ENODATA but in some BSD systems + * ENODATA is not defined and ENOATTR is used instead. + * As err is not returned by any function it can be initialized + * to -EFAULT that exists everywhere. + */ + int err = -EFAULT; + size_t total = 0; + do { + ssize_t ret = read(fd, buf + total, len - total); + + if (ret < 0) + ret = -errno; + + if (ret == -EINTR || ret == -EAGAIN) + continue; + + if (ret <= 0) { + err = ret; + break; + } + + total += ret; + } while (total != len); + + return total ? (ssize_t)total : err; +} + +#ifndef O_BINARY +/* Unix makes no distinction between text and binary files. */ +#define O_BINARY 0 +#endif + +char * +os_read_file(const char *filename, size_t *size) +{ + /* Note that this also serves as a slight margin to avoid a 2x grow when + * the file is just a few bytes larger when we read it than when we + * fstat'ed it. + * The string's NULL terminator is also included in here. + */ + size_t len = 64; + + int fd = open(filename, O_RDONLY | O_BINARY); + if (fd == -1) { + /* errno set by open() */ + return NULL; + } + + /* Pre-allocate a buffer at least the size of the file if we can read + * that information. + */ + struct stat stat; + if (fstat(fd, &stat) == 0) + len += stat.st_size; + + char *buf = malloc(len); + if (!buf) { + close(fd); + errno = -ENOMEM; + return NULL; + } + + ssize_t actually_read; + size_t offset = 0, remaining = len - 1; + while ((actually_read = readN(fd, buf + offset, remaining)) == (ssize_t)remaining) { + char *newbuf = realloc(buf, 2 * len); + if (!newbuf) { + free(buf); + close(fd); + errno = -ENOMEM; + return NULL; + } + + buf = newbuf; + len *= 2; + offset += actually_read; + remaining = len - offset - 1; + } + + close(fd); + + if (actually_read > 0) + offset += actually_read; + + /* Final resize to actual size */ + len = offset + 1; + char *newbuf = realloc(buf, len); + if (!newbuf) { + free(buf); + errno = -ENOMEM; + return NULL; + } + buf = newbuf; + + buf[offset] = '\0'; + + if (size) + *size = offset; + + return buf; +} + +#if DETECT_OS_LINUX + +#include +#include + +/* copied from */ +#define KCMP_FILE 0 + +int +os_same_file_description(int fd1, int fd2) +{ + pid_t pid = getpid(); + + /* Same file descriptor trivially implies same file description */ + if (fd1 == fd2) + return 0; + + return syscall(SYS_kcmp, pid, pid, KCMP_FILE, fd1, fd2); +} + +#else + +int +os_same_file_description(int fd1, int fd2) +{ + /* Same file descriptor trivially implies same file description */ + if (fd1 == fd2) + return 0; + + /* Otherwise we can't tell */ + return -1; +} + +#endif diff --git a/src/mesa/util/os_file.h b/src/mesa/util/os_file.h new file mode 100644 index 0000000..0c69eea --- /dev/null +++ b/src/mesa/util/os_file.h @@ -0,0 +1,59 @@ +/* + * Copyright 2019 Intel Corporation + * SPDX-License-Identifier: MIT + * + * File operations helpers + */ + +#ifndef _OS_FILE_H_ +#define _OS_FILE_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Create a new file and opens it for writing-only. + * If the given filename already exists, nothing is done and NULL is returned. + * `errno` gets set to the failure reason; if that is not EEXIST, the caller + * might want to do something other than trying again. + */ +FILE * +os_file_create_unique(const char *filename, int filemode); + +/* + * Duplicate a file descriptor, making sure not to keep it open after an exec*() + */ +int +os_dupfd_cloexec(int fd); + +/* + * Read a file. + * Returns a char* that the caller must free(), or NULL and sets errno. + * If size is not null and no error occurred it's set to the size of the + * file. + * Reads files as binary and includes a NUL terminator after the end of the + * returned buffer. + */ +char * +os_read_file(const char *filename, size_t *size); + +/* + * Try to determine if two file descriptors reference the same file description + * + * Return values: + * - 0: They reference the same file description + * - > 0: They do not reference the same file description + * - < 0: Unable to determine whether they reference the same file description + */ +int +os_same_file_description(int fd1, int fd2); + +#ifdef __cplusplus +} +#endif + +#endif /* _OS_FILE_H_ */ diff --git a/src/mesa/util/os_misc.c b/src/mesa/util/os_misc.c new file mode 100644 index 0000000..31f1c55 --- /dev/null +++ b/src/mesa/util/os_misc.c @@ -0,0 +1,361 @@ +/************************************************************************** + * + * Copyright 2008-2010 VMware, Inc. + * All Rights Reserved. + * + * 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, sub license, 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 (including the + * next paragraph) 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 NON-INFRINGEMENT. + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS 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. + * + **************************************************************************/ + + +#include "os_misc.h" +#include "os_file.h" +#include "macros.h" + +#include + + +#if DETECT_OS_WINDOWS + +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#endif +#include +#include +#include + +#else + +#include +#include +#include +#include + +#endif + + +#if DETECT_OS_ANDROID +# define LOG_TAG "MESA" +# include +# include +# include +#elif DETECT_OS_LINUX || DETECT_OS_CYGWIN || DETECT_OS_SOLARIS || DETECT_OS_HURD +# include +#elif DETECT_OS_OPENBSD || DETECT_OS_FREEBSD +# include +# include +#elif DETECT_OS_APPLE || DETECT_OS_BSD +# include +#elif DETECT_OS_HAIKU +# include +#elif DETECT_OS_WINDOWS +# include +#else +#error unexpected platform in os_sysinfo.c +#endif + + +void +os_log_message(const char *message) +{ + /* If the GALLIUM_LOG_FILE environment variable is set to a valid filename, + * write all messages to that file. + */ + static FILE *fout = NULL; + + if (!fout) { +#ifdef DEBUG + /* one-time init */ + const char *filename = os_get_option("GALLIUM_LOG_FILE"); + if (filename) { + const char *mode = "w"; + if (filename[0] == '+') { + /* If the filename is prefixed with '+' then open the file for + * appending instead of normal writing. + */ + mode = "a"; + filename++; /* skip the '+' */ + } + fout = fopen(filename, mode); + } +#endif + if (!fout) + fout = stderr; + } + +#if DETECT_OS_WINDOWS + OutputDebugStringA(message); + if(GetConsoleWindow() && !IsDebuggerPresent()) { + fflush(stdout); + fputs(message, fout); + fflush(fout); + } + else if (fout != stderr) { + fputs(message, fout); + fflush(fout); + } +#else /* !DETECT_OS_WINDOWS */ + fflush(stdout); + fputs(message, fout); + fflush(fout); +# if DETECT_OS_ANDROID + LOG_PRI(ANDROID_LOG_ERROR, LOG_TAG, "%s", message); +# endif +#endif +} + +#if DETECT_OS_ANDROID +# include +# include "hash_table.h" +# include "ralloc.h" +# include "simple_mtx.h" + +static struct hash_table *options_tbl; + +static void +options_tbl_fini(void) +{ + _mesa_hash_table_destroy(options_tbl, NULL); +} + +/** + * Get an option value from android's property system, as a fallback to + * getenv() (which is generally less useful on android due to processes + * typically being forked from the zygote. + * + * The option name used for getenv is translated into a property name + * by: + * + * 1) convert to lowercase + * 2) replace '_' with '.' + * 3) if necessary, prepend "mesa." + * + * For example: + * - MESA_EXTENSION_OVERRIDE -> mesa.extension.override + * - GALLIUM_HUD -> mesa.gallium.hud + * + * Note that we use a hashtable for two purposes: + * 1) Avoid re-translating the option name on subsequent lookups + * 2) Avoid leaking memory. Because property_get() returns the + * property value into a user allocated buffer, we cannot return + * that directly to the caller, so we need to strdup(). With the + * hashtable, subsquent lookups can return the existing string. + */ +static const char * +os_get_android_option(const char *name) +{ + if (!options_tbl) { + options_tbl = _mesa_hash_table_create(NULL, _mesa_hash_string, + _mesa_key_string_equal); + atexit(options_tbl_fini); + } + + struct hash_entry *entry = _mesa_hash_table_search(options_tbl, name); + if (entry) { + return entry->data; + } + + char value[PROPERTY_VALUE_MAX]; + char key[PROPERTY_KEY_MAX]; + char *p = key, *end = key + PROPERTY_KEY_MAX; + /* add "mesa." prefix if necessary: */ + if (strstr(name, "MESA_") != name) + p += strlcpy(p, "mesa.", end - p); + p += strlcpy(p, name, end - p); + for (int i = 0; key[i]; i++) { + if (key[i] == '_') { + key[i] = '.'; + } else { + key[i] = tolower(key[i]); + } + } + + const char *opt = NULL; + int len = property_get(key, value, NULL); + if (len > 1) { + opt = ralloc_strdup(options_tbl, value); + } + + _mesa_hash_table_insert(options_tbl, name, (void *)opt); + + return opt; +} +#endif + + +#if !defined(EMBEDDED_DEVICE) +const char * +os_get_option(const char *name) +{ + const char *opt = getenv(name); +#if DETECT_OS_ANDROID + if (!opt) { + opt = os_get_android_option(name); + } +#endif + return opt; +} +#endif /* !EMBEDDED_DEVICE */ + +/** + * Return the size of the total physical memory. + * \param size returns the size of the total physical memory + * \return true for success, or false on failure + */ +bool +os_get_total_physical_memory(uint64_t *size) +{ +#if DETECT_OS_LINUX || DETECT_OS_CYGWIN || DETECT_OS_SOLARIS || DETECT_OS_HURD + const long phys_pages = sysconf(_SC_PHYS_PAGES); + const long page_size = sysconf(_SC_PAGE_SIZE); + + if (phys_pages <= 0 || page_size <= 0) + return false; + + *size = (uint64_t)phys_pages * (uint64_t)page_size; + return true; +#elif DETECT_OS_APPLE || DETECT_OS_BSD + size_t len = sizeof(*size); + int mib[2]; + + mib[0] = CTL_HW; +#if DETECT_OS_APPLE + mib[1] = HW_MEMSIZE; +#elif DETECT_OS_NETBSD || DETECT_OS_OPENBSD + mib[1] = HW_PHYSMEM64; +#elif DETECT_OS_FREEBSD + mib[1] = HW_REALMEM; +#elif DETECT_OS_DRAGONFLY + mib[1] = HW_PHYSMEM; +#else +#error Unsupported *BSD +#endif + + return (sysctl(mib, 2, size, &len, NULL, 0) == 0); +#elif DETECT_OS_HAIKU + system_info info; + status_t ret; + + ret = get_system_info(&info); + if (ret != B_OK || info.max_pages <= 0) + return false; + + *size = (uint64_t)info.max_pages * (uint64_t)B_PAGE_SIZE; + return true; +#elif DETECT_OS_WINDOWS + MEMORYSTATUSEX status; + BOOL ret; + + status.dwLength = sizeof(status); + ret = GlobalMemoryStatusEx(&status); + *size = status.ullTotalPhys; + return (ret == TRUE); +#else +#error unexpected platform in os_sysinfo.c + return false; +#endif +} + +bool +os_get_available_system_memory(uint64_t *size) +{ +#if DETECT_OS_LINUX + char *meminfo = os_read_file("/proc/meminfo", NULL); + if (!meminfo) + return false; + + char *str = strstr(meminfo, "MemAvailable:"); + if (!str) { + free(meminfo); + return false; + } + + uint64_t kb_mem_available; + if (sscanf(str, "MemAvailable: %" PRIu64, &kb_mem_available) == 1) { + free(meminfo); + *size = kb_mem_available << 10; + return true; + } + + free(meminfo); + return false; +#elif DETECT_OS_OPENBSD || DETECT_OS_FREEBSD + struct rlimit rl; +#if DETECT_OS_OPENBSD + int mib[] = { CTL_HW, HW_USERMEM64 }; +#elif DETECT_OS_FREEBSD + int mib[] = { CTL_HW, HW_USERMEM }; +#endif + int64_t mem_available; + size_t len = sizeof(mem_available); + + /* physmem - wired */ + if (sysctl(mib, 2, &mem_available, &len, NULL, 0) == -1) + return false; + + /* static login.conf limit */ + if (getrlimit(RLIMIT_DATA, &rl) == -1) + return false; + + *size = MIN2(mem_available, rl.rlim_cur); + return true; +#else + return false; +#endif +} + +/** + * Return the size of a page + * \param size returns the size of a page + * \return true for success, or false on failure + */ +bool +os_get_page_size(uint64_t *size) +{ +#if DETECT_OS_UNIX && !DETECT_OS_APPLE && !DETECT_OS_HAIKU + const long page_size = sysconf(_SC_PAGE_SIZE); + + if (page_size <= 0) + return false; + + *size = (uint64_t)page_size; + return true; +#elif DETECT_OS_HAIKU + *size = (uint64_t)B_PAGE_SIZE; + return true; +#elif DETECT_OS_WINDOWS + SYSTEM_INFO SysInfo; + + GetSystemInfo(&SysInfo); + *size = SysInfo.dwPageSize; + return true; +#elif DETECT_OS_APPLE + size_t len = sizeof(*size); + int mib[2]; + + mib[0] = CTL_HW; + mib[1] = HW_PAGESIZE; + return (sysctl(mib, 2, size, &len, NULL, 0) == 0); +#else +#error unexpected platform in os_sysinfo.c + return false; +#endif +} diff --git a/src/gallium/auxiliary/os/os_misc.h b/src/mesa/util/os_misc.h similarity index 81% rename from src/gallium/auxiliary/os/os_misc.h rename to src/mesa/util/os_misc.h index cbb5cbd..432bfe1 100644 --- a/src/gallium/auxiliary/os/os_misc.h +++ b/src/mesa/util/os_misc.h @@ -1,6 +1,6 @@ /************************************************************************** * - * Copyright 2010 Vmware, Inc. + * Copyright 2010 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -34,15 +34,18 @@ #ifndef _OS_MISC_H_ #define _OS_MISC_H_ +#include +#include -#include "pipe/p_compiler.h" +#include "detect_os.h" -#if defined(PIPE_OS_UNIX) +#if DETECT_OS_UNIX # include /* for kill() */ # include /* getpid() */ #endif + #ifdef __cplusplus extern "C" { #endif @@ -55,7 +58,7 @@ extern "C" { # define os_break() __asm("int3") #elif defined(PIPE_CC_MSVC) # define os_break() __debugbreak() -#elif defined(PIPE_OS_UNIX) +#elif DETECT_OS_UNIX # define os_break() kill(getpid(), SIGTRAP) #else # define os_break() abort() @@ -66,7 +69,7 @@ extern "C" { * Abort the program. */ #if defined(DEBUG) -# define os_abort() os_break() +# define os_abort() do { os_break(); abort(); } while(0) #else # define os_abort() abort() #endif @@ -86,6 +89,25 @@ const char * os_get_option(const char *name); +/* + * Get the total amount of physical memory available on the system. + */ +bool +os_get_total_physical_memory(uint64_t *size); + +/* + * Amount of physical memory available to a process + */ +bool +os_get_available_system_memory(uint64_t *size); + +/* + * Size of a page + */ +bool +os_get_page_size(uint64_t *size); + + #ifdef __cplusplus } #endif diff --git a/src/venus/vkr_common.h b/src/venus/vkr_common.h index 2abc8d5..18603cc 100644 --- a/src/venus/vkr_common.h +++ b/src/venus/vkr_common.h @@ -18,9 +18,9 @@ #include #include "c11/threads.h" -#include "os/os_misc.h" #include "os/os_thread.h" #include "pipe/p_compiler.h" +#include "util/os_misc.h" #include "util/u_double_list.h" #include "util/u_hash_table.h" #include "util/u_math.h" diff --git a/src/venus/vkr_renderer.h b/src/venus/vkr_renderer.h index 8adbb63..b36bccb 100644 --- a/src/venus/vkr_renderer.h +++ b/src/venus/vkr_renderer.h @@ -11,7 +11,7 @@ #include #include -#include "os/os_misc.h" +#include "util/os_misc.h" #include "virgl_util.h" #define VKR_RENDERER_THREAD_SYNC (1u << 0) diff --git a/src/virgl_context.c b/src/virgl_context.c index 6df2309..b37e75e 100644 --- a/src/virgl_context.c +++ b/src/virgl_context.c @@ -26,7 +26,7 @@ #include -#include "os/os_misc.h" +#include "util/os_misc.h" #include "util/u_hash_table.h" #include "util/u_pointer.h" #include "virgl_util.h" diff --git a/src/virgl_util.c b/src/virgl_util.c index 99ff88e..15d867d 100644 --- a/src/virgl_util.c +++ b/src/virgl_util.c @@ -34,7 +34,7 @@ #endif #include -#include "os/os_misc.h" +#include "util/os_misc.h" #include "util/u_pointer.h" #include diff --git a/tests/fuzzer/virgl_venus_fuzzer.c b/tests/fuzzer/virgl_venus_fuzzer.c index eff1ba4..49cfb4e 100644 --- a/tests/fuzzer/virgl_venus_fuzzer.c +++ b/tests/fuzzer/virgl_venus_fuzzer.c @@ -8,7 +8,7 @@ #include #include -#include "os/os_misc.h" +#include "util/macros.h" #include "virglrenderer.h" #include "virglrenderer_hw.h" diff --git a/tests/test_fuzzer_formats.c b/tests/test_fuzzer_formats.c index 154a2e5..59d6fb6 100644 --- a/tests/test_fuzzer_formats.c +++ b/tests/test_fuzzer_formats.c @@ -39,7 +39,6 @@ #include "vrend_winsys_egl.h" #include "virglrenderer.h" #include "virgl_protocol.h" -#include "os/os_misc.h" #include