/* * Carla shared memory utils * Copyright (C) 2023 Filipe Coelho * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or any later version. * * This program 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 General Public License for more details. * * For a full copy of the GNU General Public License see the doc/GPL.txt file. */ #ifndef CARLA_MEM_UTILS_HPP_INCLUDED #define CARLA_MEM_UTILS_HPP_INCLUDED #include "CarlaUtils.hpp" #if !defined(CARLA_OS_WASM) && !defined(CARLA_OS_WIN) # include #endif // -------------------------------------------------------------------------------------------------------------------- static inline bool carla_mlock(void* const ptr, const size_t size) { #if defined(CARLA_OS_WASM) // unsupported return false; (void)ptr; (void)size; #elif defined(CARLA_OS_WIN) return ::VirtualLock(ptr, size) != FALSE; #else return ::mlock(ptr, size) == 0; #endif } // -------------------------------------------------------------------------------------------------------------------- #endif // CARLA_MEM_UTILS_HPP_INCLUDED