[Mesa-dev] [PATCH v2 19/19] swr: [rasterizer] utility functions for shared libs
Ian Romanick
idr at freedesktop.org
Tue May 17 23:11:54 UTC 2016
None of this appears to be used either.
On 05/17/2016 03:36 PM, Tim Rowley wrote:
> ---
> src/gallium/drivers/swr/rasterizer/core/utils.h | 65 +++++++++++++++++++++-
> .../drivers/swr/rasterizer/jitter/jit_api.h | 1 +
> 2 files changed, 64 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/drivers/swr/rasterizer/core/utils.h b/src/gallium/drivers/swr/rasterizer/core/utils.h
> index bf53c69..a5b004c 100644
> --- a/src/gallium/drivers/swr/rasterizer/core/utils.h
> +++ b/src/gallium/drivers/swr/rasterizer/core/utils.h
> @@ -867,7 +867,7 @@ struct TemplateArgUnroller
> };
>
> //////////////////////////////////////////////////////////////////////////
> -/// Helper used to get an environment variable
> +/// Helpers used to get / set environment variable
> //////////////////////////////////////////////////////////////////////////
> static INLINE std::string GetEnv(const std::string& variableName)
> {
> @@ -882,4 +882,65 @@ static INLINE std::string GetEnv(const std::string& variableName)
> #endif
>
> return output;
> -}
> \ No newline at end of file
> +}
> +
> +static INLINE void SetEnv(const std::string& variableName, const std::string& value)
> +{
> +#if defined(_WIN32)
> + SetEnvironmentVariableA(variableName.c_str(), value.c_str());
> +#else
> + setenv(variableName.c_str(), value.c_str(), true);
> +#endif
> +}
> +
> +//////////////////////////////////////////////////////////////////////////
> +/// Abstraction for dynamically loading modules and getting functions
> +//////////////////////////////////////////////////////////////////////////
> +#if defined(_WIN32)
> +typedef HMODULE SWR_MODULE_HANDLE;
> +#else
> +#include <dlfcn.h>
> +typedef void* SWR_MODULE_HANDLE;
> +#endif
> +
> +static inline SWR_MODULE_HANDLE SWR_API LoadModule(const char* szModuleName)
> +{
> +#if defined(_WIN32)
> + return LoadLibraryA(szModuleName);
> +#else
> + return dlopen(szModuleName, RTLD_LAZY | RTLD_LOCAL);
> +#endif
> +}
> +
> +static inline void SWR_API FreeModuleHandle(SWR_MODULE_HANDLE hModule)
> +{
> + if (hModule)
> + {
> +#if defined(_WIN32)
> + FreeLibrary((HMODULE)hModule);
> +#else
> + dlclose(hModule);
> +#endif
> + }
> +}
> +
> +static inline void* SWR_API GetProcFromModule(SWR_MODULE_HANDLE hModule, const char* szProcName)
> +{
> + if (hModule && szProcName)
> + {
> +#if defined(_WIN32)
> + return GetProcAddress((HMODULE)hModule, szProcName);
> +#else
> + return dlsym(hModule, szProcName);
> +#endif
> + }
> +
> + return nullptr;
> +}
> +
> +template<typename T>
> +static inline void GetProcFromModule(SWR_MODULE_HANDLE hModule, const char* szProcName, T& outFunc)
> +{
> + outFunc = (T)GetProcFromModule(hModule, szProcName);
> +}
> +
> diff --git a/src/gallium/drivers/swr/rasterizer/jitter/jit_api.h b/src/gallium/drivers/swr/rasterizer/jitter/jit_api.h
> index 08261e7..f5c27f0 100644
> --- a/src/gallium/drivers/swr/rasterizer/jitter/jit_api.h
> +++ b/src/gallium/drivers/swr/rasterizer/jitter/jit_api.h
> @@ -29,6 +29,7 @@
> ******************************************************************************/
> #pragma once
> #include "common/os.h"
> +#include "core/utils.h"
>
> #include "fetch_jit.h"
> #include "streamout_jit.h"
>
More information about the mesa-dev
mailing list