Apply the Apache 2.0 license.
Change-Id: I4a7aeefedcd2d891093520d5a10ebefadcddb5be
Reviewed-on: https://swiftshader-review.googlesource.com/5320
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/Common/SharedLibrary.hpp b/src/Common/SharedLibrary.hpp
index 1046d64..8d881c1 100644
--- a/src/Common/SharedLibrary.hpp
+++ b/src/Common/SharedLibrary.hpp
@@ -1,129 +1,132 @@
-// SwiftShader Software Renderer
-//
-// Copyright(c) 2005-2012 TransGaming Inc.
-//
-// All rights reserved. No part of this software may be copied, distributed, transmitted,
-// transcribed, stored in a retrieval system, translated into any human or computer
-// language by any means, or disclosed to third parties without the explicit written
-// agreement of TransGaming Inc. Without such an agreement, no rights or licenses, express
-// or implied, including but not limited to any patent rights, are granted to you.
-//
-
-#ifndef SharedLibrary_hpp
-#define SharedLibrary_hpp
-
-#if defined(_WIN32)
- #include <Windows.h>
-#else
- #include <dlfcn.h>
-#endif
-
-void *getLibraryHandle(const char *path);
-void *loadLibrary(const char *path);
-void freeLibrary(void *library);
-void *getProcAddress(void *library, const char *name);
-
-template<int n>
-void *loadLibrary(const char *(&names)[n], const char *mustContainSymbol = nullptr)
-{
- for(int i = 0; i < n; i++)
- {
- void *library = getLibraryHandle(names[i]);
-
- if(library)
- {
- if(!mustContainSymbol || getProcAddress(library, mustContainSymbol))
- {
- return library;
- }
-
- freeLibrary(library);
- }
- }
-
- for(int i = 0; i < n; i++)
- {
- void *library = loadLibrary(names[i]);
-
- if(library)
- {
- if(!mustContainSymbol || getProcAddress(library, mustContainSymbol))
- {
- return library;
- }
-
- freeLibrary(library);
- }
- }
-
- return 0;
-}
-
-#if defined(_WIN32)
- inline void *loadLibrary(const char *path)
- {
- return (void*)LoadLibrary(path);
- }
-
- inline void *getLibraryHandle(const char *path)
- {
- HMODULE module = 0;
- GetModuleHandleEx(0, path, &module);
- return (void*)module;
- }
-
- inline void freeLibrary(void *library)
- {
- FreeLibrary((HMODULE)library);
- }
-
- inline void *getProcAddress(void *library, const char *name)
- {
- return (void*)GetProcAddress((HMODULE)library, name);
- }
-#else
- inline void *loadLibrary(const char *path)
- {
- return dlopen(path, RTLD_LAZY | RTLD_LOCAL);
- }
-
- inline void *getLibraryHandle(const char *path)
- {
- #ifdef __ANDROID__
- // bionic doesn't support RTLD_NOLOAD before L
- return dlopen(path, RTLD_NOW | RTLD_LOCAL);
- #else
- void *resident = dlopen(path, RTLD_LAZY | RTLD_NOLOAD | RTLD_LOCAL);
-
- if(resident)
- {
- return dlopen(path, RTLD_LAZY | RTLD_LOCAL); // Increment reference count
- }
-
- return 0;
- #endif
- }
-
- inline void freeLibrary(void *library)
- {
- if(library)
- {
- dlclose(library);
- }
- }
-
- inline void *getProcAddress(void *library, const char *name)
- {
- void *symbol = dlsym(library, name);
-
- if(!symbol)
- {
- const char *reason = dlerror(); // Silence the error
- (void)reason;
- }
-
- return symbol;
- }
-#endif
-
-#endif // SharedLibrary_hpp
+// Copyright 2016 The SwiftShader Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef SharedLibrary_hpp
+#define SharedLibrary_hpp
+
+#if defined(_WIN32)
+ #include <Windows.h>
+#else
+ #include <dlfcn.h>
+#endif
+
+void *getLibraryHandle(const char *path);
+void *loadLibrary(const char *path);
+void freeLibrary(void *library);
+void *getProcAddress(void *library, const char *name);
+
+template<int n>
+void *loadLibrary(const char *(&names)[n], const char *mustContainSymbol = nullptr)
+{
+ for(int i = 0; i < n; i++)
+ {
+ void *library = getLibraryHandle(names[i]);
+
+ if(library)
+ {
+ if(!mustContainSymbol || getProcAddress(library, mustContainSymbol))
+ {
+ return library;
+ }
+
+ freeLibrary(library);
+ }
+ }
+
+ for(int i = 0; i < n; i++)
+ {
+ void *library = loadLibrary(names[i]);
+
+ if(library)
+ {
+ if(!mustContainSymbol || getProcAddress(library, mustContainSymbol))
+ {
+ return library;
+ }
+
+ freeLibrary(library);
+ }
+ }
+
+ return 0;
+}
+
+#if defined(_WIN32)
+ inline void *loadLibrary(const char *path)
+ {
+ return (void*)LoadLibrary(path);
+ }
+
+ inline void *getLibraryHandle(const char *path)
+ {
+ HMODULE module = 0;
+ GetModuleHandleEx(0, path, &module);
+ return (void*)module;
+ }
+
+ inline void freeLibrary(void *library)
+ {
+ FreeLibrary((HMODULE)library);
+ }
+
+ inline void *getProcAddress(void *library, const char *name)
+ {
+ return (void*)GetProcAddress((HMODULE)library, name);
+ }
+#else
+ inline void *loadLibrary(const char *path)
+ {
+ return dlopen(path, RTLD_LAZY | RTLD_LOCAL);
+ }
+
+ inline void *getLibraryHandle(const char *path)
+ {
+ #ifdef __ANDROID__
+ // bionic doesn't support RTLD_NOLOAD before L
+ return dlopen(path, RTLD_NOW | RTLD_LOCAL);
+ #else
+ void *resident = dlopen(path, RTLD_LAZY | RTLD_NOLOAD | RTLD_LOCAL);
+
+ if(resident)
+ {
+ return dlopen(path, RTLD_LAZY | RTLD_LOCAL); // Increment reference count
+ }
+
+ return 0;
+ #endif
+ }
+
+ inline void freeLibrary(void *library)
+ {
+ if(library)
+ {
+ dlclose(library);
+ }
+ }
+
+ inline void *getProcAddress(void *library, const char *name)
+ {
+ void *symbol = dlsym(library, name);
+
+ if(!symbol)
+ {
+ const char *reason = dlerror(); // Silence the error
+ (void)reason;
+ }
+
+ return symbol;
+ }
+#endif
+
+#endif // SharedLibrary_hpp