| // | |
| // Copyright 2019 The ANGLE Project Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| // | |
| // system_utils_winuwp.cpp: Implementation of OS-specific functions for Windows UWP | |
| #include "common/debug.h" | |
| #include "system_utils.h" | |
| #include <stdarg.h> | |
| #include <windows.h> | |
| #include <array> | |
| #include <string> | |
| namespace angle | |
| { | |
| bool SetEnvironmentVar(const char *variableName, const char *value) | |
| { | |
| // Not supported for UWP | |
| return false; | |
| } | |
| std::string GetEnvironmentVar(const char *variableName) | |
| { | |
| // Not supported for UWP | |
| return ""; | |
| } | |
| void *OpenSystemLibraryWithExtensionAndGetError(const char *libraryName, | |
| SearchType searchType, | |
| std::string *errorOut) | |
| { | |
| char buffer[MAX_PATH]; | |
| int ret = snprintf(buffer, MAX_PATH, "%s.%s", libraryName, GetSharedLibraryExtension()); | |
| if (ret <= 0 || ret >= MAX_PATH) | |
| { | |
| fprintf(stderr, "Error loading shared library: 0x%x", ret); | |
| return nullptr; | |
| } | |
| HMODULE libraryModule = nullptr; | |
| switch (searchType) | |
| { | |
| case SearchType::ModuleDir: | |
| if (errorOut) | |
| { | |
| *errorOut = libraryName; | |
| } | |
| libraryModule = LoadPackagedLibrary(Widen(libraryName).c_str(), 0); | |
| break; | |
| case SearchType::SystemDir: | |
| case SearchType::AlreadyLoaded: | |
| // Not supported in UWP | |
| break; | |
| } | |
| return reinterpret_cast<void *>(libraryModule); | |
| } | |
| namespace | |
| { | |
| class UwpPageFaultHandler : public PageFaultHandler | |
| { | |
| public: | |
| UwpPageFaultHandler(PageFaultCallback callback) : PageFaultHandler(callback) {} | |
| ~UwpPageFaultHandler() override {} | |
| bool enable() override; | |
| bool disable() override; | |
| }; | |
| bool UwpPageFaultHandler::disable() | |
| { | |
| UNIMPLEMENTED(); | |
| return true; | |
| } | |
| bool UwpPageFaultHandler::enable() | |
| { | |
| UNIMPLEMENTED(); | |
| return true; | |
| } | |
| } // namespace | |
| bool ProtectMemory(uintptr_t start, size_t size) | |
| { | |
| UNIMPLEMENTED(); | |
| return true; | |
| } | |
| bool UnprotectMemory(uintptr_t start, size_t size) | |
| { | |
| UNIMPLEMENTED(); | |
| return true; | |
| } | |
| size_t GetPageSize() | |
| { | |
| UNIMPLEMENTED(); | |
| return 4096; | |
| } | |
| PageFaultHandler *CreatePageFaultHandler(PageFaultCallback callback) | |
| { | |
| return new UwpPageFaultHandler(callback); | |
| } | |
| uint64_t GetProcessMemoryUsageKB() | |
| { | |
| // Not available on UWP. | |
| return 0; | |
| } | |
| } // namespace angle |