github.com/Konstantin8105/c4go@v0.0.0-20240505174241-768bb1c65a51/tests/raylib/external/glfw/src/posix_module.c (about)

     1  //========================================================================
     2  // GLFW 3.4 POSIX - www.glfw.org
     3  //------------------------------------------------------------------------
     4  // Copyright (c) 2021 Camilla Löwy <elmindreda@glfw.org>
     5  //
     6  // This software is provided 'as-is', without any express or implied
     7  // warranty. In no event will the authors be held liable for any damages
     8  // arising from the use of this software.
     9  //
    10  // Permission is granted to anyone to use this software for any purpose,
    11  // including commercial applications, and to alter it and redistribute it
    12  // freely, subject to the following restrictions:
    13  //
    14  // 1. The origin of this software must not be misrepresented; you must not
    15  //    claim that you wrote the original software. If you use this software
    16  //    in a product, an acknowledgment in the product documentation would
    17  //    be appreciated but is not required.
    18  //
    19  // 2. Altered source versions must be plainly marked as such, and must not
    20  //    be misrepresented as being the original software.
    21  //
    22  // 3. This notice may not be removed or altered from any source
    23  //    distribution.
    24  //
    25  //========================================================================
    26  // It is fine to use C99 in this file because it will not be built with VS
    27  //========================================================================
    28  
    29  #include "internal.h"
    30  
    31  #include <dlfcn.h>
    32  
    33  //////////////////////////////////////////////////////////////////////////
    34  //////                       GLFW platform API                      //////
    35  //////////////////////////////////////////////////////////////////////////
    36  
    37  void* _glfwPlatformLoadModule(const char* path)
    38  {
    39      return dlopen(path, RTLD_LAZY | RTLD_LOCAL);
    40  }
    41  
    42  void _glfwPlatformFreeModule(void* module)
    43  {
    44      dlclose(module);
    45  }
    46  
    47  GLFWproc _glfwPlatformGetModuleSymbol(void* module, const char* name)
    48  {
    49      return dlsym(module, name);
    50  }
    51