From 217c17e8a2c58f76d2aa28583cbacd552e29f3b1 Mon Sep 17 00:00:00 2001 From: Manuel Date: Mon, 11 Nov 2024 14:51:57 -0400 Subject: [PATCH] gfxstream: Avoid repeated functionality MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removed a function that creates anonymous file descriptors when called. Additionally replaced a call of said function with the one from the "util" directory. The intention is to avoid repeated functionality util: Allow code to be compatible in c++ compilers Added an extern "C" statement and preprocessor directives to make the “os_create_anonymous_file” function compatible with c++ compilers Reviewed-by: Gurchetan Singh Part-of: --- .../guest/vulkan_enc/ResourceTracker.cpp | 20 +++---------------- src/util/anon_file.h | 8 ++++++++ 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp b/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp index 06fd4248f14..af09b5ff745 100644 --- a/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp +++ b/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp @@ -13,6 +13,7 @@ #include "gfxstream_vk_private.h" #include "goldfish_address_space.h" #include "goldfish_vk_private_defs.h" +#include "util/anon_file.h" #include "util/macros.h" #include "virtgpu_gfxstream_protocol.h" #include "vulkan/vulkan_core.h" @@ -37,22 +38,6 @@ #include #endif -#if defined(__ANDROID__) || defined(__linux__) || defined(__APPLE__) - -#include -#include - -static inline int inline_memfd_create(const char* name, unsigned int flags) { -#if defined(__ANDROID__) - return syscall(SYS_memfd_create, name, flags); -#else - return -1; -#endif -} - -#define memfd_create inline_memfd_create -#endif - #ifndef VK_USE_PLATFORM_FUCHSIA void zx_handle_close(zx_handle_t) {} void zx_event_create(int, zx_handle_t*) {} @@ -5760,11 +5745,12 @@ VkResult ResourceTracker::on_vkGetSemaphoreFdKHR(void* context, VkResult, VkDevi } else { // opaque fd int hostFd = 0; + int32_t size = 0; VkResult result = enc->vkGetSemaphoreFdKHR(device, pGetFdInfo, &hostFd, true /* do lock */); if (result != VK_SUCCESS) { return result; } - *pFd = memfd_create("vk_opaque_fd", 0); + *pFd = os_create_anonymous_file(size, "vk_opaque_fd"); write(*pFd, &hostFd, sizeof(hostFd)); return VK_SUCCESS; } diff --git a/src/util/anon_file.h b/src/util/anon_file.h index bdd74205d90..db9598ac9b4 100644 --- a/src/util/anon_file.h +++ b/src/util/anon_file.h @@ -28,7 +28,15 @@ #include +#ifdef __cplusplus +extern "C"{ +#endif + /* On win32, off_t is only 32 bit, so always using 64 bit size */ int os_create_anonymous_file(int64_t size, const char *debug_name); +#ifdef __cplusplus +} +#endif + #endif