From 4f25a96928269b9ed4b2ef5e4e072d09698c2c05 Mon Sep 17 00:00:00 2001 From: gibbed Date: Sat, 21 Nov 2020 21:31:08 -0600 Subject: [PATCH 01/16] [Kernel] Overhaul Rtl time functions. - Add date third party submodule. - [Kernel] Add xclock. - [Kernel] Reimplement RtlTimeToTimeFields using std::chrono/date/xclock. - [Kernel] Reimplement RtlTimeFieldsToTime using std::chrono/date/xclock. - Supersedes #1612. --- .gitmodules | 3 + src/xenia/kernel/xboxkrnl/xboxkrnl_rtl.cc | 69 ++++++++++---------- src/xenia/kernel/xclock.h | 78 +++++++++++++++++++++++ third_party/date | 1 + 4 files changed, 118 insertions(+), 33 deletions(-) create mode 100644 src/xenia/kernel/xclock.h create mode 160000 third_party/date diff --git a/.gitmodules b/.gitmodules index 597affeb8..b8f139b8a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -70,3 +70,6 @@ [submodule "third_party/premake-androidmk"] path = third_party/premake-androidmk url = https://github.com/Triang3l/premake-androidmk.git +[submodule "third_party/date"] + path = third_party/date + url = https://github.com/HowardHinnant/date.git diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_rtl.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_rtl.cc index e06daba48..db3cef5db 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_rtl.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_rtl.cc @@ -21,14 +21,10 @@ #include "xenia/kernel/util/shim_utils.h" #include "xenia/kernel/xboxkrnl/xboxkrnl_private.h" #include "xenia/kernel/xboxkrnl/xboxkrnl_threading.h" +#include "xenia/kernel/xclock.h" #include "xenia/kernel/xevent.h" #include "xenia/kernel/xthread.h" -#if XE_PLATFORM_WIN32 -#include "xenia/base/platform_win.h" -#define timegm _mkgmtime -#endif - namespace xe { namespace kernel { namespace xboxkrnl { @@ -507,44 +503,51 @@ struct X_TIME_FIELDS { xe::be milliseconds; xe::be weekday; }; -static_assert(sizeof(X_TIME_FIELDS) == 16, "Must be LARGEINTEGER"); +static_assert_size(X_TIME_FIELDS, 16); -// https://support.microsoft.com/en-us/kb/167296 +// https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-rtltimetotimefields void RtlTimeToTimeFields(lpqword_t time_ptr, pointer_t time_fields_ptr) { - int64_t time_ms = time_ptr.value() / 10000 - 11644473600000LL; - time_t timet = time_ms / 1000; - struct tm* tm = gmtime(&timet); - - time_fields_ptr->year = tm->tm_year + 1900; - time_fields_ptr->month = tm->tm_mon + 1; - time_fields_ptr->day = tm->tm_mday; - time_fields_ptr->hour = tm->tm_hour; - time_fields_ptr->minute = tm->tm_min; - time_fields_ptr->second = tm->tm_sec; - time_fields_ptr->milliseconds = time_ms % 1000; - time_fields_ptr->weekday = tm->tm_wday; + auto tp = XClock::to_sys(XClock::from_file_time(time_ptr.value())); + auto dp = date::floor(tp); + auto year_month_day = date::year_month_day{dp}; + auto weekday = date::weekday{dp}; + auto time = date::hh_mm_ss{date::floor(tp - dp)}; + time_fields_ptr->year = static_cast(year_month_day.year()); + time_fields_ptr->month = static_cast(year_month_day.month()); + time_fields_ptr->day = static_cast(year_month_day.day()); + time_fields_ptr->weekday = weekday.c_encoding(); + time_fields_ptr->hour = time.hours().count(); + time_fields_ptr->minute = time.minutes().count(); + time_fields_ptr->second = static_cast(time.seconds().count()); + time_fields_ptr->milliseconds = + static_cast(time.subseconds().count()); } DECLARE_XBOXKRNL_EXPORT1(RtlTimeToTimeFields, kNone, kImplemented); +// https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-rtltimefieldstotime dword_result_t RtlTimeFieldsToTime(pointer_t time_fields_ptr, lpqword_t time_ptr) { - struct tm tm; - tm.tm_year = time_fields_ptr->year - 1900; - tm.tm_mon = time_fields_ptr->month - 1; - tm.tm_mday = time_fields_ptr->day; - tm.tm_hour = time_fields_ptr->hour; - tm.tm_min = time_fields_ptr->minute; - tm.tm_sec = time_fields_ptr->second; - tm.tm_isdst = 0; - time_t timet = timegm(&tm); - if (timet == -1) { - // set last error = ERROR_INVALID_PARAMETER + if (time_fields_ptr->year < 1601 || time_fields_ptr->month < 1 || + time_fields_ptr->month > 11 || time_fields_ptr->day < 1 || + time_fields_ptr->hour > 23 || time_fields_ptr->minute > 59 || + time_fields_ptr->second > 59 || time_fields_ptr->milliseconds > 999) { return 0; } - uint64_t time = - ((timet + 11644473600LL) * 1000 + time_fields_ptr->milliseconds) * 10000; - *time_ptr = time; + auto year = date::year{time_fields_ptr->year}; + auto month = date::month{time_fields_ptr->month}; + auto day = date::day{time_fields_ptr->day}; + auto year_month_day = date::year_month_day{year, month, day}; + if (!year_month_day.ok()) { + return 0; + } + auto dp = static_cast(year_month_day); + std::chrono::system_clock::time_point time = dp; + time += std::chrono::hours{time_fields_ptr->hour}; + time += std::chrono::minutes{time_fields_ptr->minute}; + time += std::chrono::seconds{time_fields_ptr->second}; + time += std::chrono::milliseconds{time_fields_ptr->milliseconds}; + *time_ptr = XClock::to_file_time(XClock::from_sys(time)); return 1; } DECLARE_XBOXKRNL_EXPORT1(RtlTimeFieldsToTime, kNone, kImplemented); diff --git a/src/xenia/kernel/xclock.h b/src/xenia/kernel/xclock.h new file mode 100644 index 000000000..809dfd775 --- /dev/null +++ b/src/xenia/kernel/xclock.h @@ -0,0 +1,78 @@ +/** + ****************************************************************************** + * Xenia : Xbox 360 Emulator Research Project * + ****************************************************************************** + * Copyright 2020 Ben Vanik. All rights reserved. * + * Released under the BSD license - see LICENSE in the root for more details. * + ****************************************************************************** + */ + +#ifndef XENIA_KERNEL_XCLOCK_H_ +#define XENIA_KERNEL_XCLOCK_H_ + +#include + +#include "xenia/base/clock.h" + +#include "third_party/date/include/date/date.h" + +namespace xe { +namespace kernel { + +struct XClock { + using rep = int64_t; + using period = std::ratio_multiply, std::nano>; + using duration = std::chrono::duration; + using time_point = std::chrono::time_point; + static constexpr bool is_steady = false; + + static time_point now() noexcept { + return from_file_time(Clock::QueryGuestSystemTime()); + } + + static uint64_t to_file_time(time_point const& tp) noexcept { + return static_cast(tp.time_since_epoch().count()); + } + + static time_point from_file_time(uint64_t const& tp) noexcept { + return time_point{duration{tp}}; + } + + static std::chrono::system_clock::time_point to_sys(time_point const& tp) { + // TODO(gibbed): verify behavior under Linux + using sys_duration = std::chrono::system_clock::duration; + using sys_time = std::chrono::system_clock::time_point; + auto dp = tp; + dp += system_clock_delta(); + auto cdp = std::chrono::time_point_cast(dp); + return sys_time{cdp.time_since_epoch()}; + } + + static time_point from_sys(std::chrono::system_clock::time_point const& tp) { + // TODO(gibbed): verify behavior under Linux + auto ctp = std::chrono::time_point_cast(tp); + auto dp = time_point{ctp.time_since_epoch()}; + dp -= system_clock_delta(); + return dp; + } + + private: + // The delta between std::chrono::system_clock (Jan 1 1970) and Xenon file + // time (Jan 1 1601), in seconds. In the spec std::chrono::system_clock's + // epoch is undefined, but C++20 cements it as Jan 1 1970. + static constexpr std::chrono::seconds system_clock_delta() { + auto filetime_epoch = date::year{1601} / date::month{1} / date::day{1}; + auto system_clock_epoch = date::year{1970} / date::month{1} / date::day{1}; + std::chrono::system_clock::time_point fp{ + static_cast(filetime_epoch)}; + std::chrono::system_clock::time_point sp{ + static_cast(system_clock_epoch)}; + return std::chrono::floor(fp.time_since_epoch() - + sp.time_since_epoch()); + } +}; + +} // namespace kernel +} // namespace xe + +#endif // XENIA_KERNEL_XCLOCK_H_ diff --git a/third_party/date b/third_party/date new file mode 160000 index 000000000..97246a638 --- /dev/null +++ b/third_party/date @@ -0,0 +1 @@ +Subproject commit 97246a638a6d8f0269f4555c5e31106a86e3fd94 From 8749ca22609b6dad852a9e2b57d81d956bbdd4a3 Mon Sep 17 00:00:00 2001 From: gibbed Date: Sun, 22 Nov 2020 14:50:57 -0600 Subject: [PATCH 02/16] [Kernel] Filter thread names from guest. --- src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc index 345c82628..85a27b1c2 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc @@ -47,8 +47,12 @@ void HandleSetThreadName(pointer_t record) { return; } + // TODO(gibbed): cvar for thread name encoding for conversion, some games use + // SJIS and there's no way to automatically know this. auto name = - kernel_memory()->TranslateVirtual(thread_info->name_ptr); + std::string(kernel_memory()->TranslateVirtual(thread_info->name_ptr)); + std::replace_if( + name.begin(), name.end(), [](auto c) { return c < 32 || c > 127; }, '?'); object_ref thread; if (thread_info->thread_id == -1) { From aae292aab518b4e43ad78370b78d3541e3f116f5 Mon Sep 17 00:00:00 2001 From: Gliniak Date: Mon, 16 Nov 2020 19:02:37 +0100 Subject: [PATCH 03/16] [Kernel/Memory] MmQueryAddressProtect - Check for protect_bits equals 0 --- src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc index 0c6fa0a4d..77d834695 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc @@ -401,6 +401,11 @@ DECLARE_XBOXKRNL_EXPORT2(MmQueryAddressProtect, kMemory, kImplemented, void MmSetAddressProtect(lpvoid_t base_address, dword_t region_size, dword_t protect_bits) { + if (!protect_bits) { + XELOGE("MmSetAddressProtect: Failed due to incorrect protect_bits"); + return; + } + uint32_t protect = FromXdkProtectFlags(protect_bits); auto heap = kernel_memory()->LookupHeap(base_address); heap->Protect(base_address.guest_address(), region_size, protect); From 2cb7d26d62043190805fb182f66e8829ffd7e387 Mon Sep 17 00:00:00 2001 From: Triang3l Date: Mon, 23 Nov 2020 00:42:14 +0300 Subject: [PATCH 04/16] [Android] Add a comment about pthreads dynamic loading --- src/xenia/base/platform_android.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/xenia/base/platform_android.cc b/src/xenia/base/platform_android.cc index f2c807856..3db9a7f9f 100644 --- a/src/xenia/base/platform_android.cc +++ b/src/xenia/base/platform_android.cc @@ -48,6 +48,7 @@ void Initialize(const ANativeActivity* activity) { dlsym(lib, #name)); \ assert_not_null(api_functions_.api_##api.name); XE_PLATFORM_ANDROID_LOAD_API_FUNCTION(libandroid, ASharedMemory_create, 26); + // pthreads are a part of Bionic libc on Android. XE_PLATFORM_ANDROID_LOAD_API_FUNCTION(libc, pthread_getname_np, 26); #undef XE_PLATFORM_ANDROID_LOAD_API_FUNCTION } From c071500ff47d9117626de1775d377af967f675b6 Mon Sep 17 00:00:00 2001 From: Gliniak Date: Wed, 16 Sep 2020 20:09:32 +0200 Subject: [PATCH 05/16] [Base] Specify heap type on initialization --- src/xenia/memory.cc | 57 ++++++++++++++++++++++++--------------------- src/xenia/memory.h | 23 +++++++++++++----- 2 files changed, 48 insertions(+), 32 deletions(-) diff --git a/src/xenia/memory.cc b/src/xenia/memory.cc index f70e00f66..b6ceb54b4 100644 --- a/src/xenia/memory.cc +++ b/src/xenia/memory.cc @@ -158,24 +158,26 @@ bool Memory::Initialize() { physical_membase_ = mapping_base_ + 0x100000000ull; // Prepare virtual heaps. - heaps_.v00000000.Initialize(this, virtual_membase_, 0x00000000, 0x40000000, - 4096); - heaps_.v40000000.Initialize(this, virtual_membase_, 0x40000000, - 0x40000000 - 0x01000000, 64 * 1024); - heaps_.v80000000.Initialize(this, virtual_membase_, 0x80000000, 0x10000000, - 64 * 1024); - heaps_.v90000000.Initialize(this, virtual_membase_, 0x90000000, 0x10000000, - 4096); + heaps_.v00000000.Initialize(this, virtual_membase_, HeapType::kGuestVirtual, + 0x00000000, 0x40000000, 4096); + heaps_.v40000000.Initialize(this, virtual_membase_, HeapType::kGuestVirtual, + 0x40000000, 0x40000000 - 0x01000000, 64 * 1024); + heaps_.v80000000.Initialize(this, virtual_membase_, HeapType::kGuestXex, + 0x80000000, 0x10000000, 64 * 1024); + heaps_.v90000000.Initialize(this, virtual_membase_, HeapType::kGuestXex, + 0x90000000, 0x10000000, 4096); // Prepare physical heaps. - heaps_.physical.Initialize(this, physical_membase_, 0x00000000, 0x20000000, - 4096); - heaps_.vA0000000.Initialize(this, virtual_membase_, 0xA0000000, 0x20000000, - 64 * 1024, &heaps_.physical); - heaps_.vC0000000.Initialize(this, virtual_membase_, 0xC0000000, 0x20000000, - 16 * 1024 * 1024, &heaps_.physical); - heaps_.vE0000000.Initialize(this, virtual_membase_, 0xE0000000, 0x1FD00000, - 4096, &heaps_.physical); + heaps_.physical.Initialize(this, physical_membase_, HeapType::kGuestPhysical, + 0x00000000, 0x20000000, 4096); + heaps_.vA0000000.Initialize(this, virtual_membase_, HeapType::kGuestPhysical, + 0xA0000000, 0x20000000, 64 * 1024, + &heaps_.physical); + heaps_.vC0000000.Initialize(this, virtual_membase_, HeapType::kGuestPhysical, + 0xC0000000, 0x20000000, 16 * 1024 * 1024, + &heaps_.physical); + heaps_.vE0000000.Initialize(this, virtual_membase_, HeapType::kGuestPhysical, + 0xE0000000, 0x1FD00000, 4096, &heaps_.physical); // Protect the first and last 64kb of memory. heaps_.v00000000.AllocFixed( @@ -633,11 +635,12 @@ BaseHeap::BaseHeap() BaseHeap::~BaseHeap() = default; -void BaseHeap::Initialize(Memory* memory, uint8_t* membase, uint32_t heap_base, - uint32_t heap_size, uint32_t page_size, - uint32_t host_address_offset) { +void BaseHeap::Initialize(Memory* memory, uint8_t* membase, HeapType heap_type, + uint32_t heap_base, uint32_t heap_size, + uint32_t page_size, uint32_t host_address_offset) { memory_ = memory; membase_ = membase; + heap_type_ = heap_type; heap_base_ = heap_base; heap_size_ = heap_size; page_size_ = page_size; @@ -1346,9 +1349,10 @@ VirtualHeap::VirtualHeap() = default; VirtualHeap::~VirtualHeap() = default; void VirtualHeap::Initialize(Memory* memory, uint8_t* membase, - uint32_t heap_base, uint32_t heap_size, - uint32_t page_size) { - BaseHeap::Initialize(memory, membase, heap_base, heap_size, page_size); + HeapType heap_type, uint32_t heap_base, + uint32_t heap_size, uint32_t page_size) { + BaseHeap::Initialize(memory, membase, heap_type, heap_base, heap_size, + page_size); } PhysicalHeap::PhysicalHeap() : parent_heap_(nullptr) {} @@ -1356,8 +1360,9 @@ PhysicalHeap::PhysicalHeap() : parent_heap_(nullptr) {} PhysicalHeap::~PhysicalHeap() = default; void PhysicalHeap::Initialize(Memory* memory, uint8_t* membase, - uint32_t heap_base, uint32_t heap_size, - uint32_t page_size, VirtualHeap* parent_heap) { + HeapType heap_type, uint32_t heap_base, + uint32_t heap_size, uint32_t page_size, + VirtualHeap* parent_heap) { uint32_t host_address_offset; if (heap_base >= 0xE0000000 && xe::memory::allocation_granularity() > 0x1000) { @@ -1366,8 +1371,8 @@ void PhysicalHeap::Initialize(Memory* memory, uint8_t* membase, host_address_offset = 0; } - BaseHeap::Initialize(memory, membase, heap_base, heap_size, page_size, - host_address_offset); + BaseHeap::Initialize(memory, membase, heap_type, heap_base, heap_size, + page_size, host_address_offset); parent_heap_ = parent_heap; system_page_size_ = uint32_t(xe::memory::page_size()); diff --git a/src/xenia/memory.h b/src/xenia/memory.h index df76c39bc..d5e7ea4da 100644 --- a/src/xenia/memory.h +++ b/src/xenia/memory.h @@ -36,6 +36,13 @@ enum SystemHeapFlag : uint32_t { kSystemHeapDefault = kSystemHeapVirtual, }; +enum class HeapType : uint8_t { + kGuestVirtual, + kGuestXex, + kGuestPhysical, + kHostPhysical, +}; + enum MemoryAllocationFlag : uint32_t { kMemoryAllocationReserve = 1 << 0, kMemoryAllocationCommit = 1 << 1, @@ -106,6 +113,9 @@ class BaseHeap { // Size of each page within the heap range in bytes. uint32_t page_size() const { return page_size_; } + // Type of specified heap + HeapType heap_type() const { return heap_type_; } + // Offset added to the virtual addresses to convert them to host addresses // (not including membase). uint32_t host_address_offset() const { return host_address_offset_; } @@ -188,12 +198,13 @@ class BaseHeap { protected: BaseHeap(); - void Initialize(Memory* memory, uint8_t* membase, uint32_t heap_base, - uint32_t heap_size, uint32_t page_size, + void Initialize(Memory* memory, uint8_t* membase, HeapType heap_type, + uint32_t heap_base, uint32_t heap_size, uint32_t page_size, uint32_t host_address_offset = 0); Memory* memory_; uint8_t* membase_; + HeapType heap_type_; uint32_t heap_base_; uint32_t heap_size_; uint32_t page_size_; @@ -209,8 +220,8 @@ class VirtualHeap : public BaseHeap { ~VirtualHeap() override; // Initializes the heap properties and allocates the page table. - void Initialize(Memory* memory, uint8_t* membase, uint32_t heap_base, - uint32_t heap_size, uint32_t page_size); + void Initialize(Memory* memory, uint8_t* membase, HeapType heap_type, + uint32_t heap_base, uint32_t heap_size, uint32_t page_size); }; // A heap for ranges of memory that are mapped to physical ranges. @@ -226,8 +237,8 @@ class PhysicalHeap : public BaseHeap { ~PhysicalHeap() override; // Initializes the heap properties and allocates the page table. - void Initialize(Memory* memory, uint8_t* membase, uint32_t heap_base, - uint32_t heap_size, uint32_t page_size, + void Initialize(Memory* memory, uint8_t* membase, HeapType heap_type, + uint32_t heap_base, uint32_t heap_size, uint32_t page_size, VirtualHeap* parent_heap); bool Alloc(uint32_t size, uint32_t alignment, uint32_t allocation_type, From 26b0aa0cc44ddaa7335a07f3bc4107e31cc522b7 Mon Sep 17 00:00:00 2001 From: Gliniak Date: Wed, 16 Sep 2020 20:10:10 +0200 Subject: [PATCH 06/16] [Kernel/Memory] Restrict NtVirtualMemory only to virtual memory range --- src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc index 77d834695..8ecdabd5d 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc @@ -101,6 +101,9 @@ dword_result_t NtAllocateVirtualMemory(lpdword_t base_addr_ptr, if (*base_addr_ptr != 0) { // ignore specified page size when base address is specified. auto heap = kernel_memory()->LookupHeap(*base_addr_ptr); + if (heap->heap_type() != HeapType::kGuestVirtual) { + return X_STATUS_INVALID_PARAMETER; + } page_size = heap->page_size(); } else { // Adjust size. @@ -192,7 +195,9 @@ dword_result_t NtProtectVirtualMemory(lpdword_t base_addr_ptr, } auto heap = kernel_memory()->LookupHeap(*base_addr_ptr); - + if (heap->heap_type() != HeapType::kGuestVirtual) { + return X_STATUS_INVALID_PARAMETER; + } // Adjust the base downwards to the nearest page boundary. uint32_t adjusted_base = *base_addr_ptr - (*base_addr_ptr % heap->page_size()); @@ -240,6 +245,9 @@ dword_result_t NtFreeVirtualMemory(lpdword_t base_addr_ptr, } auto heap = kernel_state()->memory()->LookupHeap(base_addr_value); + if (heap->heap_type() != HeapType::kGuestVirtual) { + return X_STATUS_INVALID_PARAMETER; + } bool result = false; if (free_type == X_MEM_DECOMMIT) { // If zero, we may need to query size (free whole region). From a6868d1f8a2e59adf1b88cb89aa389a20c0efe89 Mon Sep 17 00:00:00 2001 From: Gliniak Date: Wed, 16 Sep 2020 20:31:53 +0200 Subject: [PATCH 07/16] [Memory] Removed redundant BaseHeap::IsGuestPhysicalHeap --- src/xenia/kernel/xfile.cc | 8 ++++---- src/xenia/memory.cc | 6 +++--- src/xenia/memory.h | 4 ---- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/xenia/kernel/xfile.cc b/src/xenia/kernel/xfile.cc index 15529fc6d..c60a6615c 100644 --- a/src/xenia/kernel/xfile.cc +++ b/src/xenia/kernel/xfile.cc @@ -122,14 +122,14 @@ X_STATUS XFile::Read(uint32_t buffer_guest_address, uint32_t buffer_length, const xe::BaseHeap* buffer_end_heap = memory()->LookupHeap(buffer_guest_high_address); if (!buffer_start_heap || !buffer_end_heap || - buffer_start_heap->IsGuestPhysicalHeap() != - buffer_end_heap->IsGuestPhysicalHeap() || - (buffer_start_heap->IsGuestPhysicalHeap() && + (buffer_start_heap->heap_type() == HeapType::kGuestPhysical) != + (buffer_end_heap->heap_type() == HeapType::kGuestPhysical) || + (buffer_start_heap->heap_type() == HeapType::kGuestPhysical && buffer_start_heap != buffer_end_heap)) { result = X_STATUS_ACCESS_VIOLATION; } else { xe::PhysicalHeap* buffer_physical_heap = - buffer_start_heap->IsGuestPhysicalHeap() + buffer_start_heap->heap_type() == HeapType::kGuestPhysical ? static_cast(buffer_start_heap) : nullptr; if (buffer_physical_heap && diff --git a/src/xenia/memory.cc b/src/xenia/memory.cc index b6ceb54b4..c6e55c98b 100644 --- a/src/xenia/memory.cc +++ b/src/xenia/memory.cc @@ -375,7 +375,7 @@ uint32_t Memory::HostToGuestVirtualThunk(const void* context, uint32_t Memory::GetPhysicalAddress(uint32_t address) const { const BaseHeap* heap = LookupHeap(address); - if (!heap || !heap->IsGuestPhysicalHeap()) { + if (!heap || heap->heap_type() != HeapType::kGuestPhysical) { return UINT32_MAX; } return static_cast(heap)->GetPhysicalAddress(address); @@ -451,7 +451,7 @@ bool Memory::AccessViolationCallback( } uint32_t virtual_address = HostToGuestVirtual(host_address); BaseHeap* heap = LookupHeap(virtual_address); - if (!heap->IsGuestPhysicalHeap()) { + if (heap->heap_type() != HeapType::kGuestPhysical) { return false; } @@ -477,7 +477,7 @@ bool Memory::TriggerPhysicalMemoryCallbacks( uint32_t virtual_address, uint32_t length, bool is_write, bool unwatch_exact_range, bool unprotect) { BaseHeap* heap = LookupHeap(virtual_address); - if (heap->IsGuestPhysicalHeap()) { + if (heap->heap_type() == HeapType::kGuestPhysical) { auto physical_heap = static_cast(heap); return physical_heap->TriggerCallbacks(std::move(global_lock_locked_once), virtual_address, length, is_write, diff --git a/src/xenia/memory.h b/src/xenia/memory.h index d5e7ea4da..5a0f6084d 100644 --- a/src/xenia/memory.h +++ b/src/xenia/memory.h @@ -187,9 +187,6 @@ class BaseHeap { xe::memory::PageAccess QueryRangeAccess(uint32_t low_address, uint32_t high_address); - // Whether the heap is a guest virtual memory mapping of the physical memory. - virtual bool IsGuestPhysicalHeap() const { return false; } - bool Save(ByteStream* stream); bool Restore(ByteStream* stream); @@ -264,7 +261,6 @@ class PhysicalHeap : public BaseHeap { uint32_t virtual_address, uint32_t length, bool is_write, bool unwatch_exact_range, bool unprotect = true); - bool IsGuestPhysicalHeap() const override { return true; } uint32_t GetPhysicalAddress(uint32_t address) const; protected: From bdeae25353966a64f7a28698ba79b5441e036650 Mon Sep 17 00:00:00 2001 From: gibbed Date: Sun, 22 Nov 2020 15:46:56 -0600 Subject: [PATCH 08/16] [Kernel] Add comment about Shadowrun bug. [Kernel] Add comment about Shadowrun thread name bug and a bonus lint fix. --- src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc index 85a27b1c2..a3e92c55f 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc @@ -47,10 +47,13 @@ void HandleSetThreadName(pointer_t record) { return; } + // Shadowrun (and its demo) has a bug where it ends up passing freed memory + // for the name, so at the point of SetThreadName it's filled with junk. + // TODO(gibbed): cvar for thread name encoding for conversion, some games use // SJIS and there's no way to automatically know this. - auto name = - std::string(kernel_memory()->TranslateVirtual(thread_info->name_ptr)); + auto name = std::string( + kernel_memory()->TranslateVirtual(thread_info->name_ptr)); std::replace_if( name.begin(), name.end(), [](auto c) { return c < 32 || c > 127; }, '?'); From 164aa8e8ca68429a74877c316bd678c52d35b4d6 Mon Sep 17 00:00:00 2001 From: gibbed Date: Sun, 22 Nov 2020 20:21:05 -0600 Subject: [PATCH 09/16] [Kernel] Scope object type enum. --- src/xenia/debug/ui/debug_window.cc | 2 +- src/xenia/emulator.cc | 4 +-- src/xenia/kernel/kernel_state.cc | 6 ++-- src/xenia/kernel/util/object_table.h | 4 +-- src/xenia/kernel/xboxkrnl/xboxkrnl_io.cc | 4 +-- src/xenia/kernel/xboxkrnl/xboxkrnl_ob.cc | 19 ++++++------ .../kernel/xboxkrnl/xboxkrnl_threading.cc | 8 ++--- src/xenia/kernel/xenumerator.cc | 2 +- src/xenia/kernel/xenumerator.h | 2 +- src/xenia/kernel/xevent.cc | 3 +- src/xenia/kernel/xevent.h | 2 +- src/xenia/kernel/xfile.cc | 6 ++-- src/xenia/kernel/xfile.h | 2 +- src/xenia/kernel/xiocompletion.cc | 2 +- src/xenia/kernel/xiocompletion.h | 2 +- src/xenia/kernel/xmodule.cc | 2 +- src/xenia/kernel/xmodule.h | 2 +- src/xenia/kernel/xmutant.cc | 5 ++-- src/xenia/kernel/xmutant.h | 2 +- src/xenia/kernel/xnotifylistener.cc | 2 +- src/xenia/kernel/xnotifylistener.h | 2 +- src/xenia/kernel/xobject.cc | 28 ++++++++--------- src/xenia/kernel/xobject.h | 30 +++++++++---------- src/xenia/kernel/xsemaphore.cc | 2 +- src/xenia/kernel/xsemaphore.h | 2 +- src/xenia/kernel/xsocket.cc | 5 ++-- src/xenia/kernel/xsocket.h | 2 +- src/xenia/kernel/xsymboliclink.cc | 4 +-- src/xenia/kernel/xsymboliclink.h | 2 +- src/xenia/kernel/xthread.cc | 4 +-- src/xenia/kernel/xthread.h | 2 +- src/xenia/kernel/xtimer.cc | 3 +- src/xenia/kernel/xtimer.h | 2 +- 33 files changed, 87 insertions(+), 82 deletions(-) diff --git a/src/xenia/debug/ui/debug_window.cc b/src/xenia/debug/ui/debug_window.cc index 590a66062..967646f9c 100644 --- a/src/xenia/debug/ui/debug_window.cc +++ b/src/xenia/debug/ui/debug_window.cc @@ -1454,7 +1454,7 @@ void DebugWindow::UpdateCache() { // Fetch module listing. // We hold refs so that none are unloaded. cache_.modules = - object_table->GetObjectsByType(XObject::Type::kTypeModule); + object_table->GetObjectsByType(XObject::Type::Module); cache_.thread_debug_infos = processor_->QueryThreadDebugInfos(); diff --git a/src/xenia/emulator.cc b/src/xenia/emulator.cc index 2d3d1033e..7f62efc7c 100644 --- a/src/xenia/emulator.cc +++ b/src/xenia/emulator.cc @@ -358,7 +358,7 @@ void Emulator::Pause() { auto lock = global_critical_region::AcquireDirect(); auto threads = kernel_state()->object_table()->GetObjectsByType( - kernel::XObject::kTypeThread); + kernel::XObject::Type::Thread); auto current_thread = kernel::XThread::IsInThread() ? kernel::XThread::GetCurrentThread() : nullptr; @@ -388,7 +388,7 @@ void Emulator::Resume() { auto threads = kernel_state()->object_table()->GetObjectsByType( - kernel::XObject::kTypeThread); + kernel::XObject::Type::Thread); for (auto thread : threads) { if (!thread->can_debugger_suspend()) { // Don't pause host threads. diff --git a/src/xenia/kernel/kernel_state.cc b/src/xenia/kernel/kernel_state.cc index 8884d8efa..3d7df1824 100644 --- a/src/xenia/kernel/kernel_state.cc +++ b/src/xenia/kernel/kernel_state.cc @@ -763,13 +763,13 @@ bool KernelState::Save(ByteStream* stream) { for (auto object : objects) { auto prev_offset = stream->offset(); - if (object->is_host_object() || object->type() == XObject::kTypeThread) { + if (object->is_host_object() || object->type() == XObject::Type::Thread) { // Don't save host objects or save XThreads again num_objects--; continue; } - stream->Write(object->type()); + stream->Write(static_cast(object->type())); if (!object->Save(stream)) { XELOGD("Did not save object of type {}", object->type()); assert_always(); @@ -804,7 +804,7 @@ bool KernelState::Restore(ByteStream* stream) { uint32_t num_threads = stream->Read(); XELOGD("Loading {} threads...", num_threads); for (uint32_t i = 0; i < num_threads; i++) { - auto thread = XObject::Restore(this, XObject::kTypeThread, stream); + auto thread = XObject::Restore(this, XObject::Type::Thread, stream); if (!thread) { // Can't continue the restore or we risk misalignment. assert_always(); diff --git a/src/xenia/kernel/util/object_table.h b/src/xenia/kernel/util/object_table.h index 93c98111c..93306d942 100644 --- a/src/xenia/kernel/util/object_table.h +++ b/src/xenia/kernel/util/object_table.h @@ -51,7 +51,7 @@ class ObjectTable { object_ref LookupObject(X_HANDLE handle) { auto object = LookupObject(handle, false); if (object) { - assert_true(object->type() == T::kType); + assert_true(object->type() == T::kObjectType); } auto result = object_ref(reinterpret_cast(object)); return result; @@ -72,7 +72,7 @@ class ObjectTable { std::vector> GetObjectsByType() { std::vector> results; GetObjectsByType( - T::kType, + T::kObjectType, reinterpret_cast>*>(&results)); return results; } diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_io.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_io.cc index 814120140..6b0b6783b 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_io.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_io.cc @@ -131,7 +131,7 @@ dword_result_t NtCreateFile(lpdword_t handle_out, dword_t desired_access, auto root_file = kernel_state()->object_table()->LookupObject( object_attrs->root_directory); assert_not_null(root_file); - assert_true(root_file->type() == XObject::Type::kTypeFile); + assert_true(root_file->type() == XObject::Type::File); root_entry = root_file->entry(); } @@ -399,7 +399,7 @@ dword_result_t NtQueryFullAttributesFile( root_file = kernel_state()->object_table()->LookupObject( obj_attribs->root_directory); assert_not_null(root_file); - assert_true(root_file->type() == XObject::Type::kTypeFile); + assert_true(root_file->type() == XObject::Type::File); assert_always(); } diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_ob.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_ob.cc index dc4c67dc2..68564a055 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_ob.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_ob.cc @@ -78,22 +78,21 @@ DECLARE_XBOXKRNL_EXPORT1(ObLookupThreadByThreadId, kNone, kImplemented); dword_result_t ObReferenceObjectByHandle(dword_t handle, dword_t object_type_ptr, lpdword_t out_object_ptr) { - const static std::unordered_map obj_type_match = { - {XObject::kTypeEvent, 0xD00EBEEF}, - {XObject::kTypeSemaphore, 0xD017BEEF}, - {XObject::kTypeThread, 0xD01BBEEF}}; - + // These values come from how Xenia handles uninitialized kernel data exports. + // D###BEEF where ### is the ordinal. + const static std::unordered_map object_types = { + {XObject::Type::Event, 0xD00EBEEF}, + {XObject::Type::Semaphore, 0xD017BEEF}, + {XObject::Type::Thread, 0xD01BBEEF}}; auto object = kernel_state()->object_table()->LookupObject(handle); - if (!object) { return X_STATUS_INVALID_HANDLE; } uint32_t native_ptr = object->guest_object(); - auto obj_type = obj_type_match.find(object->type()); - - if (obj_type != obj_type_match.end()) { - if (object_type_ptr && object_type_ptr != obj_type->second) { + auto object_type = object_types.find(object->type()); + if (object_type != object_types.end()) { + if (object_type_ptr && object_type_ptr != object_type->second) { return X_STATUS_OBJECT_TYPE_MISMATCH; } } else { diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc index 1f0cd2cc2..bf399937e 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc @@ -432,7 +432,7 @@ dword_result_t NtCreateEvent(lpdword_t handle_ptr, auto existing_object = LookupNamedObject(kernel_state(), obj_attributes_ptr); if (existing_object) { - if (existing_object->type() == XObject::kTypeEvent) { + if (existing_object->type() == XObject::Type::Event) { if (handle_ptr) { existing_object->RetainHandle(); *handle_ptr = existing_object->handle(); @@ -559,7 +559,7 @@ dword_result_t NtCreateSemaphore(lpdword_t handle_ptr, auto existing_object = LookupNamedObject(kernel_state(), obj_attributes_ptr); if (existing_object) { - if (existing_object->type() == XObject::kTypeSemaphore) { + if (existing_object->type() == XObject::Type::Semaphore) { if (handle_ptr) { existing_object->RetainHandle(); *handle_ptr = existing_object->handle(); @@ -613,7 +613,7 @@ dword_result_t NtCreateMutant(lpdword_t handle_out, auto existing_object = LookupNamedObject( kernel_state(), obj_attributes.guest_address()); if (existing_object) { - if (existing_object->type() == XObject::kTypeMutant) { + if (existing_object->type() == XObject::Type::Mutant) { if (handle_out) { existing_object->RetainHandle(); *handle_out = existing_object->handle(); @@ -674,7 +674,7 @@ dword_result_t NtCreateTimer(lpdword_t handle_ptr, lpvoid_t obj_attributes_ptr, auto existing_object = LookupNamedObject(kernel_state(), obj_attributes_ptr); if (existing_object) { - if (existing_object->type() == XObject::kTypeTimer) { + if (existing_object->type() == XObject::Type::Timer) { if (handle_ptr) { existing_object->RetainHandle(); *handle_ptr = existing_object->handle(); diff --git a/src/xenia/kernel/xenumerator.cc b/src/xenia/kernel/xenumerator.cc index 03f324dc1..5de0a3d12 100644 --- a/src/xenia/kernel/xenumerator.cc +++ b/src/xenia/kernel/xenumerator.cc @@ -14,7 +14,7 @@ namespace kernel { XEnumerator::XEnumerator(KernelState* kernel_state, size_t items_per_enumerate, size_t item_size) - : XObject(kernel_state, kType), + : XObject(kernel_state, kObjectType), items_per_enumerate_(items_per_enumerate), item_size_(item_size) {} diff --git a/src/xenia/kernel/xenumerator.h b/src/xenia/kernel/xenumerator.h index e52048dd8..189453813 100644 --- a/src/xenia/kernel/xenumerator.h +++ b/src/xenia/kernel/xenumerator.h @@ -21,7 +21,7 @@ namespace kernel { class XEnumerator : public XObject { public: - static const Type kType = kTypeEnumerator; + static const XObject::Type kObjectType = XObject::Type::Enumerator; XEnumerator(KernelState* kernel_state, size_t items_per_enumerate, size_t item_size); diff --git a/src/xenia/kernel/xevent.cc b/src/xenia/kernel/xevent.cc index 04efadfee..f46fdb5fb 100644 --- a/src/xenia/kernel/xevent.cc +++ b/src/xenia/kernel/xevent.cc @@ -15,7 +15,8 @@ namespace xe { namespace kernel { -XEvent::XEvent(KernelState* kernel_state) : XObject(kernel_state, kType) {} +XEvent::XEvent(KernelState* kernel_state) + : XObject(kernel_state, kObjectType) {} XEvent::~XEvent() = default; diff --git a/src/xenia/kernel/xevent.h b/src/xenia/kernel/xevent.h index 95ea8613f..b5f4accf5 100644 --- a/src/xenia/kernel/xevent.h +++ b/src/xenia/kernel/xevent.h @@ -25,7 +25,7 @@ static_assert_size(X_KEVENT, 0x10); class XEvent : public XObject { public: - static const Type kType = kTypeEvent; + static const XObject::Type kObjectType = XObject::Type::Event; explicit XEvent(KernelState* kernel_state); ~XEvent() override; diff --git a/src/xenia/kernel/xfile.cc b/src/xenia/kernel/xfile.cc index c60a6615c..ee749b9e7 100644 --- a/src/xenia/kernel/xfile.cc +++ b/src/xenia/kernel/xfile.cc @@ -22,11 +22,13 @@ namespace xe { namespace kernel { XFile::XFile(KernelState* kernel_state, vfs::File* file, bool synchronous) - : XObject(kernel_state, kType), file_(file), is_synchronous_(synchronous) { + : XObject(kernel_state, kObjectType), + file_(file), + is_synchronous_(synchronous) { async_event_ = threading::Event::CreateAutoResetEvent(false); } -XFile::XFile() : XObject(kType) { +XFile::XFile() : XObject(kObjectType) { async_event_ = threading::Event::CreateAutoResetEvent(false); } diff --git a/src/xenia/kernel/xfile.h b/src/xenia/kernel/xfile.h index d7e668ce7..b432b69d5 100644 --- a/src/xenia/kernel/xfile.h +++ b/src/xenia/kernel/xfile.h @@ -75,7 +75,7 @@ class X_FILE_DIRECTORY_INFORMATION { class XFile : public XObject { public: - static const Type kType = kTypeFile; + static const XObject::Type kObjectType = XObject::Type::File; XFile(KernelState* kernel_state, vfs::File* file, bool synchronous); ~XFile() override; diff --git a/src/xenia/kernel/xiocompletion.cc b/src/xenia/kernel/xiocompletion.cc index 829163b43..638a0a3ef 100644 --- a/src/xenia/kernel/xiocompletion.cc +++ b/src/xenia/kernel/xiocompletion.cc @@ -13,7 +13,7 @@ namespace xe { namespace kernel { XIOCompletion::XIOCompletion(KernelState* kernel_state) - : XObject(kernel_state, kType) { + : XObject(kernel_state, kObjectType) { notification_semaphore_ = threading::Semaphore::Create(0, kMaxNotifications); } diff --git a/src/xenia/kernel/xiocompletion.h b/src/xenia/kernel/xiocompletion.h index f974ee4ee..a7d34889d 100644 --- a/src/xenia/kernel/xiocompletion.h +++ b/src/xenia/kernel/xiocompletion.h @@ -21,7 +21,7 @@ namespace kernel { class XIOCompletion : public XObject { public: - static const Type kType = kTypeIOCompletion; + static const XObject::Type kObjectType = XObject::Type::IOCompletion; explicit XIOCompletion(KernelState* kernel_state); ~XIOCompletion() override; diff --git a/src/xenia/kernel/xmodule.cc b/src/xenia/kernel/xmodule.cc index 26191c193..06510cfee 100644 --- a/src/xenia/kernel/xmodule.cc +++ b/src/xenia/kernel/xmodule.cc @@ -19,7 +19,7 @@ namespace xe { namespace kernel { XModule::XModule(KernelState* kernel_state, ModuleType module_type) - : XObject(kernel_state, kType), + : XObject(kernel_state, kObjectType), module_type_(module_type), processor_module_(nullptr), hmodule_ptr_(0) { diff --git a/src/xenia/kernel/xmodule.h b/src/xenia/kernel/xmodule.h index 2fbd6b9d5..8b558681a 100644 --- a/src/xenia/kernel/xmodule.h +++ b/src/xenia/kernel/xmodule.h @@ -57,7 +57,7 @@ class XModule : public XObject { kUserModule = 1, }; - static const Type kType = kTypeModule; + static const XObject::Type kObjectType = XObject::Type::Module; XModule(KernelState* kernel_state, ModuleType module_type); virtual ~XModule(); diff --git a/src/xenia/kernel/xmutant.cc b/src/xenia/kernel/xmutant.cc index a64c8d76f..4328fc342 100644 --- a/src/xenia/kernel/xmutant.cc +++ b/src/xenia/kernel/xmutant.cc @@ -17,9 +17,10 @@ namespace xe { namespace kernel { -XMutant::XMutant() : XObject(kType) {} +XMutant::XMutant(KernelState* kernel_state) + : XObject(kernel_state, kObjectType) {} -XMutant::XMutant(KernelState* kernel_state) : XObject(kernel_state, kType) {} +XMutant::XMutant() : XObject(kObjectType) {} XMutant::~XMutant() = default; diff --git a/src/xenia/kernel/xmutant.h b/src/xenia/kernel/xmutant.h index e3b9cad22..5dddf905b 100644 --- a/src/xenia/kernel/xmutant.h +++ b/src/xenia/kernel/xmutant.h @@ -20,7 +20,7 @@ class XThread; class XMutant : public XObject { public: - static const Type kType = kTypeMutant; + static const XObject::Type kObjectType = XObject::Type::Mutant; explicit XMutant(KernelState* kernel_state); ~XMutant() override; diff --git a/src/xenia/kernel/xnotifylistener.cc b/src/xenia/kernel/xnotifylistener.cc index 0770bd2d8..be920f157 100644 --- a/src/xenia/kernel/xnotifylistener.cc +++ b/src/xenia/kernel/xnotifylistener.cc @@ -16,7 +16,7 @@ namespace xe { namespace kernel { XNotifyListener::XNotifyListener(KernelState* kernel_state) - : XObject(kernel_state, kType) {} + : XObject(kernel_state, kObjectType) {} XNotifyListener::~XNotifyListener() {} diff --git a/src/xenia/kernel/xnotifylistener.h b/src/xenia/kernel/xnotifylistener.h index 800fa047d..38c19b63b 100644 --- a/src/xenia/kernel/xnotifylistener.h +++ b/src/xenia/kernel/xnotifylistener.h @@ -23,7 +23,7 @@ namespace kernel { class XNotifyListener : public XObject { public: - static const Type kType = kTypeNotifyListener; + static const XObject::Type kObjectType = XObject::Type::NotifyListener; explicit XNotifyListener(KernelState* kernel_state); ~XNotifyListener() override; diff --git a/src/xenia/kernel/xobject.cc b/src/xenia/kernel/xobject.cc index 2b90b88f1..3675a1bce 100644 --- a/src/xenia/kernel/xobject.cc +++ b/src/xenia/kernel/xobject.cc @@ -129,33 +129,33 @@ bool XObject::RestoreObject(ByteStream* stream) { object_ref XObject::Restore(KernelState* kernel_state, Type type, ByteStream* stream) { switch (type) { - case kTypeEnumerator: + case Type::Enumerator: break; - case kTypeEvent: + case Type::Event: return XEvent::Restore(kernel_state, stream); - case kTypeFile: + case Type::File: return XFile::Restore(kernel_state, stream); - case kTypeIOCompletion: + case Type::IOCompletion: break; - case kTypeModule: + case Type::Module: return XModule::Restore(kernel_state, stream); - case kTypeMutant: + case Type::Mutant: return XMutant::Restore(kernel_state, stream); - case kTypeNotifyListener: + case Type::NotifyListener: return XNotifyListener::Restore(kernel_state, stream); - case kTypeSemaphore: + case Type::Semaphore: return XSemaphore::Restore(kernel_state, stream); - case kTypeSession: + case Type::Session: break; - case kTypeSocket: + case Type::Socket: break; - case kTypeSymbolicLink: + case Type::SymbolicLink: return XSymbolicLink::Restore(kernel_state, stream); - case kTypeThread: + case Type::Thread: return XThread::Restore(kernel_state, stream); - case kTypeTimer: + case Type::Timer: break; - case kTypeUndefined: + case Type::Undefined: break; } diff --git a/src/xenia/kernel/xobject.h b/src/xenia/kernel/xobject.h index af07a790b..163b6afe4 100644 --- a/src/xenia/kernel/xobject.h +++ b/src/xenia/kernel/xobject.h @@ -116,21 +116,21 @@ class XObject { // one with 0x8A... which causes crash static constexpr uint32_t kHandleBase = 0xF8000000; - enum Type { - kTypeUndefined, - kTypeEnumerator, - kTypeEvent, - kTypeFile, - kTypeIOCompletion, - kTypeModule, - kTypeMutant, - kTypeNotifyListener, - kTypeSemaphore, - kTypeSession, - kTypeSocket, - kTypeSymbolicLink, - kTypeThread, - kTypeTimer, + enum class Type : uint32_t { + Undefined, + Enumerator, + Event, + File, + IOCompletion, + Module, + Mutant, + NotifyListener, + Semaphore, + Session, + Socket, + SymbolicLink, + Thread, + Timer, }; XObject(Type type); diff --git a/src/xenia/kernel/xsemaphore.cc b/src/xenia/kernel/xsemaphore.cc index 74bf3e7e6..a582fe6d6 100644 --- a/src/xenia/kernel/xsemaphore.cc +++ b/src/xenia/kernel/xsemaphore.cc @@ -16,7 +16,7 @@ namespace xe { namespace kernel { XSemaphore::XSemaphore(KernelState* kernel_state) - : XObject(kernel_state, kTypeSemaphore) {} + : XObject(kernel_state, kObjectType) {} XSemaphore::~XSemaphore() = default; diff --git a/src/xenia/kernel/xsemaphore.h b/src/xenia/kernel/xsemaphore.h index 42ae7ee26..b9e78a0b1 100644 --- a/src/xenia/kernel/xsemaphore.h +++ b/src/xenia/kernel/xsemaphore.h @@ -25,7 +25,7 @@ static_assert_size(X_KSEMAPHORE, 0x14); class XSemaphore : public XObject { public: - static const Type kType = kTypeSemaphore; + static const XObject::Type kObjectType = XObject::Type::Semaphore; explicit XSemaphore(KernelState* kernel_state); ~XSemaphore() override; diff --git a/src/xenia/kernel/xsocket.cc b/src/xenia/kernel/xsocket.cc index ad35ff69a..ea15734e7 100644 --- a/src/xenia/kernel/xsocket.cc +++ b/src/xenia/kernel/xsocket.cc @@ -31,10 +31,11 @@ namespace xe { namespace kernel { -XSocket::XSocket(KernelState* kernel_state) : XObject(kernel_state, kType) {} +XSocket::XSocket(KernelState* kernel_state) + : XObject(kernel_state, kObjectType) {} XSocket::XSocket(KernelState* kernel_state, uint64_t native_handle) - : XObject(kernel_state, kType), native_handle_(native_handle) {} + : XObject(kernel_state, kObjectType), native_handle_(native_handle) {} XSocket::~XSocket() { Close(); } diff --git a/src/xenia/kernel/xsocket.h b/src/xenia/kernel/xsocket.h index 3c85a6c89..8c5103ec9 100644 --- a/src/xenia/kernel/xsocket.h +++ b/src/xenia/kernel/xsocket.h @@ -66,7 +66,7 @@ struct N_XSOCKADDR_IN { class XSocket : public XObject { public: - static const Type kType = kTypeSocket; + static const XObject::Type kObjectType = XObject::Type::Socket; enum AddressFamily { AF_INET = 2, diff --git a/src/xenia/kernel/xsymboliclink.cc b/src/xenia/kernel/xsymboliclink.cc index 557a4a3c1..0d0a2ad43 100644 --- a/src/xenia/kernel/xsymboliclink.cc +++ b/src/xenia/kernel/xsymboliclink.cc @@ -16,9 +16,9 @@ namespace xe { namespace kernel { XSymbolicLink::XSymbolicLink(KernelState* kernel_state) - : XObject(kernel_state, kType), path_(), target_() {} + : XObject(kernel_state, kObjectType), path_(), target_() {} -XSymbolicLink::XSymbolicLink() : XObject(kType), path_(), target_() {} +XSymbolicLink::XSymbolicLink() : XObject(kObjectType), path_(), target_() {} XSymbolicLink::~XSymbolicLink() {} diff --git a/src/xenia/kernel/xsymboliclink.h b/src/xenia/kernel/xsymboliclink.h index 2d37dfd72..12e339250 100644 --- a/src/xenia/kernel/xsymboliclink.h +++ b/src/xenia/kernel/xsymboliclink.h @@ -23,7 +23,7 @@ namespace kernel { class XSymbolicLink : public XObject { public: - static const Type kType = kTypeSymbolicLink; + static const XObject::Type kObjectType = XObject::Type::SymbolicLink; explicit XSymbolicLink(KernelState* kernel_state); ~XSymbolicLink() override; diff --git a/src/xenia/kernel/xthread.cc b/src/xenia/kernel/xthread.cc index 34a95dd7c..baa014b01 100644 --- a/src/xenia/kernel/xthread.cc +++ b/src/xenia/kernel/xthread.cc @@ -48,13 +48,13 @@ using xe::cpu::ppc::PPCOpcode; uint32_t next_xthread_id_ = 0; XThread::XThread(KernelState* kernel_state) - : XObject(kernel_state, kType), guest_thread_(true) {} + : XObject(kernel_state, kObjectType), guest_thread_(true) {} XThread::XThread(KernelState* kernel_state, uint32_t stack_size, uint32_t xapi_thread_startup, uint32_t start_address, uint32_t start_context, uint32_t creation_flags, bool guest_thread, bool main_thread) - : XObject(kernel_state, kType), + : XObject(kernel_state, kObjectType), thread_id_(++next_xthread_id_), guest_thread_(guest_thread), main_thread_(main_thread), diff --git a/src/xenia/kernel/xthread.h b/src/xenia/kernel/xthread.h index 7ab55c686..ec0fe41ef 100644 --- a/src/xenia/kernel/xthread.h +++ b/src/xenia/kernel/xthread.h @@ -106,7 +106,7 @@ static_assert_size(X_KTHREAD, 0xAB0); class XThread : public XObject, public cpu::Thread { public: - static const Type kType = kTypeThread; + static const XObject::Type kObjectType = XObject::Type::Thread; struct CreationParams { uint32_t stack_size; diff --git a/src/xenia/kernel/xtimer.cc b/src/xenia/kernel/xtimer.cc index df8bda2e2..fe66a73b7 100644 --- a/src/xenia/kernel/xtimer.cc +++ b/src/xenia/kernel/xtimer.cc @@ -17,7 +17,8 @@ namespace xe { namespace kernel { -XTimer::XTimer(KernelState* kernel_state) : XObject(kernel_state, kType) {} +XTimer::XTimer(KernelState* kernel_state) + : XObject(kernel_state, kObjectType) {} XTimer::~XTimer() = default; diff --git a/src/xenia/kernel/xtimer.h b/src/xenia/kernel/xtimer.h index 15ec47cca..0a3dee618 100644 --- a/src/xenia/kernel/xtimer.h +++ b/src/xenia/kernel/xtimer.h @@ -21,7 +21,7 @@ class XThread; class XTimer : public XObject { public: - static const Type kType = kTypeTimer; + static const XObject::Type kObjectType = XObject::Type::Timer; explicit XTimer(KernelState* kernel_state); ~XTimer() override; From a4170621a7f22bea8e6fd29e5144a962d4e3b75c Mon Sep 17 00:00:00 2001 From: gibbed Date: Mon, 23 Nov 2020 17:06:25 -0600 Subject: [PATCH 10/16] Update premake-core. --- third_party/premake-core | 2 +- tools/build/bin/premake5.exe | Bin 1384960 -> 1395200 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/premake-core b/third_party/premake-core index 11aff7aea..df6096721 160000 --- a/third_party/premake-core +++ b/third_party/premake-core @@ -1 +1 @@ -Subproject commit 11aff7aeacc8315e85a659bc1e803c1064adc6b3 +Subproject commit df609672110ac07ff7ea6597911575c4365c2928 diff --git a/tools/build/bin/premake5.exe b/tools/build/bin/premake5.exe index 7db2d08b7052fdc95999b8d492454c2091760938..2a01f91d769c894088dcc4849ab7568a98b9936f 100644 GIT binary patch delta 319288 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�UOP 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 l!EoU1t3Xpk8ko0M6 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

0&>Ud6!KW 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�ZIjm?7Da97r{!7E%vsfHXrqf0Y$^6ISxCR0fRq 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

V+_q8>d^{UnZG|%YBv*T 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%0AuHPieKC(^>%8E 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

wDNm%Safi=)p#1E5^ozsH}Qg%&(C3lCA0CZ z9QKIjvo*YZF3YhtvpPa(mk_xrwVHS}_T|vq0I78Gil*7FMUj~8nta?a^z#1&525p9 zcGi3)~0M$qud>EH)JCBc{h z=dCceWE8EI;v^g|xCox7eM1moL=)B7C?4wMtA`^zkoF__TDAb&Z zik&Oe;y0!43i#3NlPyl+t0MJ^8f~kD5$Dt^DjLu7<~-AUvc<>Ye9e6<#(GA402R8X z9+p7z0gtpx(h$l8j0)bfB18O$knKT1;zlQIP^9ve8nj`GC@U z>9G(%%IT3;6HoXpNjTds-6m7xNVQ5)rwH-F6X;uvO1zF=MVt*i-tK>42=cuI_cICxb0L@mFo`a?Dj%t~N)DE>ARe#aRYS zTqSxVTct`e_F@qPZ5tA@${jylyxy80n#S(Y7h0hjf)yq)_$(_A%41#QA4LnmXY|T7 z(rZzXEMD_3n)k@Z;jxxE0{?i-OB|nT<8^s#iRQ~^`6JWWn84_!l+7#o!Rf3|;Du%0 z@wk5_cTZ>0F`rUQCl_p|ggDb0fi*2@BVKFD6}yt(JA-u%T+|d(Tf`U6U{Nuno8ZEl z;0841f|Ja5XRrbwN%1pTr1dG>s#p_uip|vH0L5iOLT|4P?lAsNYRA)q# zCPUt4dl_9qL`l-7(+CnZgqFvNmJ&@0&JW&)OFK9SBWwx73DZV&#zs|Ud~2bc%3NDZ zzIqnBhd0b*8U08CqHs2YDbRaF)TbC}lKxGgLM8?_7czT^w~(K$+&YUr)$(?@X<(_} z&$`4?+@NW!o8H+9$Bn}hcdbH|?5DCov{KUZ#I8vG;Qg#xGk889^#Dtb?Fd{ETQJ~& zc?C#Tv@P|Bi9JBuvL4ec`k47!4*;QSY37F?VBwJmfp>V5%^z3zXo?}Vjn*gJ%*n)uJdymk%?3Dqjf zXe3mq>~bw6O5phaf=Q=5hY?L+rl9A0Cyv9Ox+cOlR@oP}TfM zC;u}TR_t@TmMlStok}))qWJVt9+S^ro7p^@Qm4fz4nKljEom9JA=4B-}txXe8UUq>Y0!dseHFFEQEcwH9)ur z34&J}21t4M3`N9!$W9pj!A;#STNo$vF>_f|)W(M}IFNyt*b0aosx;U84!V5Kh#r%9 z@m$tL)A>2RV=n73Drg=p%RuA-;~@n{G0VouACM`&d<5vFqaIt_t$z;&5i&*2E0{uw z9-BiAjf-2wUvv5xq(|z?mb}$GoMn8jcaw%%__%rOUd{NqeBC_OC9rc-%2qS~d>-qo z5hniEJl4*77$O?5)esHj1ZdnNa0_OBn0(L@=7&`uiIqu0(H`6n*EnfyHrV}Oh`*n* z9BlQzz++aMs3XungVPKdq<*_#24E1rhyzM>+`JuAtc0PDjOZpXvZ(|7OyL}+0-v`) z*UQ9Tn$IEpOC4og+qb^YV5tg3zEtUyxoZa%qc@rNJkFd-XpD77Pkq{`> zHzkZp%8N615HBjJbWz2LMf3UjM_A99D(IIupkCVmixF93*&-|&`M84Y&q?vH^7)mN z`zaMu=~Ho93-83sXu(ZwyahS}IW~zG)1Y-g*Y!jA^g$?+W`{SUS+mK4Z8Bai&iZt9Z5)FCb_Ko#BFly-TBu*hRe- zu=XAUa_VmOX2VY1l^~zBfVGKigF+#G2YJ$XM+I%ni^Jv~@d%#r^$S>tx|F}RfJOgr z1)W1hn&6iF#sbz~ZpFR}JtBK!7P9ur-82q_bW*eUx0XdAB@oYEi~^?^P0tqhZs*S~ zWF6Y>L`1HK39|W7FOtMJ2l|C4L4f)a7C2t~b>gl5I3pyN8i@UaO(Q)DAg&BB{*o3m z$i`X%GsIzaBad9frgw$^SQRjNmc3sU405^{j=WGqP4f}A9>HCsYLWl;IuRUc@)&*gl`XwHSBd zxBd9x#jHz2;#MH`yGkM8LN|z2qu-@<-lxehiuPN1pqcg6$-P9q?l?F^JOJeYPwmz7 z=mqL}*dqlSB1Sc*9aPfBVSq?-M%|BpXl9EwFFnM&S=gwE(j6Z3!_wCK%Ik7J7MaMp zpRcvB_=v~$`E`%KWbr}0x#i9K}Sq;d838((=6Z0`z?VOMP5ICehGV6GxK>q zW+~!(oA`>QtV?%a6AVDZ+efb99BeSbB$A~*Tm1Dfrg+AE5-n7?U2i|kzh26ctl1CI zV#mV_@*BXRh;957&Tm}A*jd=G4e{rlKKBCG$b@`bQ^G(H=N*T|*SIVpYD#v7$$?%D zY5}(mKB^rfe86tIW*gxH+u{U>hZdzM)XSa9EjQb-o+sbvtMioc(K zzKpHvI~;=yo?1T8Igk(9;)@VK=MH?6Xc;<@0r9eu1^CVcn!R@cw>-wCYCgH2AA5`~ zY?Y60fmKG?=|En#fM-4q#(dI}bX9zr$;asQS!)#8D%nw2{PS;7wQU*-8P;x0HlS73V7^pzH3RdBnB@|H(RnZ`6Fo;NHAI#=A3Rtpr z8z@5%czH$nc~SWxa#54q9PKpFB_?*qkajLa6+~>a)i+vNSL)~!_$D~lJ24clp0@g1 zcSe6i(V;Mu0HYGASDOLAz>zl*|8zM}BXQC zZun-=VOlZMNrv=m%tw>(9gH)PeJ0_HY=qfA$;+)k%-ys2MJtQ7et>A&rm(UbAu6-I zhm+$uQ*eKVeXmR3R!f<3t(hW4f!c?0l3^_n`Si;O3f{kmX3p1&C+xbk>YxBbqr(UrEoIP+e?Zf`O!dnTnYXKeBnx#*?u%OHwJ%IBzCs#pwFlpY=3vsP^@EqZY68q`uw$9ba2c~y#OB# z)y~3YCwU7SR_M%=@I=Y_g}-&3y5*x30C%#^34tbG=lXdkd4Y{Zbn8sTmo^IlRJd+i za=}E|p=;~UPJF+Oy{y@>fX^&u(XHRwOohfN=lVV1OXTtY6oWsoQpVG3+ShSD(G6@H zVhLgz#?Ga2oX5NpNpd?nJ3~R$JQS8-!T{vsx^|Lx;S%L82z`bm;m|BcqZokG$U`91 z7oWy387lO}-{N;|vKlg3;$`HuCZ0};B0o@;CzA34&5=n_(y3R7*x5xY0T*vWez62O zT~i0;xuHvVx`t#VO+HYc{3jO|g>=*<2BO6nQ>83@@nguM6lIB(S-+H7rH83NZ&vym zq%WR;ywYQs!nY{C7vGN5+V~2*M#E4s{AlE2w87I@HZdvOJl5U6NL1a&d#z%f0^a?V zd^)9G6))b$r>Ca6HGuj?J+nF|s6EzO;{SpH^)!u<;11?s0ZOW% zISn%h0&kZ1KAT@(#o|&cu_YvRwWUx&1ptKZN>vZ+oGh_#D$P$zQDbZx`@`;R@j6A% zAnt`%{$=J={;{3)(X`Fs7ws(GS_67Aa5W!;=!v`-FxwD=%G}#M5J-W$zd`(&C1Zgm zM8oHoLk~*kC->oCZp84>bzcLV-7RXKYIdx#6DeQG;WOySJC`NUD2CG3lk=k7ci?e3 zq$jpEj%$*d+XJ{AZg_0KvxWQ#2TO{~tJy@H;?Q++TWuwKh@=2+>x>XjT!&K=n(SHY zAPbM*RqNP2^!xcb7O7o_3}@G|h>?m~Jn=eoVCWHLi1dpB^Q-9uE5vOmpRzbaog*!8A7yhkvLYS~@%nc&6O-pS_AIN7rr=Xf6fB#Y?2 zeI{lveH^61oZ}mScK&`pozV?gF3GIv7RVty=+P%xy0y70ivHG&bWF_{3*hI1FY%u~6j`~c{%teWe%BPH?r;@K)EKnlpFcR&Q$TQ+T zMA{AxNy+mHW&*UwhX31R!Q53Wv67ZWXddRP8 z(Fwnar*Tk^p!a`BCSUM0i|b*08D3sw`A4@A6CMJSCZ+IZc1Zq%o$`R7lw2rG;z zlTE!>C(%kw3pVItJTdE)m=J?5&J(jji3v04x_M&eDKU`-T~ANUR3#?HpiA(?q$@FT z23>zo%sooXAcHRb*!@cNaZ1z>gKnHBQ)?wA*`PCeVpK}ZNP}*&C+2d7Y;?Lom*a^! zqr{AZ(Kk=bml^!CXV^W|&zki zI=VT!kI|Irjb>wcHOhg-_+boh^(+ewFGUW|IE*x!+If@T9K(kp zIr8Z{3K-`d5)`m(3}5gp3khkYnWg#rM+P7!dT9dR^el^w>@>t+x#IX6&N$XG`1hzS zuCiQ#@!sVPp9de~-#^P9YtauN?!^V7#{{0sS)UBgy8L^*T)RF7U5F>9T8Uu>9rOE3bE@?mtZkCGENl=AjBdf*ZN zvy2Z3s4(})6nG7~GsRrAfmpE*;Fqq~@mE1!X~+P<$w{8IV(7g$*MA0w$2=c;WII>rnA{YW1CA`5$HuP1p2 zCFlDS9g5}(oA*_u&?x}e$+GC^Y_e;A36^|3FgY?>DH1g<^h8gi=zOiWD5PYM6~q5lVZEbC@NG$$RHIYf@N?f1$F6s`DR$`AVEl1TK;Ur z;bdQ%%HQ71I<@<76k+qpuDI;VRkU1@suC}a;ukivoWNy6y_iQ`8c%ADH79r#{9nAU5!c zkxff_2XD27we6JK95bwr_NRMEff(5wnKY7*-oj#fw?ovwPz)a#cN-OuVRR%*I z5bq$%&MdK%;%}q66D8E#w&*&|l^KHm$#`oQ(X=GPX%wol^1-jNRvL&FkAIc53y+j_ zdM&dm_Dv)-U;Zk45aaaAt8Cz4)#pG!%|{djR2;+!;0PiEug+!TN~GmuJiXuu+cFeq zTZaeHAVN;v17KvBPu>bDXFrPjpWeMLU`INn!pI3 z5>L+LA=}u%j=$8v-Wc*biiBeb?jZ9}r0mjVeUNTwa zS@_l0Sl_7Kc`_60I6bH4D~xMX7NgKxc*^T6MYHlKU-ddmfWeMkuft%+Z_{}F>(Ksd zW!{zi22-mu{=gGU=|Q9;EvHOqt{t^itBH>;*}yelqBjQu;iE($ik=zbrG6J(x{4Z` zRRGAkB@@%q_|w~2Y(%&FWXpW1`K~NyNubhn7{On}k8WqZ)d}3aoplQC<|$t(J!%N= z`zGt;yX+Hel?uN8Grvy!i8op6xOs@k5_=b7>gY*g$}f}=Z+jzhKVA0;fB#LE7IhIX zDCFo$%d=j)Tqk|Ik-^q1v1Jesd5gsiYZ`ExS)dI5Mia!To>2hXn*0$5<${+7$vX#g zpq0-b&-9)=#23E>gn#P-{_b0Bq~^v5_#YXXhdcMq|rsPbMpL2B# z7MxMQ);a+s6;;xqR@5lXu!os+`7|`RaE0xsrip|kWD7)Pi3^|bvK=hE$0GE_tGIFJ ztSQz9#9za)jZTW+hjX8ISl{+!P7WQ{b@WSiC3+`s@noTSgim~j^=W9w-o?9fX)+~r;t8)Y z9e?Rv)+*q`cbl_(_AVQ9hki0tKu!&lO*}q~N4|##mTDoN_#PxcFU;lh-(x+(l_u+p z|AWzKYOzslnag*+hYP(+CI9(7_5^{=*vUdQr%imxPG;8_OMH_tN$Z z(ki^fF-X>-{L%OSHAu5=tCBy=KYJgvuK5r13-4n^^ef}xA3$bg*(dxzAF%!!tklX6 z*vM8&i(%F$wZSzYLp;}qM}Ek{dU?j4JRb)k3DW?ZheVX6MJxwgzY7}crE?5xHhjWo zeF*)~`37F}A&aHXz5XE#$P9gmhkOK&lSjGnBi1goWH44nsS(C?L8pZC2e_+PG?*8B z#JaX<*a0!fbYnhN?>ir{^uP;mlQ{h)#9$q(KW3An$!;G=IiRj2LItoEN{5P!h@{V+ z+Q%1t%zCuiE$IyAGI*P`z_(Jv0{+g&EPB>6cuRr%JU!bq#c7kv7|CKeVzIRI)j$qp zcJI^?Vb7H8v=!o9G3IMzGQ2H#lX11XXC;>*l9yt6Edng}<_g&D3n@!ZmwAmL3_+7wu(zlCN~eZB7OzZLs`%Lij+eQy~VC zZD(Q{m%FaXq0SIbb|oETv*cSlQyC$;?|0=t?PbTTnhstt(CR$IcL+|QnG)791)@^N zA*b58<9n&;6$63$$50fN^R8WsE`!9+OGSdx=c1DE=X?F7-u^%X>hfO34E z>71%|lxI6uunJ8AGPhkD4P`^Cc9cu=VZxfQk62JZ=$*40RL*>1Ji!RNET2Au` z5Bpp8lEQj)AvMfivcZawvt%Cr8byyT7*H7|YobGJ&HB1^6kt0uVw zNi{ab%z%-KfC8VA(~EVcUOAwWRyv%rj*S}tPa3`U3>W|{`bnj#wFZ<~x;TzF%3<@{ zt+%T183ryC^5tJxor%R1X`AVznpBey0XfW-QH<(`3j?zkq?B1XToOY_fuVR33DHrY zr#BGk4Fn=U?0}1yNvrL(0_sPy9m1A*>})DKyKxO793QWv{yUD?ON#MZRukeVljhxF zMVZK|iN{B{{1Zz*Q-Q0Sc-pa#V5mU7N?UK=w+&xy{#GoPJAK0KCA$$JUc;))$T%Ar zC*G#9$`vDrq9KRu&P_q}{gHrhyu$8e!ku6JJF)5`93wSb387DFZ9vD)thrY8MBszu|Tpii0F%$vMQ@ z%6x3s8Qdza{07u|kn(F2k7IVrF6-hCDJ@3*AAf`zlkLv+_z`a!(B5^jmUP=|>ktJ; zz1#6~?WkQgO~0?qtlXx~kVN<&+qZ)T(Z2CT{I%U!Yza)-M?G2M^S;`p=~sm){pvr^ zS!jrs{7ReV#-c_3rbSZ~2*;Op=PMEt>X+-0?AS-Gar_NQmW|X8XUGR&Cp~1ive?I= zq3vZa*@+C!G`FFAvCfgw;L=zVOJilzY`^DNpQXYWKIo;iLwA`-?-?6i{w2 zc2dcsCwQv94#SrY*<;s6hwO)A-wr@H{oZ={?*wiKWSva=L)oV|e8(me4Gkd}?B`7;HBN=!;wP zV+XNC|3sGm-lC^yKX|sNXS3<|Rd}|S<4SzJQ?4re$8tQ5IDK|1v*)Na9A2z?~N zzLCbsOXYI3T$r8 z;sEkZt1M+-zWocZgXezAkAA^ItjB3{7RznY)KmzZDtPt(k4;5OqqU{~)zC<}tv>R$ zRDEYl*H^GE;Tv}2`uimsH?ZUIx7GII0koCi(Qgm`rh;|M!2AV-(fma^c%#c_G1M(*wmDjd$-60k_^@`;}4L!>3 z>*T@VR!Yfj0#@r+SJM1_Ovj3&l3J^@%loL9R zmAY6$c)*XVl5uiVNrp<#B_^lN!pW9|A8OMV?^f|4-@pJ%F%7!Bc9c@n41eiMbm+e_ z&&oVdYno5|7enOO?^L6giyZRMj+YBdS(^HiZ8U|-^2FGZf-F3=9kc_*FHzR4C689q zi=ZoDtJU60)W<8*k7A)t&f&7=)qiJ0YU z+vG~pR@#e|B_*r29ap6}ZW#WuRMXIB6Qo>-H0w67Pu%vsw=d6okm1@%+H>AZWF1C= z_T2E8yKXuV6|Mtw;bSXtuRi@@^WLL7{_cA(zx2+%r(dlg8=n2wzIlA;oWa1*_|(kz zZbOUQNt6Vx5$WPM=#2DpEBlaFf5pPBx3Bm_Zx*POqwfdsiLFT}gj*i2HLaTp#MUg7 zTa!}n+?q68{D*&^u=WaFIQT;MAem5r!VzfU{*e?^q3s zCtw#)E@dUS9^^BRvdETb?i+g9T-YfX$k!faefuFUUx{<<+dv(^=9wShGytzM7noWk z)+M^{a}-PT^x7}{Sa-iReeEC1me&#P<95qq*qow(Vni3WavboWz@8>_kxj6oy6>Se z0tCm==#(25i;u<@mYkvcl#3x~p)YwBop#F$)VWlx?C%OcR4JQ;y}K6aXcqCUs?acb zfM5HC#zqD)D#LL`9D(ih=GH+hGs|K1o)wGrcbpThA<%77&NJoo`uE}0Noll;3{3kg zcYC@k$R`2qTjQsED{n{paJ&zSY3NFqwNPGSOEua<(CJS%lr6Gq9A(-P8fWD_XsCq| z2AXd<26QZaF6Y~Ek`OtGdVQw)@_ECxpJnH0Nfomab*ZqN> z_~&Z>GJH(k)0fZ{3$tK_`^@+x%S`4V?;E}Vx^*Nf1vTp3TZqh^pR)^Wn817^{pj-3 z@q<^m!x=|Iks-FhJv%YkF}ALq`N@>&C$F;E6K#0A6Rcx=;UR)yV$U{DUUQqrbk6B+ zmlle0hMOyng1ADqr2Z*B#2+}pCeE0NV$5wyjw4qN};a}Yf=r=5HOG4U#;*BJ4lLCR>(W4MOB%@}E0&P)i-s(HnIhra_Or1$uj>6g@ zHV&kUz{%mCeFt5jDL?RY-?6r2PPpznmaG{OvTM-y%%QPnfO+wm3il8whkrrKl6%;7^R)*N6sU}>|T^gLXF`^l4xOSfM|_iL5o`{BpZeh0`gD!r`iXP>fa zEzF-*lnGsI86n3M)W()Mj^Nm{T~r4gAkS?-smm_v0?Gm^0#X|S$^$Bi48}K|Vx!_7 z1ar${84#jX%Y9&MJ4pX-UIUgv(NCqYq?aL9aqW+6J(1rw{>bL4zvSxEES??1;YfhI z|7q4piT%$=+lYB**r=G;me?F8iKh#%NSV+8HdL5{lk$QW_05E!*jw-OgJ;;hNDkRX z$^+G{A6?pXEd(AtaxA+y@o{I_sIXjyNtO~{P&;K}ql!eszfd*ux6iUD?HE5dKYW%A ziR;$_gdmRusCTM=_xBRTZI}9!R8jmnHoDzJm@<(|7Jha~2bFYT#RWHaoMYJ<%?^Iy z99yT38R4m;ZR4#cD%!?q{o6db=-uybEt` z{?Q+3&0okAl~3~-)mTCAJfyL^zf@{*11+LXgl3xNhH1(nja)A9TIsl}@Pb_S-77U;A6PyyE>FIV6P>i@(_hJ_C=yL-Zt-fc9w;FhqRa&;&RJfaKQN7veVD)a3wF}6*Z8?#*f8rym``ZakkSkjYw@9+ zCf&pfN&@N21d4_Da9BXkrIRKQ+Z@W}FM=f9tUL1`;LW$`&a9-*J0vi}n#r8f86B9w zLOd`5+$pS0lF3H{A%=$9KnxeJ#A4!4g0#Kd=@a2hXNIzf(%3R{zoE1TVNJ0j604iI z#aYeV;?X)c|NR0^jZv|@<*zI}}_$%ue@(^4Pd5HW)mk7zEWjXIx zmKE@u8ZuyZt?23F=3gVL#|?}?^0X6#xjK3 z4TF$hcBG5ROn5`7c`8XPv_$@wE<#!6g^v8Qi)hu-j{Mw379DwDJvBjLUw*1--XUZj zn1}xc5xxzO?MpnK0&NoiJ=ULhjr@(}se>1vqH4XnGx#a~zF=+UpP+RfdI&3JYtAXM z`4~h$w(E_MFFA(RDBo~ZcpcQr(()}b6*`L8@r{s#QIv=jrUw+$Fa;QYI)MjJM!2me zj(ROtRxc9g=Y4BfRNCz+Sk#^s3OC4qqdI7^`-)d`a0zst@iKS#g#X#Y9-6{U0ZlXVFv`9>F8*_g`Y2?tLc8?e>mTMh0vY zV?2WOyS{``V2kea7tvOD`EeGh;?TEUrIsQ4-MHH37%G=SEH3*ye&7Gg0zJIXvSfkR7(3#3_RH^dYd4cjfpz!2q{#Cqx zr2jeD-QCGQ^0GhJ%)!AJK6L#g{)NWKa4ve9dwPyO=Szx9K-}N*yIZgIvaH;H5dYRI zC;5Gs!6i#R#h{>^FrT?4!gK?8WNJpcB+>H$^$Sq(bpnm9+_I+R-Ww|@Fj zgoA1k{tOqb%7tNX9aMdC*N{J1E49XWichSCOz_lGys#E07rqbFvH|pay_Q9EG@?}% zCFEsVTi&9|^4{5#r+ZOc`Ki)VKb`LN$SFSHFQ^%>JjGZ3#a3(1p_so}7?1rMykiLE zPWT(lOC@p+eT%>0{o=?eo_~csNeip~3XJL=M0qX#Fl$a#x2Q71GVu4Oc(eks)ROy+hKzzeu?@POJTB#OSo(bxS2-p6zx{!Zm^zmlIkf@ft zbS5b7M}FuZ_F&|8TEAJ@5N{bU4x7OpI+M0yJ+P3x5BTUhHfY#LSpKUa0b2X`YS>ng zpTqEpuy`v|RdW#~DoOG)P9{}TJ;-tJEnZs3qBO~G@bh)7dz2JL{vo%9tg=?7%3L*Y zc^d&g1W=0o8tdNDQwr{g4DqPorPo+UU^1Esu`X~o zEWy0Cj)mQpD?q?hyKg=2@_-S%cRh<9a1(6ubb8BZmcsvpIGy5lgCpdcMQkBmSR8CE z+Aam3EIT_bj)9G13Is-yl*Cuov!R-0DZH$nMQA#V;OFXL@Ob9W-0wQe)9ikO&$$kl z6!4&E((``kd+552)B+<@H1QEt5f6Vsap@o#Ui(IZm_)1?uX56oQU{CAWEgns?JpZQM>;JWX8oQK?E9nq?LZn1mRM|aJ?1?$ey z63{(>ARQy)g6;F-f}QvmU+pPlhT6Yl`0TBe{x|f&E+l^ax9GRzmizCTz2;kP_yqGG zLjsr9faP+~v+~IHPc;DnAnY^wIi1-&JM-Gfq{QSX%CaA@i@i<&Kc$CM=CUr8ED` zztH;kY(bfKQ*qDnD6M}qZ|~zjBBr^L=gMmaLt20&9}??4#Vqg5m;3mK`}xi>qy}1Q z`O7~3i^n4e7@fh6@+_MGZKVb5(Myiw72v)yaMT-kfw18zfiiLkg`p2>yBVWj*$x}R z;cL*CC-7N1|Gs@X=s%gD)qj$rjXz{=4Tr^5a9HdNB&rPQnpEMty)pn$sry@TV!krrr32?WqmFOVKU`nv;-lR&|S zlwh-wpYZihl+9}cpf-00`kjU$EyR!#f|~mId79S_K<(}hWS2l;hLkV>J>><808qr; zfx1bcNJB~_fGz=OG7Wh&fTHgXREbO76q6f&O8b}gnBkP(R)eRH_KNmf+s$bG>Nk+; zj@uj;gp(%if+6JsN`8=e`tTb{{_XB14+pFxO&C%HfDU+pTmW+29jF>-sUz)@A>|T) zqWwKJ{RyBy?+#>@K(&UHS^yPzfvy1P%H4rFNT92Rl&hG`Q~sXGyau3acL&;wZRkj= zH>A{~rhzT|`^D1`-vrRjy8&5dIMNynDGdNv4}bv#02c}=?z;kDGdRj-)M$ZVInsVH zr2GQVE8e;;0`%ftL0@pB{boq{4FKZ;JY)Ae0Diw4fS%-Qpup)eq__a|rWfckfG*!1 z=oIKSjC3@O(zOQnIH zS-JtB8+Ql#7;i^M+D${sP1MvO$iLqt8uUg0HQpU)GJuc+|0ZB+^u;6bedj4v(^r=J zvmxbYl=~9OmHYo!K>hmvvG?u)QB~{T_?qFmhk+SjP*l(nK}NYa+!VRUfQW#IBcP&@ zf-nk-Fb4)hvxdrw3Jc3zWR!HWq9ntUolPF=jF*baiprB%=ovd!m}ca$4wdQqS$pr{ zV);Ga-}}e!uXpO>=XsuWzwEWwW$(?+$RkoZ@LX`o)34y*#O#2RjmUv4k4It3K%>(^_Eyss4en?FF0cHA& zw^XJp2z2G%)K%fxT3Re;6>dgav z@E>aP;l^ujMJ?h^eO$b4lMdCdt={Xw4& z{cDdbQV9Jwmn_olj>j{h|0K^Mtp&!AY7mkJgIpTcIEsK;u|5TPm zHbGB^PN3I74}ktJr13Nd17<9Xg-Mf6!&#gKX^)0WQ1)PI`{M+>K*+Z9zSVFhPs#Fx zXe#pKZdEgrV~QnseAkc53_k&@s-wqGb+CWZ(Yr8#A4sWnyQ~VgVIuZ#Rk#pQj4e}) zCwUCFPJSYozBq=P=5Udc_~#g|f;nZ6nq&voPA&I?65QnLgRLkDI zteXBFo(RB_SosfT#_G`1E^y)D8>WiQLXNMD<-$B9AI=~22J_SXx%o05eFWaJc^l7U zi5mb12ZHH6vOcIeljyRf*iSp9}&g2jtvalk*2@R12zU2u$#j?hRJ$>;(HLg+J#xDa`B2pt#5Y30Qs zd}1Kygr~}B%0w=Bx>-oU$E9B2f|J;Mcn8_V*SOrVBjMx6Qe{~$458a5avR2wP(cq= z3oO>Bdni>;`h)tseG=-kOKgCM_NhXB$~*D3zDe9l-!{Qs+atTIQlrd1A?i@-pU)+G zu~tDzF0<=;jOQY?Fm4NF5%9)Zd%TCCF`4scR4y;WHoxjF2L5K?L)HxEMKdv^j|TFWHsd})r_B62#FeU1|VeE(a1hxr!k+3(? zEc!dOMx}Z8t|RJ=0W5F!d%jFTIU>w(+~#6WFCd4%ba6U@Jr%@JbQJM=wujO;gSjbk zV<@#RJ%`=_4_<1)?F)42>Nu^AzPy|Zr$0>P^m3x3{wuh0 z`cNoWDDU`yeih0E`Srp#@@YGWMH9KufnvMZbu>W7g^jntN$O}WJ;SnRw~m(RxKMeU zjy|a4ZVMvQgdF>+MGiEJ9HJFDPCt#lAI1fa-i?Z(Tc&Xli8j%XuqD+a$fLKU?64tw z*rL)!7({nrOUgK{fEHcCDt}-ab(+oo6D(}%*jN`;i3U-5LYI4$sV^k6^M zR^rAQ%ZH;l&5#dbIwEbXHB6_u5h%{(cUW<@D+Yw zsM*+i^|w-MBsbeXGmJ&6{wFp^PflH5Sh(@BWoC|rG9#CVI&LQXcqXUKJ|d+xExLaw1isE6=-i~l6V ztq}wk^IPUkEarl@a3%HQiu~m=UAl_X(T8SmKJv^kx_btpURFi0 ztL_IB%Cq?ax>(Q6i?j>nUw#tt1WNLCc6B=0#Q)&8r48Z1aoRA-7jqFo2IO&#stWhN z(gFq$}vGtm4fZlYWrMr)(E7k$-2pxTeIz4^=gC~2TM zj7F{If;G1sv|jUI^$<9sE!IYJD@L|W4}7wyeu(CRZq`QAVmPd4!)Rp;H$#qAdAgL- z(l=tbL>BP3Qf?~M#$tkGMn>=)0UP&R$|adjj^%u5Ni4TPQ7Gio$E7)p_QrDayjaso z-jP8X7RPOp7l+a3JooR_cF|E7 ztosFdc(5knETA}84~YJx!J3R7tb5>ilfl|OoDJ5&vM_P1wu#Yb*;w6%wq#@VYYE)A z30kDZYBx|VB)Ys82?NUm{loe537kwOf9`d9F_E*x8{h#I)Qyh$F*=T)QP73$_P}C6 zW;ynWXoh^(5i-pUzI7qyaN3f@1x7Z&>h$s9vvMbPPwIygcG8QEAwXOUoNzR~&BeA| zxJ)A2!l}8EyC81~r#;DB>3ADF;6e=S5}0MNP{^V!oGzTh#d!!vFsiLT51o)4oWrRn z48S*%K@Hznp3zf3iGSj zx&KhRxB^X-%re^)dp_1w?c9d ztP}e2rOMY0+!Fs+JF#PnQG>8g5j_`=9&!ycPkeM^YAW|=P75+Ia-+TxI@_qPjqUSn zhkPOYoqKDrVqg)Rc4@xBcZ1}6qidgMTLg7Z zIUj-z68tHw)0*IZpZ&-h4&2#^`_XL$!Os0}AhUT-o=OU~Y*=$wQm|ESap~XGNwep2 z6UIp=SZCnnAPcn3vlGdm|Du!LIhWJrN5g($!i(4rAa$4T*%FL1{Ng6Vc^R% z@1FYQ)W3zQX9spY@FC10wt3nx4?6$BE3_${o3!#EvTL!OvR^pV9|SM|yArJ%9a(=V zGI{e7twxEyVqcdQOT@nPI=Vzp!6LRomedNary>TCu~XMs-`E^DREp#9c@QtJpfP$_ zDc*(tMZ_l;{D#W)mzQrW*R8OK<;uaKfpTQo=qnkVzoUz7fxm5@c1%$Yjz`(f zZ+e;9Gq~U-L*=;;)Zg7P+&FKE-R(`*-F|=MsvaF%KZiOPI&ziHbe)m)duii*Zn9q{ zB7Ugb$S#7ROTd}FIUghcIC^S67o7XbUVQTFXIULi--a4uHbQOlRAYv6Fpy>00)5Ca zV6dKg;AY+4-V2 zi}SboAo)}F^B$nny{G!m%b9+-e^&c&zxfYs!o3G@X^z~jw{j852A50q}o>$?2I;Z4r!nhgSkM~g_lekYU(_E z$a8cT{tW}cA9vwvH+11}ggwYIzs<7^w}$i6pbK4iW;PcbJk;bvm3am+kMQ4r@+Ep_ zHaAvN1pE1oTDD{#%DK>k%h=@xyL7qb!QTyeZFl5#;m9tD%k8p|*GZ>)hf<%;Qb%NL z^kcaVg)ZbaegQYt@cZ0;j<`qo@BbA3SBTFyEXE&4f0Lc+EiF$Oi$?*J-(RCM2Hhv7 zUj6Rc$TP>jOV|F#Ge-}cIVRxmJL6S_3n~45=-u?;LH7_Zk9Fz`?<_riD*tqE|E5b+ zpTk9uX>Mn?ORN+H7T4P??QH)dmUiTDx<%s+{fs7 zf$d{Vq4f*7rlHLY`wPtf=*^6HA&%kA43>st4bI}n97b4!FU#fb4l)V`aWkV>kTK^F zSlrA&s=wxPTc%6J3uzbqc(QQFsIZN}!eQDYY-5<)#cd3AySR;Ee}Q5fBbH7ya%bhu zd#G$N7o!+Ju2EMmgD=oIi@7O^9!c+gfv#VSy`Y8{#ky=3Sggy&7sa|%=KVok3L6;l zVyFn+i{b``{zbYgk6Z7n73?E6Fq&Wd{RYNBySRa&gJ+b*j!G4Ff>@-E%F_!Gi5nR0 z`P`qz7zBg3fngM6T}bhZbVdPJJwYw#(gp@oFar}dFp#>ifnj)2+`ur40VAXcTo8e< zficj|S1jQ?Wbz5SS*=af_;^b7;x`~P0_v}wwlC%OuO=_C=*682cR?PW3~L2loD8c) ze}BAlF@SvBWHPLKN!+>Uc~P7V+lAsR*Rt8L?L{^lzC&(&iFOup8RL792BwU0og(|$ zMGhQziEUcU@gjSfySQJW-aC4~qFL}O?pL(E#P%yH+Nx+}eW`FSop=j3oio4*PwHgurHgOD&V+U^-FyqTXo6WtRu|YKa!7;7am{=G zXw@D=lZv>A1Z{^<7GdeG7v#}PcLQw5hOi~kCPXMcCDXZ=E#0TmZI|3R`biNtRc_x) ze<|X03Mm_YJ$u<=-e2!_+Ql7_j9kyN96HwX1a2eN^8#uH*t0#X??v{LCHyZJj@cHm>BR_;(2fxpA>y-0|NR`(`2J%@+G& zyy9Zt2A}`ei~R(7R|i|?htW4yakH56Ul#kJbbT>5G14g1gt#h|&ORzr3@9 zevPp5whnP+pHaev$s0OoZ3(y6w?T+-#LC{@!B+N>BkR0kHFxVsU0BZ}g8ykfA6bfZ zFxu-+rAVx}gRSRpWr<=bKZmm;QS|BF4w_!ZZB}#(dGK)|FVpTaE{l1`NaNiMZLI3Wc!c3e{W6VO$8E}OhHZ_?7xOIkD4%1Gqe1jJv}kYqov-tQ zXRcpw7SAd${Sns{5p-}Jrwx6g@%r@_F=1(_n{?`zp?Qq*0nAJA2nd_UAiDD$OHQYWpTrR zzFE*ix2cv0+b`3{25%78!nF11kY+wyw0UiWa?!rGEz?;B_Kp!v&IHOj^06HKZ$OH<2VxR`t3hV^f zPk~ws24({6hjn)YHp&||9;0`DteGgk`xt#1T>2=Ql){eZ%NpDO=64JF82f1z=>or6 zks+|~59GbTn}5$B35(~GXJ_LNG4^E=zppcg{K)zFB)c+`e0>&woY9uCeX^gm3(w)X zpDrLPH;YlVZOmeCo{$bOk|hTu-3G?45;+dW^US1I;&WhZ*O4odJGl)f)zIC+%)drr zEttip1GDh4U=MuTm>47v)-SVQ#e<<3fu?5 zY!gSbDT`>q@nCEmkU}ud*GU7IxwnGRok<6n6`*rdmR0z(UtN+zH<(3u5zIQ#6)-CS z*_=h#S)dxsA_@ny4Ca9G4i>S1gTbwmeheH2eE`h-D{mJwrUwT>F97Sn4YynI90r6A z7}&G=-C)+6d%@VfBNxHwrNq%W2PM05i|AhmW;K=sW*I61j~n6N(dit0N@#PqJNm*7 zZ>dvhP=%~b>bLMOZRCD(@n}U%y}-F|v#6?#n@o>y;d&KGuN07Ewe!4r^IX_3PEU+*CpvAsvCz$(%+l+Z z8PPGcT6fkx+>6VL@k3tB_4v8F!Rkib-H|=Wg#C}ot0Hxz(w$V2X)G%K!d={tp4Qe^ z^NGDFiwpvqZD-$k<*{_1k>pFe=+{qhFU>LI`-}`03H4xxEfN|ey-CtrBz=#d(+_uX+13UpJU|Xq z0%pJh)B{@p8?Y5<0(JmxKnHLD=mw4hJ-`W|7w7}*z&W5FxCjgYSAc-W(OCdJ5Dzf_ zhQ~2FWI{0lg+Lil3Dg5yfkvPSXaPC^Hh8mN7i1gI4fFuLfF0-u1^}`%i>LuD5DR1i zg+L`>0k!~Jfu@~h=yDKRfjvM6Z~!<290QI6eZT;46=(w7DY`zO1@r(u<4FpDa$pOv z6=(w5fNr3V@|#<^59N#ETaXYg_nixA}|}F*$W%&;E27i zAq@3kyckQ$;LesJ?DY+{5v&HYf%6dDwcr5gY~Vcr9RqGDIROFZ45ShP*~mHoosFy( z=xk)(0`>=Q1+zc+)dzR%u#zU|Y>3|hX19_SuyAVtvs*01-TgO%UNU|$t6qRTQfqAA0Zb>aw_~-Am@@Ck_LIJWSIN%rcQA$t-illFZ`Y0y!Nir?RP8tE8|1$0V5r=$B-nhV~DaKnod{n^2`m zkaNi*B#qh{AzLIl7xos&M)+qnaSZZ2gk*8{GuaA}Ik^8tbYKYwOY$PfnUc&hXO?6( zEpL}(Hsp6p@;t}`lFVvL^Qssp>l5*kybyAsB(uy}>m`M?O{*lcc0DA?tZD3$%u0Dx zl35c39}p8*4mn+tmqIRwoKKdbNeF3#%&MA|c!%I8m$1yWin3Mc`FkV>7AZ@-1NssK z5i$aKKI(`iejGCEoGjvl+h@><89?+32YUv(Ypj%tl!Qm<{`xU^eUw`Kl>neIM zy9naJtVA$OU`=x+~ZQc4Kz1JGd9jf%`Cd@Bp8Kt^^N&J;7JOUSRjb z7{OH#G>6eCz*?|3nBD4p!0cA%3l4`}1C9s#fz!cbz(%k?xClHBTn-)&wty#q8^8hJ zCU79Q1w0YF2RsSfdDx0h0pSn~lfm8KAn*zB6tEo}488~s0S|(wf}M|`Pk`0nY2X0x zbg&K_295=XgAL#aa3OdGxC|T(HiKiqTdWY`AT)y6r=@m)XMx+m@!$^dY;YGi0elRc z2<`#T0r!DZ!2MtY_zE}`Opc=OfR*5Ma4>itSP#wsCxPdKt(g$AAQXVJ!NuSO;7Txi zWv(8a3*HJ|1a1Z!!L8sta65P@_yCxFJj(`N0qy~tz;^I@@Bp|HOpaxdyTD4Y%pKj$ zAA&PR6gIWN!VUX`=saLOSOHD~E5VsyHMjum3oZt0z?I-J;Ck?Q@K$gjxD^}@ZU-lV zZQwcJSx!JJ=a~5$pyY1an~Lw-EtY z4OW5!z~jL>a3a_MmSKoAf;n&zSOG2vE5R1^91N9ngEhUEt5b$H4o+J>WKQANUb)Klmf?74Sd6q$i7f0#brs1p9+u2M2?Xf%V`% zwilTMf!!1`!Nv&f&p8t`_o z7R>4>9Q-Oc9=sRKZaVC4mk#|QFq>GofeWCsyBeEdxPyzKKg;e;l@LAv*MmF2Tfy&w zo57EQTfqmx?cle-2fzowHt=WQA+o9 z7}h~(fMF8&81xb_n^k&&d!Xa;6=s(zP#^Ti!TsRHV0VO5gRekmOM-sr5nyrxFQtLp zQGh705_&z@2t5Jp5B+YiRgD1N5ZK%)1sn{A2f(r5e6Sk!Xs`kLCU86ahk$dSuLZY3 z4+a-PUjr@!KMZD*#W1iL`Udb8@IByi#Fq?ignl2p{tID9gkc8^Tfqdn9@GZ?DR2k) zHgFfX4txx}1niFle84@>cY^!C1>k-#1#98%3%&w<8(5EcXM)K;vdEnv9o#jnQI#+( zWgcMg1N%c?1`Y_{*PTo3(T@K*2( z;AZefa4WbK=?fG6ao~0sZebn}Q4sh5^fIsw{3f^ud=zX4cY+7NU10KA7I`0}2EPL? zMELPwE%YL=1!Mldz~Ru3fYZTmfQ!J^=a~lxPk@UNa00jq`Yvz__*Sq#N)iL!1AQ}? zO|K2$PUsJU4bbDkHs}rDOz5-0$D!W^E=Rlp;9lq}!RNqLVDsN`{RcuAfMFF_hk$Y5 ztI)TA*-AzWc0ZX#R)gyi(L}HYdNEiF|FMjrKMjrt-wy7AzfiCddIh)$Tn#Pas{PgdH$E18xKV1>6CC3ETzF03SQar+vody2}Xvz!`48%*)=NNwgO;i5^gY z%V*j-o4Z>NP6m$tn8~ZobJILrN|0kMA9sb*ILo8r`2~Yqoy>aT5=yk&KPAY3^Hyv5b`}XkilwjGgu3@gUxVn*lQrM%)ZY+4B*cF@Gt#3;jZ;HkV9bNZy?9O z%@c;*oqvG+V}q4wAQ(R$b_j;9jyDh;xO29F=$Srq*u8B48S5U_k0WAp%&^`E_ck>O z1h#|w!A5Tb8DQaj4CE@9fW;rWdlC|`pL7_|%UOVT4a5dEzh@xbVA}@<(gSY(XxLv4 zN?g3oKnhrmfQ!Jk^#)Q2ZZI22J-B(3fouh=L_%OA0``K{x1%KB9&kUiZ$(L%{eF}LtZg(9cVw&>x(3_;UCZ?Q3?v+^eGp9q z)<0|@N#LGG3?v=g*<>I_u(fy_a?TvK8%P2 z;V&~>!P%Am8&v5N`6T#POeDY^U*azJIQD!cTL5FAw=o|dCCVkQXfO&wc7Hq1Dy+qn z59E{h71^ZIAEO*(oBINCP>H62T>ohfNr}Lv1G(kl#l%;RF&(nrbpd%8@)pR3HF=~6 z{&zqw-ee>%SPu6<_AfM&bK@`^LvHC>OrB@g-Ggj@)i;McZAK@35IHvI zlJ5~|EacAJd1R~%2}5o;o=r}|UJlv(pFHvyZiNky3qQ&xZ@XjYgj|11E>SAbe;}*x z%_D5=?Sb5uw17P1hJ+!Tw`7y~o|q>*1V3>`+-~3y0HtL{KADCYLM&wS`wPft$r!bm zrz9iUi<}liE=*rQ?t=dKYaa(*TfhCH}GkKB$X*a6wTa1j{?`2gg2 zKAVK&HrWfgCwmdW-)|)Ykc~g&kqL;?{b3}WpG|5Z>mb)}T|m}g29gQ6m{=E)9jKy0 zD20us}8(T1+;f12#cczn@2Hrl7=-d!zEm+qhXAfb5@x4vSgK zG03E9AvrM~rH7nZl1HvMqwOKvUt2()RHF$X>w9uZxE{B9>mw+^3pwO00tZ8Ocg-hb zSWQ4yx8{*nl%^1Je?cBui7K@~?z}&j9Cg9X0`j28BC->`x)m}xXCz0{ks-+OW3iL! zgAU02XXX+gwEacMdR(Hl$h3Pi;=FYMu@<7egQ3KGEF>YQ_ISwkJ~?bEMA9MmnsP}n zGE@k;-9MY$3fT(NKyzo;P!kgX;_dg>^cN*NA6Pc$!e519pA3gBy54) zc25qujuJORE{|DAY7=nZhn&gfkO(AjocURlN9Li1E<)D!W)l_c?vJ7g6rx=RxnbG@ z!uhiCA4>hUT(VJzQZi5Zi%8^IBnG*AQ7-8~|JVU}@XkD;X}TbHVYXh2YrU8GIlq{U znT(P_)}PHL=P)4%cnmdUT!dp!OxGZ{grRv*E9sEQlzg%SV@5ILZfjc}VXvB6m_sE7 z5O`{YY)df;+gPp4Q$ju|fxQ#5;k`UzYGs4${!9)=K}<9ulfw&1$Nd;qAr~tbl8<~b zeZ%mqx8;yb$jTk4m8Wuu32A8|H=nPC zY5PQlKVLjqo#{#kANDTcXSb-{*Ni{62YnJ400sf)=WzB2;4y}bySy*T`E~1k-gD;z zW_f#Y^cMr-oc5{uZxdxQRyTos^a<597oq6bd|c1{3wL=n{dS5+5MQ~$dy5<0(d4V~?Z*AK6AvGicZhZ0`*J@2{X43A z-4q3|6atOAXyj^-3_d-?`z0qj_W@5oUOUaZ-_wH>!L=AD@1SQ|JOYLi9?yR%Q^b4n z>y+L{{OO@mrB2uR8u}){o`pFM?gjdRD}ei7F%SaGjTRmEm@2kVdyyjAi-xRMETd2N zdnl>?f`=DiD1kQY_t4Sn)e4vC3R6{?qGHWZz+`PzMWwd7W`rR$RBI_WRq;=5RFudj zSJs*oLy^{6YAUMMM%LD?)`_-oZ8Y7rQIX-BlfEh^D=jZIZ}}=?YC&dlNUfIIH!Ai_ z&{|4r)|xD=vxaM{SFbCps0o)6qdRX?RL}}vg^E|yD}prioeMsJ{MC8hTh-_uxc7XT z&%e^-`I|HEyw9gMneW){8Oc#au!n*MtoE$oFU?VRm|3q=@JT-^caB$Ys4lCkG?i7~ zR#jPDQf8{*-%@!#D<5&0HXQPv=t|!&^;Gls=~W+kdqhP>N5&(moKN%VjH`-Jexl<@}O3&%b%_?xo&23Z)tI z;{$kZj{W$;10D%7>B{T!?DFLY8oixeX-=6kn72(-bSUW#sxsgky5jFxE1vZx{E9AV# zTICdXT3@Y9q%+HvDr?u*cfy zE6*x}HI5jjp>`~FHC62Tr-xU2k98I6mcCxC%u%;>)17Ql*3w-TWw@xG{aQJJAFwFjRZzJ2 z((i3bC4a`M951K;Y*LP)efKE!eEQwWEwUlKao8t?Pc{F+SzTDioDmOraZpyod-Ut{r2 zp}Eg0HO$sbuRW`LNw$h2%p}^qM>$)P`N_{IF=h$b=-sP4JDdalyAEZkE5GzrWugnE zUCLZ~p-Wjp^Ilip#iYsfm)DigQaH!Z&kibI7z*ggKl?XjjEkW2sO1u&#wO4|9Z~*m z$kPPA_^9$_H{SPsWt$U4+bp48A1RlL?st5o^yi=aNcp0iF8>5g^I5*aPd1Ax(>xMs z#HY$k`tYa9ao)3nZp9@Mw6>})EG%kskm3&7`443XKkbBajEt^4uk_}>{)h5T7k=Fr z%2Fq~`?NBE4xCYLqJ95VPH|&bcV)$D`pX&giWIx@M<+hvoHAWTtMYu6wDBucQry={ zl@soFEO#Bl8KcP9O#YW|lsz)h_^!N*=!407~JsS<= zl>>6V*w?E|!)p!RCtT=NgQq*cWwl3@PMktumZ<0ZuX-rQ^IMO5`0H8Hf&5vU$L$`N zh7w+-^Llw4n^r3LiO(q}V)-H5(fHMNh1y9RbJdS{JIm?0cT^Ka9qHSg=oMcN4Sy)r z>)-A&3pIMFG~E2k>eVHc;izcu-+ac>_j537^IYIHnZDxT>q?h+sZ<=skg^J4{D^wj zQ$vmIK1%-X1ztb7(oar%`B3WxFBg7qp4UDX`i;!jhrhef>n<6)wChSO3r!nVn`%-k zE7n$RFjZMtGH1%XCiA%~y!NEirgzmTeEx2)XI$x`=e-K~rWd^OWG-x`p`gt#dX1<4 zFM3t;JuiB>$oQtcUUBi%Ioj8kuRG^e?L!}#;N?OiH+#79x&QI{bqqaoi>HuZwL7}O zq8ek(I;wx)YaBIndAfLrquGXvDs3`td(CsK%Hd}k8-zDh&@447D*1gB{(8EXd$HhC z8x*CF)CURo1chj+s92+0l{&W|Yf-K+KyR##)3fFFktSqsZYAyNc3!?N(O*OR` zG<6ss*qubmp3Mjys%~-iAn_nF596?-XWcbh5W9 zPPSp^e?0x@E7`v8LK{U7wGoR$xM?~fLP?Ft+nVZ{4N|^vfl2ZD(P=A{9{vb&Q!jzW zKZrog3A<^rJL-*L;ra(L3eBp;kA`}yW_bTD9F_eCovY!RmoxvXx9XgmYF@piri2X! zIi`)K%2+yiysGs^BY%Co>Nd{$M|CgF6iRAJ*<_eCTy zdGms_m{tpEMMefKtSGIiuB~2UDJmKgwdfhONK%ZZsAwbWTSZ028ca}2EmF%Mb#zDC z^B`(s;ZB8{%8?5;XGd40`>%P9qkoV0;&@B2szgq^FZgI)D0@%g#$OquY;lst0dWu! zMw|dIuUlpOyZ3r?a{7R`*F7}OUF}CdnWnyl~+GFENiAgY?7p85yo+!^Z04s(IzyC8_( zKSLelFpr4j$PD#ke4SqH<|dz?LmOtPx3Trs7(OFj{byHx>~`;8$MFgm?_4*2&{@4m zz6`a64sY5}vfdQwnB*@Mru;h0{Ml?GTr1UK?X+o*Ibm&GB_@{efFhZ(W~$V&sght3 zCLoFQ(x74@UFfD((j{(cyEtriT=aR&#N$?yC1dMXfALmuDqZzVx;Vs|fAjv@jUG_= zOrRgS__*=+xcH3K(vA?H9KpzcHPz?Rcu~BX>hri0|NT6l9TWNXP<6DN|NJ(e-7d2n zZE$-~#4_ZIRc^#G6T1+C?ig+o$xR_OO2lpa2Y2{vcA`2CYtZ$LKAN4MseEaJ(u3n) zy~`(C#$UO|Cj)oEdwqKNmiv6Zkqx{5t}U4eIQ@aND~VbyLtB|3V&yM*-NeEu@>{6EOyAA@k%d# z=~YFn3;*bA9+@8ex4S)y#_&%c@owDt~^*Qtx6VU+Lm;$;nYhANmaE5y{7U zc=!tC=20)(U7dqUYJ%uWUyo@t`GAL;cWGq_RdM+%*uS^ZXC^8p@#b$m{Q~(o zi_dN+zR1VRSw?$2y>j?H&-lD8+-KeRaeKYTdeYvh*yb6as!YD^ubu(&S!~HSGH3njrbx+vC_~FF7IVUk8O+5B zr`np0k)_oeLKCH+bv2bNt0m@&85^T!hzsu-p=?}a0V7Sdr6p$5lA20mNlnQH$K@#u zc#bPnygtQv*uMxG`o}R?Srm?7;tf{JKbA`tHqpS^h+XBYFjfn)xw@*>w2G}bkw+mv z7}Ir9;fB*eszQ#WXhvp8GKrN+KYrbFtd%7xtd3CZNU^}RVt%E;N2-}JObjZj9A1Y) z3CZG}0(0c%3UjCeZMk7R_CjW&5B|jDvM+2(;@%i+7ZcxYj0PSo7l!jtri8p zJ+v?aZ!fUnGGYk|pP&`mhjkGQFIWR(L0nr4kHS1>k&(@F@*`2ttE<`gDAZex$y{Ay z!F_A3m3fw?ICluuHk?x}CIO*~7Kr;sh*=z>O*J*uHM-DrX*)(+y+(^&p*1B~^pP(5$Eb|!8ul`t3|=xy8ioFahsoyC~dx?N?F%ZrM5^$yimCwke}V+?Qkm!iQ- z*c|2qzE}FY^5^P2&y3;MJ?GORZSZPeR{i3{zjsJA-h)<#DaP=Rex%BCrdOum#)Exe zPd;_IVy@FIY@iW-W~*V#wVJjh7Yz$Ur!TH6hBWTtxSI`jTB;EicCop zP8-d|X`~Hyn?Eu@u?EWpBE&mrU7%?2kXB|B}riWcc~;DY__M89B>b~2;AA9O3E0YPbFq%zmQ7m!OhmM zkpT$CZ;%17`G-`ZM~>BBAS2KXU!rZn1K>Si+rLst2lIC>l^g(fA_Iq*em0dH2RHX& zs~jiN2K1GScs*B*_x+`(;zG~p0|1g8--^yaB)^%UpU>n(%U$tqhkP>}}B5%UZ_rG~p#KdubZ6F}*sCu$RZ| zRcWLf+^_~UV})Q?i;{thE0AL_*?WG$O$k=*?TilC*6U6Eq`1$B&I{=6xvP zKGY0F(}CMM(CNVXC(y^3eK-0RxM3$4S3&1al&Fw-d@hZYfz>Y{hfIGyjcftyThd4q z*zh7s1~&g0ZOSeuB+v%khHxF=hR)%P=w5;SHDmzXb^uKSHe#rb2itjM1Z)6jg3SsD zMhM#1)97|9r{TX?;p-W0)xJF!C!@}I0@WE$Av4(p4-mRbvMbTzKhf?CyPDYEn+sR9 zV0Xw3q(QQ4ArTp~Gf6HZ&Y~=rK~^)F#limb#(zGgi4bg~))uo?l%fh|B2&<1n>HsCm52L=G=zyhKH!hs~90H_4E0;UfpIsqHA0d`;zAd``4KnuhJ2A~jd{Az1TXRP8sXz>k`S&a!Z zn95epGghssuB*ZUI5xc^E9*+gNH=lgTriKaTS`_}nnd#`yBVjKl6jOJlQb5!!=@Gz zuBaX|Qu8ifO`*eCaJAH!94U;luNC$@#rQ^MRh+^*Cex;x5!s-fh&^^xEW&J9$kI@z zgjCnnO0|GmL+te8F5hvJMkd3SnssaeCB@G?X`l4f#E*)8O@*nlY}m(8U6jpR4(0XGXVoEP|NUM7ssM9-X@dGk|qRxO;D zpPxFP@9Xv5HHDA-%{Q8(maD#9e6g!$OBipD(%jG9S*L4bH9yZ$`{EHrJOXP51}@-H zSnx=_7&=3n#LSI>`L|!>pN`YW-BYx)*`uep$HLeEcEF*t2pHNVW_}(1$#~C%$sjs$nMLaKmGSqkemE-$_*Y_h9VmEFkPz0sLh{dhHG_ z=&=F$+#o|AMq517>-fna6hkkUY=%C1=I@#@vq$=2ezgeKG9nyuL)xJq7!j8Fkw)CHwAoB?}r|N!wbE90lgj zEy%$gn6xe9NTda;+TacB>1)9~6D->5@t_$;4j`|Qte2Mr$1y(#YB)?0VAJcd_l^gm z9s1lnYe8_~+*Ic2(6CXkF{5p?Z3XjpY?Lia2-|&wjTw*MV4DkD4{WS4Bj@HJjVze3 zz&JPBqmW4dD4S78c^N=WuZKzbAu)-9vvtsEphv;R!z%unNGJnuQ0&_DJl|O;3paUTMi7 zuLA}ll=zR^F1qrVCTOhv)dCXa^4K_bB@aNBG3NsX^!wwQakTT8M(MWykqq+MBVv|r zS=o$F0|D&!Ha;E1ep~SgJQlne+ySs38wA*oJ&(hf_0hGGe>V8A-$=JzG=pA8l1@)P zn?Wahpa~3l@UR%Wqc8_US0Z!#I$wY|8uDP zk4C$*KleE@mCO%>)^K_Ly`k8hhQ*(I99G#|bo<+yN%E5)3I64opNf1afW+(T}?|lP3T6Cs;<*?TxkYG~EwxvSPaU zUCpE^fpw#OAG)E=wr!RY-*=ZIA(yaw9HLA`KYmv;fjhrvKKTt0o7W{~-;mh*vO{#z z9}vstbmUb@sDZ$)8@F%Yn@=viCl<-6`D01gds^~Wa$XW{|5g%?OBR>O-#X%VS%9xE zi5YPE?N_OK=HrV^Ql^f&I>fm(9_(Io^X@lc%xL#xH&n{E0hvPWJ6#{2DHLErPfRAc z2*Bg@zpcePQ@B9cg}L=m0lux5F(o>UoA!| zk1eIU;Ahr%m0~VfP7gzNTr4*>=;c2RyUA-ag{xBDaJQJyJ9jt|ayj;(Lv%XbCg$6^ z{KrgE30N?6I(|)%J8<`5W31zMmAT`d>^{O@&JhhUz@PiyhyBgLR|^gBM@HDz!4?mj z|A??{uo-JO_65TK_fgIN_fgINpFXNN=8r$BNk92m^QHBBr-e9gt4P~qF%?uVt0*(g zEib7doC}`pn_E|dXF4tE75HwJrMhO*GD2REW#D;~5r&962sXS9#E|%`sbyutSr`rs zmnPV|^lx!Zev4W&p@T~OeIy@!>YlAEUkAh@W)YJ-YurvvlT+HglQr8Lk+)5n1 z5kFbFsnTRIi7p>G<*-M+GqAmZZ^13ZDmNnl@z1MYMqWor*h$vN%C^w$Cp3OCIep=T zCQv5l-#Vf3mRW0uv&v#+kC0+gdIV9Il;u>ct|_V6G_M|(y)u@LWFgOwZaBDqBW6HI zKb1tY1|QLk4KDeWCX;zyJ-I`aNR(_Ij%aJ>lFu~WBPu^lyJa&qI*@IeHRcor@w}g&6shN=2>$0q*!h-&pkCk_&Y0+x-JTY=| z9}(I@>Q!~a)hAj|75C9HjO!j?L-n1O}#0vsaznS<1?rLLA$Mgm4y3(9NIU122WX;iOf+}Kj5EbIVOU{_YQh(TvBx#x*J)=>NRxj(=G*-wW*aj0ma&p$w+Z&NoAdh zJi|2PQPg%bP3UGvN7gIrXe0vdC_KSkjVHKGHDtAOUJ1U6H*feGn&+wNlxFPOTH)ei zeT?7@oVm!lqaV*;WlFE9*k~%)WX5$qpXtmas}D9jpl#ANIWFT|hb!}pPvIC%ruD4X zmKiIcKR~UgG?QiP=rc$&WVztCt`ZL$Sjw3vWLVAWeqL4CqBUY(a_I-BG!v{VW%KGQ zgv*#+)3>pJBQIc~tUobp0Z!^!bciZUmR@JBM31#dmpS=LDwxz@@bhoUA~qHwtAunM zT8HDRqH90b_*#9$Axg;DXX4&!f*&l!;d2Ll=Lc@k=Z~C#l;YUZtW78~b+4GAiq8%UNmD>ek?if293k_0Cb1}K4o|~Fsn9-wtZ7-`VLOt^X4Vn+frC`mhwI_6 zP*+CQ$A}l5+=uJu65&!YR0n(QU|KIj&W*dI4m)Km)($1W|wt}gb(mtkp+Fj7xq?MUznEi7X7 ziBn%NprE*wKzhHth;|cc@>}ke&;iMJr;cH`}0Zqvl*lqr<81AqJGUl>|Uuv?VU<& zp5V{%jy+%m8h|!H+h-u;3&?=}l!4d)J8at11{}LX2aJ%7eRzSt0gC#c22u>zfC0d4 zM*u*5)<6tEFH2+ z0s}u<;i(@A&~P4!0L9-Tmw@>K+%Ccf6n_W#66_4$Ba#8UcYhfXPR2tClkgzIzY!j? z0c^X11OfGrhy!RwhTFhBz`)Po>&Vov$i!8IvHpbI{s##RB0``69&F4LUDN)g@)ChCWqosI`+rQU5BV%9x%7I;`UmNvd)Vb*L7;{W(%%PYoF|o0UvC24goF>jc?$)@n zxRtYdW}TSTJF9QjEeQ`NJf2XVSea-}v?M;4I4|j|Bt>#{3en=Z0>ss(e?$L~J~!&= zs1C$=GU|t@!6>KbJEC_*N5?e8T#gBkt&Kepdo{K^?z1>+#!N3n`gHv2*?qGk6E-Hi zln|OY3z2@5*q>OIRF$+VNtfJ^{B-hPlKEt(IaB87=2Xr3U{3Fx%#?*Gy(vGX5Iy$a zk?7m{w??*&Opw%$G5D$DWD(HumS(khn+VUX9C~xpL-XGygtw@~qou zJv}Qi{+)QI*&){1l?m+$?x5CAlm4*Exoi%9Q`45CdL1M&t?lh59mm zjs8FSsZoZgf~c~nT~U{#7DeA1y+8U$^tI@Sn1q-GG3#TVig`UICw5Kjrr4=*+|08x z7tVSqet-O&*&ofGmQa*Xp3t1|Q9^G*T;i{Z&m|=$Pnt73#hRL8PH9PLOSzgtjQD;6 z65FNU72Oo`Sj_R5o|qFcy)ld88sidYcFa6F^YfYgGo5BVIP3VV{P@=R?TBn%VoBm( z5(g6(BpH()N_sTu=OoYMu;l3E3>2a%xjA`9a!Yb+a$EAAy7wx@!Hu766A?liK~(>C4G>*aZb~m zzs~8KBTG@H_@qopiB3sOF{CU;fnP~M`pwvj21V%eP_wQ2Bl>Ujm-T~sF3LY@a@5qQ zSy4-)o{i$8JfkN@heg*}qd$obh?yBG)@J@@_G_w$$Q)x|l-`TKpB&-e5Be2+QlM+$kP13!E_!Ffs=po~`z ztG}wn+Ij6p{kVR+`IdXi-RzzA+WBw$!K-_w2jWGXlqgM?ilky`t#rFQQBG1iDIL_i z)Cbf@)oE%>eM4QN?ohv0&#Av~`?a*Dnyz)w?$RF69@Spb-qX%#@w%z^(x20p>&Nup z^p-{^W1unIc+dF87-o(#XPFhO3Zie?n)O*AG(0kdB zY>Gtkc=GaMs#s5aQk)^aA+8gTh!@3r(hO;}^n>)X)I`2V9xZ<%$19DLuF4zAL8Z6a zli1(Q_p6~d*6-EF@(8VrS;jRZ#k}8q#eC6QL;P9m?pk2o)q`W>HL_NRbShqtc@`Q9&H6+gqz^qc#FulR=Vkm`A{OEuHdYR%{8#)UO3Nqkrw zAPtt*NQrW_*zMO+>qM(i2}M@uDF9Atp*~<@!ov<&1Jcsi$V@f^Ko0U5pmy zN%OMV%D&w`$49nuZ+FkRaeNR#9EsKYHMK##OkJ`0P*&Hb^2d`}vGozvZ@*PyUA1C~ zIcfc(<(*2-dS{cf)!FXsa`rg;oP!R3H8(DNW7H$m07G$cDGzofeE(i~p_bTQzEkce=gNcR zq4IE=*l2m2Jb`vINuDZCmkZ?mva3v0{;LQoR@N#fmG6}tt&`SOi!RqbAeb8Ht@UCW z(=VLsd}F0C)O^hR#5`w;R$FVhHQD;zs%qb2N9_gn+x8^qXXg(JZ(H{+SM}cYM)}kH zITZEzl=a2_a(|^?C{=x(a_ zxL1u**^^qu5f;XU^?Ii8usDu{J1CwNFNme$FlmZ3PJUT_OI{~`FIP}*R5B^x=an>V ztbRm4r~g1vPBEGoEiA`cV&CUH=tRBey}4xidT*1r)!XhB_&)`oUlbR<4ownusjbxP zS?LR@oP1hts(h~OQ=;l*^;NyTahq}8{M}5pZnQG3=9XY7);w!|?929Pb)pmPXYF2Y zWK-Fvyd~C<_DUzD3sR|cg-gCJMdWxnQBIaqDA1dB6;_vb}isiTFMYFl( zMR}6l)J)z3YTxMebE3{l0%nK%oOgwW$GCh6gw9Pj(YBG?nw8VJKAgL7x;&RhboN= z+I{4zFiBh`W=KP%_oW_0?Q;1mpw~^*weea*l6tjancdA?bA&n0e8Q{`I=W^h*mc}i z?gZ}7@jLs=qy9Jk1wOJ|h*Z*r9N``zNImMc8EwSp@9ql*mckCl}Lnqsr>C^>8>~LFq4|z*H zUOJdkF09P0g@=XDh3E`%iu8wM%B|!F<;fh~WjT}ba7?)be5^suY^>g*Hdk%+L3N7y zDlPI$wVsx(_1B)!>Kb3tf!dqn&3DYt`F6IIXBAn`*t1Bhy>^0A(|OftNc+3!UFW;@ z_h0hg@;CeY{d2(yrk4w|0)SsnSSM@~&xt>Xe~RM(2`xzZ0MnGpFRMcdtapu*=3{n= zeaimRKJAQix4G2`u2CeyQm?n)&(HM-`9p&y;E(pl`4jwne^T%RgmRH!@_dFKwNuz4 zeI`v*3)BVb+v+-XySiUJsh(9YsHJN3ih2#m6w%_fM7~#973rZJ((39>^tt+FN=RMv zE9bD&z&-CpvdXSW7hV+N#GB*?tE}~j59`UAaa7!$Q$6z z3a%orTv+Ghgek&Iz(;GbgE&_#5zEP4?EPq zLmQ*b)QUl>m$X`XCw-{?G!6Poy}6+nxyBpD7UOa-2$;>y4(5I4Z1Z(c*g-Ri@7%|F z)%w)>#=2`iu()55vKdB+**9&xX@6TO+lP;?FT^lM;lcYgw8@zO${qW`LIG`1OM%nN43s%_P? z(ya_0pue@sTFbyt-cGfXohy#&X3=B@xevJ?xe1==J?cH-?~O7B{YrN!7ry&4OXwzy z6lM!C`s_p8aUnN(T&y6~l3b}!S^{z{mEtJFf~?XYSCS{SmCi~(Wde|Dw^E`ck*Ig5 zW7S3KJL(>gY%A>{ZL22hJ@hyA{d!yDL8G?W$$Zn?YhE=gT8-?5cJ!Qmvvarert^(+ zi#ytV)2-qS@)nY@UHmuwqaf{aVWk@;bOt=XCO^+5RZ;h;r`3*N_DV)Aqo=XX7+`KR ze=%>h-mn^Q)D!F#_Ijr>7_OiDq&Lw!;5BD>xZVFKh=rnZA)rVV>QLlbi|eDzn3>W5 z=~1abIwRdGEAn~yZl#%eRPC&P#xo}y?TtL6&^Tt?V6NoH)V4ZX_gndNjaGIQH`U$e z9(0eoCGJUrII^i+B%7a6nYnk3dXSOeMy;r-v*7CJywK?GU!;A=xbrqO5)97eE zYW6HKms(FVW!&X;^SAmt=~(3=8GOjQ!Vf}3t@t-;{LvcYOma3mOWbJiElSFTO{uE5 zMf^-WBVUrQGl0b_iAu5}sJgl?)~ZcfTKd=eH+l!7vr*s7V63S@_g!rz+qLa_^tuc? z(~cG7q$zjhyOZ3h;kXwmEf=CRQSeB+T4Dp~X6Zd?m$XOPCncCSneAvLIrezU>l*uJ zw~2on;d(6?Js~Kvc&fg_y+R3d$}(evu|L)_JFSj!&Ae`=*st2pyJx%x{@UQ#Q_6>f z+XCUVP@g<(By}T{0x;N>B_ zI&rS*{F|)u0S^%wERGeIM5T4oZFasriGgsseS)!|rWfg2J~T>gr&k=8K2SHRvz$n7 z`S8lx3wMfrNz*)W3>9)B_3=emjBXSuJ~6NCgFg_C2xTB9Q*KTkZFG9O>)h{1`|=@- z5(Gss1V?z0*)?OE_|Fr|4n@!u&G7g>v~KdlRP>~N*DdeLUyJd(J4_;S<#SApIv ztz%AItF6~Ik(k@HG`%fFtv55>Gx~Ifuh%GUAM3k;u9vAQ2}U)esUaAS(T-wwzcH3B zQfMqQRv8}|M~rWcALzf$Ov&`3W{&xQc`upqn6-t1-rQ^Dz2x!hs=_h3gS=4rSlL5$ zcuf6POVaOyLb+ttv&LJWTf3bl-hePM%ZCW$vd~xDDsBHe>JGvflt?F~v;PAij15mr zON~BEAUz`wQS$(XyUF15v{p?k?^7wOh- zXq&Y!wPV^TtyKFJo+eqZrPrfWG}kq~mEKP8rr)LCqYu-k>dW*U5C9Jvj~UMz5eiZh z>uYN|s3#gDGhesg0C~M{ud_GXpW2@Tgbvxq!7kt1m+W8cKkV{Ol2gq|bLu*coLijR zI0w`5owm;HPB-T+r@wQb^MLb^GsYS3JmpLw!Cr7)auzvDoE6Ty5F#6#EzS<-3unJ` z#5n=mb?N2XdgCmaNs((zRPDA0CjQix$<+Y1Q;PO#Zs==xy|lHxOUF^?~{jeS|(5 zj_^HwLu^*tv`1s<*=bf(F%1BImYGeOcQU)0JHpX&??1MD%vYYsuR!P({<0-Hn#pj2X~1ys-N z-ltyQpcC>NRe~ueE6PMNPxw;GRR(c7!<9V1?l{gUpZO{n%5C_v8Cn{X_I&fSnPW|{ zey|1+w>yc>1MXz#kX7E^pvI(^eV_vnyjy%#d_vkJwUqnH&&x~Y#<0rep?UYhRFBoq z=uORb_8z;sqdG-S{jZ&q&e!hyUOE3Y|3k*5(tk8QAwJSO7AK|Eh~?>N$uZgVjoIb`a#RT z8iHr`i8siN}&sRfv??)@iHMssP?Q40gI2Z!&CSC}7|%#*WKI zB~v%M0MNWS=4SJdd7~v+1Fc8FC+mrVG`qEZw>`yPWH)yncE-^x9IuTx*85iuHOtTT zV~x$U%=mc_U$M{NhT{v_Sd8`8)9#7>W2F4AYi+4`1&Qdo$Qxau*psCcDOIXX_@+x4 zQl`{g5+p@3BuC1UvZWlUlhjq}A@!E}Nx9M>2%O90cZ>sG0aR81ZukB%BLrMSB}n9yipb+?{`DfI!uBb=$u0%y0=o(#x!pLXAJ_cBPe z_Ih}IyfNM^Z-aLV9p!QVc{s(3hyd~7KwO#V@ENWjfSG@RUb%rDc}BP*{LXkSi!NAp zq__|a+(dpdn3WHq%s9(k}8v%1;$+S}}A&U;Q=hz?$N-**qV-@0eLihf<+_wR&O znTghPDoETt@!>Bcxq*2hDN0;45mm9B_y}#bqSTGdT_@F&M>54PK-#%1H-lYnt30LD zRokn5)Y|$7dQ~o?yYT=e`5=Hb-W+2-XZ~fTS>#>8c!PtbRh?w0N&)W=9qqB{m`G z7ZGmDGYV(%&F=q`PtzLcr|u&x+w zjWn~FInP{VUNTMVcB?O_B4#ztw42+4t=I-5@J746+u7~Qlb0uM3;rhUgW8o*pBqU@ z2!Fp(Z3xD6Aw$R%nhSpqcd?iBwEEFi;&);KrK*wCR8pm0(!*9G&f zR@Q?;E|4%e>OlCpy=n_BSIgBO*Pquf=q-$H#wgm&8VK}Dmgwws`*|r)KBXa7l9dqZ z;*ErhVqHn+8$3h9KgjX^B~_5Cpeodr8_P{O>hlCrvXY{tg30RvG9QP;Itqo;keTg@ zRzaU?%rIsfapoQ7MCPsCPA$O33vM;f^p=HmX+nr%lHlzo&~AScx=Ya^K)6IX2T|#H zxjZocem-`KvRyf%)JOTf6*T^&{w$nWOYHgFHbHPdFCWH*r48dezc}e_S%$Hu1?nHMeLa?>8$&B>37=Ie?ncK{9?)oU%)gC@= zy!VAS#2@Q_?C%ITwY;(u`AgU-Cds?ytLmNFM16_=p`LBL0-9`0;I}pVn8VD8keSEK zt_1%FjOu?{)nF1E*pj`JL(}KgTIj&8P?6Fx{AAEH;)= zQhM6oF-SCZUUasiN>=u6<8)Rc#TEu`fP#d`d=AGHI^qWCCk$Z%TnCPAA4Tse#ypZu zw|_=@1C68)0I!D9jqzc+^18B9iAQ6o$JD-?QK_cZ5p*_Gs}BpZ75!@}Jxrz5{$w@* z)qY{^rBBNY$FDN{UUaIvHQifWA2#(Tw}ID^DCq4y;Z5bb&Uw`Voe%o2_|Z@xD@+Ip z-9^G@!d@Yr-ql?kPh0q1Y$ln~JwT9$q*GE|n8#DZdLQL0rJeeSx)knt9$Z?4v?_0y z#v`1=ULzZnJ&vA#4etC)yO!f1{F?4@*Ff6LBBAGarCu{GAW{?tV>B{Dc!yrJ0FqOZ z0^RHzzWr;!y^iWkI(K`dsPD8oFvu%_bhi`T2S6znJ^LMgP?FWn8e_d=y=@(^UZ7hS zJ6}8LZa4R3w<6ji=e;Q*{KZJUfe*)ouSHwxFHMw|%43xVY71-)a3OPGf_IRur`3zx zaYIeiEEv%lTA`MxSEpu;<-0XTo>*eMjRJhZa0t2OW(mOPPczYKiEhx|8e)B79kG70 zvhBz1r|cP+d)~I!qAgvv%fVZ8La}S=ZG%Gpfg;@4SN*`+b2mt5j=vyEMGLQBPeRz8 z>k%5$&;YhT0yG!fG6FnImtKun(U<{y259bAqM#3D^=EB}K8=TK3CHp~`doi=h50eL z@E}d#HEX4{**a?dZ29&G9w&(*@lhn$&CYK3keiA#K=b=B;{_|LC1vF_Tew?z9Uejj za*m*cj;92DgMvLl-pQ^1CD-{675hzQ{TI}aQ3|VQ_iOvL%gpI5^!|EGKcH8JgLMhW z;pPK8~@mzYE627wc) z5dNyaPauGsg63L@cZdUdjDRtn31@my{FTmFU8+yZp9j8cj@r-}f7G+`8iI!} z&7P(N8XZVJWLh{wU@3f?matjQ0V@X9=mE z=DqO$Gehz6C$lf3(qQ{DoEH_HKB4scv!l3O-2qSs)x56W1jP3x-a7KTD!kZx!6~L! z2wfOMgk}8TEO7{-yi+_wWl3hd87#dn?T<<~%bt9nJQD_CHQ9eBgp#VRpz#PyqTQ%= zk7-kwT=r=n=@-ljRxydSo`BkFZ?|_rf86H0?$mdm1g(|2^}SoXyS>*bx<7g4!M;7g z=-bOYKKz!9wLDLp&_rl0Ocvf2J{A5Dx)D>+H^dIu3=R=cdH9{$D~~FRFcj@ojw_AS z$F%v_(spWbdZOM8vHCMT38dc4c)>Vs)PrWa$D9U>aSYc$eM_|3SiNAE6YV4Wki7rmfM#xYrnoO#2FMk#+DYUlSw0840Eh?be<0^B_4t+x!T2XScbJ`K38$ zl8qMiI0b2`wUbfdjFn_twvT(KuRY9u%${hkh}s`Q0`IfyL-giA>YjH*G`2aEigi%* z_v2}r2zJ>33v=1~!>i-p>dQEqT7kUpqh3tIaa81ghO@Bje!seum`z#QL?3jY|K@mv0yvhut81;V(3PoOp@b`sAIDzg$9}FHtAjyMRUxJxxxA3*_t#A(GWHpBC zx`_R^h%G3}4i2-9^oQPX;zNh18Z3b2ZsrJ%;ut`(7|zeD z-u|%v7gUHS+(3fV1=MfQ1)kSm1ZwXj^PAv_nrzwd3sc>-ZoF5^Qz6DKA$eB_mB37) z<=b|kC#AfW(U5=tm2t^TuxeQY`0?ifr-*BmvgT468`O_&E zbt|})n7eNvSa^z}3ZZwfnI@5;-68k-(gD_J-&xnKkqDgc+kN2SKSF3Z8#tpQkxdms zmARZyl^M3V&^oN-Kn-bq!$z_;r`iOI#~WmHTRk^abdfznC4Z_PAs|c8;MD zZ*!CAAlkL@B1?N=mCcF!`cZwdWBg`p?cqs z81M<*tb!Fh!jlk3=aDxmhO=Bmn2%JX$_iI9ly*EHdG>SknLimsB)v0*B&yG$XKaID z`&myjeucxj*IH&B4Sbd96+;_SYf^PQ_^A{K_mlKHs)ml8>ZPc%00Y_*TJBp=BkzOz zH$aYTz`V5$SpGR)s{QIA>h=kSjYe7%t(Dde7`4hScGol2{1%*^P%+fdyNIQ@@mk`b zo~lhZ=a@TDe2zLVc&~V$;IrfJWmOC{^oCLc`bEXiW86=Oo*-hYqpN9Ax^=l%7YmC{}KY!o2^aeut~JD|Wlb^`llt zyE|BKwR4hmILzn=*l^ZHe@x#8M)YP8Pp4O%jJbSdMAcb%BV&gWmA;4>}H-aoU;hhY; zdIc3jw?PBo)^TGW1bZF3zTL>a*=}mz29#A1T_S}QgPAiL(J=1ZjlJbwJc18OGZ8bE z;jK$oTQXu!!{)R{Z9+Bhv{&^tdMcw>GZdDk0I>7ML6ocC!NxlLV?TU|RoqP1bz8fg zm;n2^_k$w>*UEW!p!cIUow9tIp|fIGFK!k((_c>u=Y{BH;ZLD9O=Jjz)?+xvo~25^ z0)Y4wq4X4fyJ|F$#Vh^N5cEEo!pX6F1pqts=gn z$;Jl|si%yej3=1_b~E>$2kqX5^?MU&E)fLx1|a-Ldj*8URTfzS^Oo!Fgbixt&-NoF zWe;);)h%EO6QW$W$#Bqc-Q#^yY?wsM=ccmekk@&F$1k(20HF0di7yB9IvN01X^k~lfYV- z@KfA=q?D~BvT&b#5HfNGO4gUgcg8v66*Ib*{*-RrjU@a!CWYVVR3q&d7__!B>3nG) zuv49Sv`xop<+MW{?#pB30aG7$o^_r_EL`lo;k@l^#B;En$2#VG>s)qzVJRco4ak=! ztf~m1rL7|*%yX!IOR#xwV+M|c9nx6znH%L7^PD3qg17@xPXgma86|4nX-!rv3!dM3*La(L=JIPm{q z4W*h|Uw!d!R{A1QT@EYgO{i}&CXw;j+5$MKH4g}(5B_Z281lAajadv1i? z9wB}zHI!@OA-@B|w`=UQUb4?P(Q-y=yGlDy2D=xCXL+=F!encriU`kKI6`2E?hydR3Mfg_O3Dq zCWhuCx}8u3taFQSo1i14bOGy(%~Ut#S)S$47AZTtX60)*C>< zkI@(DkKwXCh}M;2KVrXTM}M*ZeU0ig4zk2Z(7I0wIpQ12Yw9R%k(Pl?w;e2YKW4zk zjOUEGc$6BLCVs=IR)6;c4*dlXKL02;G3;~?VFW!RzJOlP1Lf+7ocHVAhPFsQ_%7QWo)yzo87vzp2zgK zFyMd7qH-p^{&&>6IwZ+b=^bg6^Z^xW3q;eG^uUWS;Yc;wV3Y^=qg%BN9ELHUnx|ENyhu)tjx8#m4)h(gv~XTdlHw z$cVQaI2leycRbr{zj~39#ISBx!a}7AYglUdSll5VBCxJuil|9rZY8ysZa`>@$&1+~ zyv78Tf?Mf9Wuj6M*8FBz-q~s$tpO`)55puq1$0>kc&V<}XXJOGJfaVPTMvU{{({f1 zYuswM=1An=GeD-=)=iY4UoD4@aKP>bc&b294ReRXbj|QyWC~nO)6Mi-_`3fvu7>H* z>2CwP!_zBG4E3TKaQ%ZR){hFWfv?Wu>A5QQAinC$4&=;3%9wtzx<`-#D>KvG3~b0? z;t?TDKDI<$3Ek}{?5`P`W;(AqtFW`(fri1=M3O>CJyOg7@ieE!D5x6_jV2q9NhdI4 z4=Q0lH#fGZ5(?LwP=f=!p$II884lX}vqHaGBqb@>w2Rz=9?_rM{ZqI>G}+ndEsi41 zmW!8|PVbiQMYrC?V49#*Q3USwM~=0w+ALHp*MJpvvJIHSQc-Vhkd}wy_ks4E{yn60 zW#e%u*O~C;zebIlaTRpsP&ecKPG-5rv2rK@YpgAhLM?5_&S6Gfg&lAUd!BJ_60P$n zs_Qid&PD)B2P$Q$_ny}ny?rh@yA&LEIS9~n-c7|HHK>DaKyy>*c%O=UF@q;cPf62Q zdU;8DRr*MZekwI3dpiI!?vbC8kAv2e*aQubx~Q7$ymY`Z^ALl^F$(1$__Q9yd-kgK zF52ZTt%!;397fYWbOV?2pm0$kpQwJ5O|TtIxAo1Z$n!7EnpR`WVuRpeaKt5RzWo+0 z>XhBe>EJvRg{z(KECbEgb;m&yed2ZouPtEPF~jfWPYu3_kQA(IMj8?0cZ7cW4}|?< zIjIt+_GGN=nFuf4Lg_oAr7<7 zzu;G!ro5!Ah$4-CqnuNISNf3U=V9P_@T@bS!PlZ6;)M_v?Ldql}=r{9^ot zzn})Cv>oofVmvx0AYfXvveOI0*kHJMXaP<~CS2Is%5Aroo z)qCC<8WL~aPl{~i>1!f;Ho-x53b`qcWrYmleE^K~JN%~9vA7N4(O=LpXyZHTM&-*h z#v2ojSB@=69H;t)k78#%34?k;DaF)!4c;xH#;b{H^53rvh|O=CmKo(+7bZon^G82Q z;BeL`CTNoY#B(4?79$=M<3ZR;A=#%L)lO;`Q0cG3y(a6aIHxmkB`7!&=3xshL_9sn zf_W*9l|(buOlMukz|Gnf7wb^mtNG@1tR9Q0qU)hz_c4fFFt3^MQ7eUInoRI#memO# z#UMJ?1e_FetU@^Iwdk;WkO9wHSJ)m5_9`;4h6Dw-2i)y&(C8$)z@E=8b}^F5F8J)T z$V(9?8CEwVoO*ItV#oy>j3YP;C}Yc!SU0gXdk}`V6o?p&6eR@V(<1A4cEd9Mc4nEFgd8b5tua zDy~P3*u`-j#jJP%=KeZ;J=sd-%ra<13au!cbL#;f9mKxZXwGgD`+;+;`FJ%}GIFoy z1b12cIKz|H1y1q070)@QvY(QH%|@}K4&c5M$Jx&w#DR{+={X6Wat?>O*j~x8u4jcy;i7E=wja@_lH zrJjW0xWZ@|?ZM8r%qQ!vA&o0+CS;ALT>?uvyvm*C684w!FFH46y9 zLbUH9b1eqY?Qn$$3B$9PK(Eo*6N$vyOwyU~BnCE*kTG#yMT;9bfhNV_sL<>D*NBT(~^(+XHoD;PJkQgp<))K|r+5J8U zr+=16z6SP9bW@lG(}7e1a4HKZ)fE_(%RrV#f>XMSFX>K(9P+95cvNSiE^SikIUbTg!&>cBG+$IIhnk znOe5`->TCS2EbH$04;9&Se*)|55oY7PV{tw4wD6 zhfyZVq47`4@LjR6{dX4k|E8+m{J$!zvFX31-dNSa3zv<5s*~E47ZAi!+Oak?AFuCn zOq|8)T9!t)LKN(Q7CRblr_+y(g*7xR z%;VT_3rceVvR_b~mup2~dESI0DJakfwUV$zmqHN*MLJPW(Nm+;>GaS)7P!X(?-^BJ%u&4rQ7x!`*8m6c)V~y?c31&3L)%$k zI?D;GU~e{<28FWYxUdpVC1s;?!sf6%EQf2u_Ydp}GxsPZ@hrJ}g`yZCdxNrAoBYk7 zFbZU_6Rtu8ix9yYM6d)Atf=LO^|63Vo==5bPA(TyBR7S9{C#0QpQKKflF`?xl!;bK zG%S|sq;*g(4H7$>g4vbK?nlWSN^S>5GoS1Z%H}-sJ1Cq*WcYeY=XP>@AH}nTEDy@( zHS#kU|SM7|mBV8+n(H(4u25b2BBAY6O+iZi#+op9)sBNSh znX%(-((1>GQqmG*>r>L2$1bF#-5Befot9kZzg_W(4P%cpCpg1MUXAclx3hm+g75tr znsb|hP=lGq%CH!FZA@JZX4qus3?C-+q zSQ2jP1PiK>qSVL*{zw%vnE3GYhj03r1bMa`>ttXf4l4BpIVFn7pAjyj2GDjKJ4RD6 zKh1%!Eds!n08`Vsmt3|$3aOYS)W>u#A(!e`$XZ7Ue!X-GSuSO(kin}2P!{3fvnW2n z>f|OcL4-PzMb*eBFgJmnO6c$Dq<$`mKHut4NcS!wlhf(axpd}2x^W2|IGwJW3xWw+ z?HtG^ae}CiY`Cfs$vW#mCOKPaAo|`p^#)pscbd>F2DuXJpc%xZw9@{2za6 BQz8HW From bda31a443e295106bf69fdaf49ecd63126677028 Mon Sep 17 00:00:00 2001 From: gibbed Date: Tue, 24 Nov 2020 00:22:08 -0600 Subject: [PATCH 11/16] [VFS] Avoid exception on remove/remove_all. --- src/xenia/vfs/devices/host_path_entry.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/xenia/vfs/devices/host_path_entry.cc b/src/xenia/vfs/devices/host_path_entry.cc index 04c9e2dc8..dba726c2a 100644 --- a/src/xenia/vfs/devices/host_path_entry.cc +++ b/src/xenia/vfs/devices/host_path_entry.cc @@ -97,13 +97,14 @@ std::unique_ptr HostPathEntry::CreateEntryInternal( bool HostPathEntry::DeleteEntryInternal(Entry* entry) { auto full_path = host_path_ / xe::to_path(entry->name()); + std::error_code ec; // avoid exception on remove/remove_all failure if (entry->attributes() & kFileAttributeDirectory) { // Delete entire directory and contents. - return std::filesystem::remove_all(full_path); + return std::filesystem::remove_all(full_path, ec); } else { // Delete file. return !std::filesystem::is_directory(full_path) && - std::filesystem::remove(full_path); + std::filesystem::remove(full_path, ec); } } From cabd28b9bb80c32034424b70450be28c55dec4fe Mon Sep 17 00:00:00 2001 From: gibbed Date: Tue, 24 Nov 2020 02:01:43 -0600 Subject: [PATCH 12/16] [VFS] Fix handling of remove_all return value. --- src/xenia/vfs/devices/host_path_entry.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/xenia/vfs/devices/host_path_entry.cc b/src/xenia/vfs/devices/host_path_entry.cc index dba726c2a..8d1025d4d 100644 --- a/src/xenia/vfs/devices/host_path_entry.cc +++ b/src/xenia/vfs/devices/host_path_entry.cc @@ -100,7 +100,8 @@ bool HostPathEntry::DeleteEntryInternal(Entry* entry) { std::error_code ec; // avoid exception on remove/remove_all failure if (entry->attributes() & kFileAttributeDirectory) { // Delete entire directory and contents. - return std::filesystem::remove_all(full_path, ec); + auto removed = std::filesystem::remove_all(full_path, ec); + return removed >= 1 && removed != static_cast(-1); } else { // Delete file. return !std::filesystem::is_directory(full_path) && From a73592c2ef050ea4ee31eb9100bb075fdfe7dc92 Mon Sep 17 00:00:00 2001 From: Triang3l Date: Tue, 24 Nov 2020 22:18:50 +0300 Subject: [PATCH 13/16] [Memory/CPU] UWP: Support separate code execution and write memory, FromApp functions + other Windows memory fixes --- src/xenia/base/mapped_memory_win.cc | 82 ++++++++-- src/xenia/base/memory.cc | 15 ++ src/xenia/base/memory.h | 11 ++ src/xenia/base/memory_posix.cc | 5 + src/xenia/base/memory_win.cc | 58 ++++++- src/xenia/cpu/backend/code_cache.h | 6 +- src/xenia/cpu/backend/x64/x64_code_cache.cc | 146 ++++++++++++------ src/xenia/cpu/backend/x64/x64_code_cache.h | 46 ++++-- .../cpu/backend/x64/x64_code_cache_posix.cc | 2 +- .../cpu/backend/x64/x64_code_cache_win.cc | 50 +++--- src/xenia/cpu/backend/x64/x64_emitter.cc | 18 ++- .../ppc/testing/ppc_testing_native_main.cc | 3 + src/xenia/cpu/stack_walker_win.cc | 13 +- src/xenia/emulator.cc | 2 +- src/xenia/memory.cc | 4 + 15 files changed, 348 insertions(+), 113 deletions(-) diff --git a/src/xenia/base/mapped_memory_win.cc b/src/xenia/base/mapped_memory_win.cc index 25ec5cb92..53b5b8ffe 100644 --- a/src/xenia/base/mapped_memory_win.cc +++ b/src/xenia/base/mapped_memory_win.cc @@ -29,7 +29,7 @@ class Win32MappedMemory : public MappedMemory { if (data_) { UnmapViewOfFile(data_); } - if (mapping_handle != INVALID_HANDLE_VALUE) { + if (mapping_handle) { CloseHandle(mapping_handle); } if (file_handle != INVALID_HANDLE_VALUE) { @@ -42,9 +42,9 @@ class Win32MappedMemory : public MappedMemory { UnmapViewOfFile(data_); data_ = nullptr; } - if (mapping_handle != INVALID_HANDLE_VALUE) { + if (mapping_handle) { CloseHandle(mapping_handle); - mapping_handle = INVALID_HANDLE_VALUE; + mapping_handle = nullptr; } if (file_handle != INVALID_HANDLE_VALUE) { if (truncate_size) { @@ -65,8 +65,13 @@ class Win32MappedMemory : public MappedMemory { size_t aligned_length = length + (offset - aligned_offset); UnmapViewOfFile(data_); +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) data_ = MapViewOfFile(mapping_handle, view_access_, aligned_offset >> 32, aligned_offset & 0xFFFFFFFF, aligned_length); +#else + data_ = MapViewOfFileFromApp(mapping_handle, ULONG(view_access_), + ULONG64(aligned_offset), aligned_length); +#endif if (!data_) { return false; } @@ -84,7 +89,7 @@ class Win32MappedMemory : public MappedMemory { } HANDLE file_handle = INVALID_HANDLE_VALUE; - HANDLE mapping_handle = INVALID_HANDLE_VALUE; + HANDLE mapping_handle = nullptr; DWORD view_access_ = 0; }; @@ -129,16 +134,28 @@ std::unique_ptr MappedMemory::Open( return nullptr; } - mm->mapping_handle = CreateFileMapping(mm->file_handle, nullptr, - mapping_protect, aligned_length >> 32, - aligned_length & 0xFFFFFFFF, nullptr); - if (mm->mapping_handle == INVALID_HANDLE_VALUE) { +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + mm->mapping_handle = CreateFileMapping( + mm->file_handle, nullptr, mapping_protect, DWORD(aligned_length >> 32), + DWORD(aligned_length), nullptr); +#else + mm->mapping_handle = + CreateFileMappingFromApp(mm->file_handle, nullptr, ULONG(mapping_protect), + ULONG64(aligned_length), nullptr); +#endif + if (!mm->mapping_handle) { return nullptr; } +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) mm->data_ = reinterpret_cast(MapViewOfFile( - mm->mapping_handle, view_access, static_cast(aligned_offset >> 32), - static_cast(aligned_offset & 0xFFFFFFFF), aligned_length)); + mm->mapping_handle, view_access, DWORD(aligned_offset >> 32), + DWORD(aligned_offset), aligned_length)); +#else + mm->data_ = reinterpret_cast( + MapViewOfFileFromApp(mm->mapping_handle, ULONG(view_access), + ULONG64(aligned_offset), aligned_length)); +#endif if (!mm->data_) { return nullptr; } @@ -203,8 +220,8 @@ class Win32ChunkedMappedMemoryWriter : public ChunkedMappedMemoryWriter { class Chunk { public: explicit Chunk(size_t capacity) - : file_handle_(0), - mapping_handle_(0), + : file_handle_(INVALID_HANDLE_VALUE), + mapping_handle_(nullptr), data_(nullptr), offset_(0), capacity_(capacity), @@ -217,7 +234,7 @@ class Win32ChunkedMappedMemoryWriter : public ChunkedMappedMemoryWriter { if (mapping_handle_) { CloseHandle(mapping_handle_); } - if (file_handle_) { + if (file_handle_ != INVALID_HANDLE_VALUE) { CloseHandle(file_handle_); } } @@ -231,13 +248,19 @@ class Win32ChunkedMappedMemoryWriter : public ChunkedMappedMemoryWriter { file_handle_ = CreateFile(path.c_str(), file_access, file_share, nullptr, create_mode, FILE_ATTRIBUTE_NORMAL, nullptr); - if (!file_handle_) { + if (file_handle_ == INVALID_HANDLE_VALUE) { return false; } +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) mapping_handle_ = - CreateFileMapping(file_handle_, nullptr, mapping_protect, 0, - static_cast(capacity_), nullptr); + CreateFileMapping(file_handle_, nullptr, mapping_protect, + DWORD(capacity_ >> 32), DWORD(capacity_), nullptr); +#else + mapping_handle_ = CreateFileMappingFromApp(file_handle_, nullptr, + ULONG(mapping_protect), + ULONG64(capacity_), nullptr); +#endif if (!mapping_handle_) { return false; } @@ -247,10 +270,32 @@ class Win32ChunkedMappedMemoryWriter : public ChunkedMappedMemoryWriter { if (low_address_space) { bool successful = false; data_ = reinterpret_cast(0x10000000); +#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + HANDLE process = GetCurrentProcess(); +#endif for (int i = 0; i < 1000; ++i) { +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) if (MapViewOfFileEx(mapping_handle_, view_access, 0, 0, capacity_, data_)) { successful = true; + } +#else + // VirtualAlloc2FromApp and MapViewOfFile3FromApp were added in + // 10.0.17134.0. + // https://docs.microsoft.com/en-us/uwp/win32-and-com/win32-apis + if (VirtualAlloc2FromApp(process, data_, capacity_, + MEM_RESERVE | MEM_RESERVE_PLACEHOLDER, + PAGE_NOACCESS, nullptr, 0)) { + if (MapViewOfFile3FromApp(mapping_handle_, process, data_, 0, + capacity_, MEM_REPLACE_PLACEHOLDER, + ULONG(mapping_protect), nullptr, 0)) { + successful = true; + } else { + VirtualFree(data_, capacity_, MEM_RELEASE); + } + } +#endif + if (successful) { break; } data_ += capacity_; @@ -261,8 +306,13 @@ class Win32ChunkedMappedMemoryWriter : public ChunkedMappedMemoryWriter { } } } else { +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) data_ = reinterpret_cast( MapViewOfFile(mapping_handle_, view_access, 0, 0, capacity_)); +#else + data_ = reinterpret_cast(MapViewOfFileFromApp( + mapping_handle_, ULONG(view_access), 0, capacity_)); +#endif } if (!data_) { return false; diff --git a/src/xenia/base/memory.cc b/src/xenia/base/memory.cc index f7e70d2ff..155946779 100644 --- a/src/xenia/base/memory.cc +++ b/src/xenia/base/memory.cc @@ -8,11 +8,26 @@ */ #include "xenia/base/memory.h" +#include "xenia/base/cvar.h" #include "xenia/base/platform.h" #include +DEFINE_bool( + writable_executable_memory, true, + "Allow mapping memory with both write and execute access, for simulating " + "behavior on platforms where that's not supported", + "Memory"); + namespace xe { +namespace memory { + +bool IsWritableExecutableMemoryPreferred() { + return IsWritableExecutableMemorySupported() && + cvars::writable_executable_memory; +} + +} // namespace memory // TODO(benvanik): fancy AVX versions. // https://github.com/gnuradio/volk/blob/master/kernels/volk/volk_16u_byteswap.h diff --git a/src/xenia/base/memory.h b/src/xenia/base/memory.h index 45471e50f..96eb9b68a 100644 --- a/src/xenia/base/memory.h +++ b/src/xenia/base/memory.h @@ -35,6 +35,7 @@ enum class PageAccess { kNoAccess = 0, kReadOnly = 1 << 0, kReadWrite = kReadOnly | 1 << 1, + kExecuteReadOnly = kReadOnly | 1 << 2, kExecuteReadWrite = kReadWrite | 1 << 2, }; @@ -49,6 +50,16 @@ enum class DeallocationType { kDecommit = 1 << 1, }; +// Whether the host allows the pages to be allocated or mapped with +// PageAccess::kExecuteReadWrite - if not, separate mappings backed by the same +// memory-mapped file must be used to write to executable pages. +bool IsWritableExecutableMemorySupported(); + +// Whether PageAccess::kExecuteReadWrite is a supported and preferred way of +// writing executable memory, useful for simulating how Xenia would work without +// writable executable memory on a system with it. +bool IsWritableExecutableMemoryPreferred(); + // Allocates a block of memory at the given page-aligned base address. // Fails if the memory is not available. // Specify nullptr for base_address to leave it up to the system. diff --git a/src/xenia/base/memory_posix.cc b/src/xenia/base/memory_posix.cc index bd078d90f..271249a87 100644 --- a/src/xenia/base/memory_posix.cc +++ b/src/xenia/base/memory_posix.cc @@ -39,6 +39,8 @@ uint32_t ToPosixProtectFlags(PageAccess access) { return PROT_READ; case PageAccess::kReadWrite: return PROT_READ | PROT_WRITE; + case PageAccess::kExecuteReadOnly: + return PROT_READ | PROT_EXEC; case PageAccess::kExecuteReadWrite: return PROT_READ | PROT_WRITE | PROT_EXEC; default: @@ -47,6 +49,8 @@ uint32_t ToPosixProtectFlags(PageAccess access) { } } +bool IsWritableExecutableMemorySupported() { return true; } + void* AllocFixed(void* base_address, size_t length, AllocationType allocation_type, PageAccess access) { // mmap does not support reserve / commit, so ignore allocation_type. @@ -112,6 +116,7 @@ FileMappingHandle CreateFileMappingHandle(const std::filesystem::path& path, oflag = 0; break; case PageAccess::kReadOnly: + case PageAccess::kExecuteReadOnly: oflag = O_RDONLY; break; case PageAccess::kReadWrite: diff --git a/src/xenia/base/memory_win.cc b/src/xenia/base/memory_win.cc index 343285d94..231a65633 100644 --- a/src/xenia/base/memory_win.cc +++ b/src/xenia/base/memory_win.cc @@ -42,6 +42,8 @@ DWORD ToWin32ProtectFlags(PageAccess access) { return PAGE_READONLY; case PageAccess::kReadWrite: return PAGE_READWRITE; + case PageAccess::kExecuteReadOnly: + return PAGE_EXECUTE_READ; case PageAccess::kExecuteReadWrite: return PAGE_EXECUTE_READWRITE; default: @@ -63,6 +65,8 @@ PageAccess ToXeniaProtectFlags(DWORD access) { return PageAccess::kReadOnly; case PAGE_READWRITE: return PageAccess::kReadWrite; + case PAGE_EXECUTE_READ: + return PageAccess::kExecuteReadOnly; case PAGE_EXECUTE_READWRITE: return PageAccess::kExecuteReadWrite; default: @@ -70,6 +74,17 @@ PageAccess ToXeniaProtectFlags(DWORD access) { } } +bool IsWritableExecutableMemorySupported() { +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + return true; +#else + // To test FromApp functions on desktop, replace + // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) with 0 in the #ifs and + // link to WindowsApp.lib. + return false; +#endif +} + void* AllocFixed(void* base_address, size_t length, AllocationType allocation_type, PageAccess access) { DWORD alloc_type = 0; @@ -88,7 +103,12 @@ void* AllocFixed(void* base_address, size_t length, break; } DWORD protect = ToWin32ProtectFlags(access); +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) return VirtualAlloc(base_address, length, alloc_type, protect); +#else + return VirtualAllocFromApp(base_address, length, ULONG(alloc_type), + ULONG(protect)); +#endif } bool DeallocFixed(void* base_address, size_t length, @@ -115,13 +135,19 @@ bool Protect(void* base_address, size_t length, PageAccess access, *out_old_access = PageAccess::kNoAccess; } DWORD new_protect = ToWin32ProtectFlags(access); +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) DWORD old_protect = 0; BOOL result = VirtualProtect(base_address, length, new_protect, &old_protect); +#else + ULONG old_protect = 0; + BOOL result = VirtualProtectFromApp(base_address, length, ULONG(new_protect), + &old_protect); +#endif if (!result) { return false; } if (out_old_access) { - *out_old_access = ToXeniaProtectFlags(old_protect); + *out_old_access = ToXeniaProtectFlags(DWORD(old_protect)); } return true; } @@ -148,9 +174,14 @@ FileMappingHandle CreateFileMappingHandle(const std::filesystem::path& path, DWORD protect = ToWin32ProtectFlags(access) | (commit ? SEC_COMMIT : SEC_RESERVE); auto full_path = "Local" / path; - return CreateFileMappingW(INVALID_HANDLE_VALUE, NULL, protect, +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + return CreateFileMappingW(INVALID_HANDLE_VALUE, nullptr, protect, static_cast(length >> 32), static_cast(length), full_path.c_str()); +#else + return CreateFileMappingFromApp(INVALID_HANDLE_VALUE, nullptr, ULONG(protect), + ULONG64(length), full_path.c_str()); +#endif } void CloseFileMappingHandle(FileMappingHandle handle, @@ -160,6 +191,7 @@ void CloseFileMappingHandle(FileMappingHandle handle, void* MapFileView(FileMappingHandle handle, void* base_address, size_t length, PageAccess access, size_t file_offset) { +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) DWORD target_address_low = static_cast(file_offset); DWORD target_address_high = static_cast(file_offset >> 32); DWORD file_access = 0; @@ -170,6 +202,9 @@ void* MapFileView(FileMappingHandle handle, void* base_address, size_t length, case PageAccess::kReadWrite: file_access = FILE_MAP_ALL_ACCESS; break; + case PageAccess::kExecuteReadOnly: + file_access = FILE_MAP_READ | FILE_MAP_EXECUTE; + break; case PageAccess::kExecuteReadWrite: file_access = FILE_MAP_ALL_ACCESS | FILE_MAP_EXECUTE; break; @@ -180,6 +215,25 @@ void* MapFileView(FileMappingHandle handle, void* base_address, size_t length, } return MapViewOfFileEx(handle, file_access, target_address_high, target_address_low, length, base_address); +#else + // VirtualAlloc2FromApp and MapViewOfFile3FromApp were added in 10.0.17134.0. + // https://docs.microsoft.com/en-us/uwp/win32-and-com/win32-apis + HANDLE process = GetCurrentProcess(); + void* placeholder = VirtualAlloc2FromApp( + process, base_address, length, MEM_RESERVE | MEM_RESERVE_PLACEHOLDER, + PAGE_NOACCESS, nullptr, 0); + if (!placeholder) { + return nullptr; + } + void* mapping = MapViewOfFile3FromApp( + handle, process, placeholder, ULONG64(file_offset), length, + MEM_REPLACE_PLACEHOLDER, ULONG(ToWin32ProtectFlags(access)), nullptr, 0); + if (!mapping) { + VirtualFree(placeholder, length, MEM_RELEASE); + return nullptr; + } + return mapping; +#endif } bool UnmapFileView(FileMappingHandle handle, void* base_address, diff --git a/src/xenia/cpu/backend/code_cache.h b/src/xenia/cpu/backend/code_cache.h index 03d70114f..318608822 100644 --- a/src/xenia/cpu/backend/code_cache.h +++ b/src/xenia/cpu/backend/code_cache.h @@ -10,6 +10,8 @@ #ifndef XENIA_CPU_BACKEND_CODE_CACHE_H_ #define XENIA_CPU_BACKEND_CODE_CACHE_H_ +#include +#include #include #include "xenia/cpu/function.h" @@ -24,8 +26,8 @@ class CodeCache { virtual ~CodeCache() = default; virtual const std::filesystem::path& file_name() const = 0; - virtual uint32_t base_address() const = 0; - virtual uint32_t total_size() const = 0; + virtual uintptr_t execute_base_address() const = 0; + virtual size_t total_size() const = 0; // Finds a function based on the given host PC (that may be within a // function). diff --git a/src/xenia/cpu/backend/x64/x64_code_cache.cc b/src/xenia/cpu/backend/x64/x64_code_cache.cc index d3b22d14c..beb715661 100644 --- a/src/xenia/cpu/backend/x64/x64_code_cache.cc +++ b/src/xenia/cpu/backend/x64/x64_code_cache.cc @@ -41,8 +41,15 @@ X64CodeCache::~X64CodeCache() { // Unmap all views and close mapping. if (mapping_ != xe::memory::kFileMappingHandleInvalid) { - xe::memory::UnmapFileView(mapping_, generated_code_base_, - kGeneratedCodeSize); + if (generated_code_write_base_ && + generated_code_write_base_ != generated_code_execute_base_) { + xe::memory::UnmapFileView(mapping_, generated_code_write_base_, + kGeneratedCodeSize); + } + if (generated_code_execute_base_) { + xe::memory::UnmapFileView(mapping_, generated_code_execute_base_, + kGeneratedCodeSize); + } xe::memory::CloseFileMappingHandle(mapping_, file_name_); mapping_ = xe::memory::kFileMappingHandleInvalid; } @@ -73,17 +80,41 @@ bool X64CodeCache::Initialize() { } // Map generated code region into the file. Pages are committed as required. - generated_code_base_ = reinterpret_cast(xe::memory::MapFileView( - mapping_, reinterpret_cast(kGeneratedCodeBase), kGeneratedCodeSize, - xe::memory::PageAccess::kExecuteReadWrite, 0)); - if (!generated_code_base_) { - XELOGE("Unable to allocate code cache generated code storage"); - XELOGE( - "This is likely because the {:X}-{:X} range is in use by some other " - "system DLL", - static_cast(kGeneratedCodeBase), - kGeneratedCodeBase + kGeneratedCodeSize); - return false; + if (xe::memory::IsWritableExecutableMemoryPreferred()) { + generated_code_execute_base_ = + reinterpret_cast(xe::memory::MapFileView( + mapping_, reinterpret_cast(kGeneratedCodeExecuteBase), + kGeneratedCodeSize, xe::memory::PageAccess::kExecuteReadWrite, 0)); + generated_code_write_base_ = generated_code_execute_base_; + if (!generated_code_execute_base_ || !generated_code_write_base_) { + XELOGE("Unable to allocate code cache generated code storage"); + XELOGE( + "This is likely because the {:X}-{:X} range is in use by some other " + "system DLL", + uint64_t(kGeneratedCodeExecuteBase), + uint64_t(kGeneratedCodeExecuteBase + kGeneratedCodeSize)); + return false; + } + } else { + generated_code_execute_base_ = + reinterpret_cast(xe::memory::MapFileView( + mapping_, reinterpret_cast(kGeneratedCodeExecuteBase), + kGeneratedCodeSize, xe::memory::PageAccess::kExecuteReadOnly, 0)); + generated_code_write_base_ = + reinterpret_cast(xe::memory::MapFileView( + mapping_, reinterpret_cast(kGeneratedCodeWriteBase), + kGeneratedCodeSize, xe::memory::PageAccess::kReadWrite, 0)); + if (!generated_code_execute_base_ || !generated_code_write_base_) { + XELOGE("Unable to allocate code cache generated code storage"); + XELOGE( + "This is likely because the {:X}-{:X} and {:X}-{:X} ranges are in " + "use by some other system DLL", + uint64_t(kGeneratedCodeExecuteBase), + uint64_t(kGeneratedCodeExecuteBase + kGeneratedCodeSize), + uint64_t(kGeneratedCodeWriteBase), + uint64_t(kGeneratedCodeWriteBase + kGeneratedCodeSize)); + return false; + } } // Preallocate the function map to a large, reasonable size. @@ -117,7 +148,7 @@ void X64CodeCache::CommitExecutableRange(uint32_t guest_low, xe::memory::AllocFixed( indirection_table_base_ + (guest_low - kIndirectionTableBase), guest_high - guest_low, xe::memory::AllocationType::kCommit, - xe::memory::PageAccess::kExecuteReadWrite); + xe::memory::PageAccess::kReadWrite); // Fill memory with the default value. uint32_t* p = reinterpret_cast(indirection_table_base_); @@ -126,21 +157,26 @@ void X64CodeCache::CommitExecutableRange(uint32_t guest_low, } } -void* X64CodeCache::PlaceHostCode(uint32_t guest_address, void* machine_code, - const EmitFunctionInfo& func_info) { +void X64CodeCache::PlaceHostCode(uint32_t guest_address, void* machine_code, + const EmitFunctionInfo& func_info, + void*& code_execute_address_out, + void*& code_write_address_out) { // Same for now. We may use different pools or whatnot later on, like when // we only want to place guest code in a serialized cache on disk. - return PlaceGuestCode(guest_address, machine_code, func_info, nullptr); + PlaceGuestCode(guest_address, machine_code, func_info, nullptr, + code_execute_address_out, code_write_address_out); } -void* X64CodeCache::PlaceGuestCode(uint32_t guest_address, void* machine_code, - const EmitFunctionInfo& func_info, - GuestFunction* function_info) { +void X64CodeCache::PlaceGuestCode(uint32_t guest_address, void* machine_code, + const EmitFunctionInfo& func_info, + GuestFunction* function_info, + void*& code_execute_address_out, + void*& code_write_address_out) { // Hold a lock while we bump the pointers up. This is important as the // unwind table requires entries AND code to be sorted in order. size_t low_mark; size_t high_mark; - uint8_t* code_address; + uint8_t* code_execute_address; UnwindReservation unwind_reservation; { auto global_lock = global_critical_region_.Acquire(); @@ -149,26 +185,33 @@ void* X64CodeCache::PlaceGuestCode(uint32_t guest_address, void* machine_code, // Reserve code. // Always move the code to land on 16b alignment. - code_address = generated_code_base_ + generated_code_offset_; + code_execute_address = + generated_code_execute_base_ + generated_code_offset_; + code_execute_address_out = code_execute_address; + uint8_t* code_write_address = + generated_code_write_base_ + generated_code_offset_; + code_write_address_out = code_write_address; generated_code_offset_ += xe::round_up(func_info.code_size.total, 16); - auto tail_address = generated_code_base_ + generated_code_offset_; + auto tail_write_address = + generated_code_write_base_ + generated_code_offset_; // Reserve unwind info. // We go on the high size of the unwind info as we don't know how big we // need it, and a few extra bytes of padding isn't the worst thing. - unwind_reservation = - RequestUnwindReservation(generated_code_base_ + generated_code_offset_); + unwind_reservation = RequestUnwindReservation(generated_code_write_base_ + + generated_code_offset_); generated_code_offset_ += xe::round_up(unwind_reservation.data_size, 16); - auto end_address = generated_code_base_ + generated_code_offset_; + auto end_write_address = + generated_code_write_base_ + generated_code_offset_; high_mark = generated_code_offset_; // Store in map. It is maintained in sorted order of host PC dependent on // us also being append-only. generated_code_map_.emplace_back( - (uint64_t(code_address - generated_code_base_) << 32) | + (uint64_t(code_execute_address - generated_code_execute_base_) << 32) | generated_code_offset_, function_info); @@ -185,21 +228,30 @@ void* X64CodeCache::PlaceGuestCode(uint32_t guest_address, void* machine_code, if (high_mark <= old_commit_mark) break; new_commit_mark = old_commit_mark + 16 * 1024 * 1024; - xe::memory::AllocFixed(generated_code_base_, new_commit_mark, - xe::memory::AllocationType::kCommit, - xe::memory::PageAccess::kExecuteReadWrite); + if (generated_code_execute_base_ == generated_code_write_base_) { + xe::memory::AllocFixed(generated_code_execute_base_, new_commit_mark, + xe::memory::AllocationType::kCommit, + xe::memory::PageAccess::kExecuteReadWrite); + } else { + xe::memory::AllocFixed(generated_code_execute_base_, new_commit_mark, + xe::memory::AllocationType::kCommit, + xe::memory::PageAccess::kExecuteReadOnly); + xe::memory::AllocFixed(generated_code_write_base_, new_commit_mark, + xe::memory::AllocationType::kCommit, + xe::memory::PageAccess::kReadWrite); + } } while (generated_code_commit_mark_.compare_exchange_weak( old_commit_mark, new_commit_mark)); // Copy code. - std::memcpy(code_address, machine_code, func_info.code_size.total); + std::memcpy(code_write_address, machine_code, func_info.code_size.total); // Fill unused slots with 0xCC - std::memset(tail_address, 0xCC, - static_cast(end_address - tail_address)); + std::memset(tail_write_address, 0xCC, + static_cast(end_write_address - tail_write_address)); // Notify subclasses of placed code. - PlaceCode(guest_address, machine_code, func_info, code_address, + PlaceCode(guest_address, machine_code, func_info, code_execute_address, unwind_reservation); } @@ -214,7 +266,7 @@ void* X64CodeCache::PlaceGuestCode(uint32_t guest_address, void* machine_code, iJIT_Method_Load_V2 method = {0}; method.method_id = iJIT_GetNewMethodID(); - method.method_load_address = code_address; + method.method_load_address = code_execute_address; method.method_size = uint32_t(code_size); method.method_name = const_cast(method_name.data()); method.module_name = function_info @@ -230,10 +282,9 @@ void* X64CodeCache::PlaceGuestCode(uint32_t guest_address, void* machine_code, if (guest_address && indirection_table_base_) { uint32_t* indirection_slot = reinterpret_cast( indirection_table_base_ + (guest_address - kIndirectionTableBase)); - *indirection_slot = uint32_t(reinterpret_cast(code_address)); + *indirection_slot = + uint32_t(reinterpret_cast(code_execute_address)); } - - return code_address; } uint32_t X64CodeCache::PlaceData(const void* data, size_t length) { @@ -245,7 +296,7 @@ uint32_t X64CodeCache::PlaceData(const void* data, size_t length) { // Reserve code. // Always move the code to land on 16b alignment. - data_address = generated_code_base_ + generated_code_offset_; + data_address = generated_code_write_base_ + generated_code_offset_; generated_code_offset_ += xe::round_up(length, 16); high_mark = generated_code_offset_; @@ -260,9 +311,18 @@ uint32_t X64CodeCache::PlaceData(const void* data, size_t length) { if (high_mark <= old_commit_mark) break; new_commit_mark = old_commit_mark + 16 * 1024 * 1024; - xe::memory::AllocFixed(generated_code_base_, new_commit_mark, - xe::memory::AllocationType::kCommit, - xe::memory::PageAccess::kExecuteReadWrite); + if (generated_code_execute_base_ == generated_code_write_base_) { + xe::memory::AllocFixed(generated_code_execute_base_, new_commit_mark, + xe::memory::AllocationType::kCommit, + xe::memory::PageAccess::kExecuteReadWrite); + } else { + xe::memory::AllocFixed(generated_code_execute_base_, new_commit_mark, + xe::memory::AllocationType::kCommit, + xe::memory::PageAccess::kExecuteReadOnly); + xe::memory::AllocFixed(generated_code_write_base_, new_commit_mark, + xe::memory::AllocationType::kCommit, + xe::memory::PageAccess::kReadWrite); + } } while (generated_code_commit_mark_.compare_exchange_weak(old_commit_mark, new_commit_mark)); @@ -273,7 +333,7 @@ uint32_t X64CodeCache::PlaceData(const void* data, size_t length) { } GuestFunction* X64CodeCache::LookupFunction(uint64_t host_pc) { - uint32_t key = uint32_t(host_pc - kGeneratedCodeBase); + uint32_t key = uint32_t(host_pc - kGeneratedCodeExecuteBase); void* fn_entry = std::bsearch( &key, generated_code_map_.data(), generated_code_map_.size() + 1, sizeof(std::pair), diff --git a/src/xenia/cpu/backend/x64/x64_code_cache.h b/src/xenia/cpu/backend/x64/x64_code_cache.h index 9f7424ec8..021e5e684 100644 --- a/src/xenia/cpu/backend/x64/x64_code_cache.h +++ b/src/xenia/cpu/backend/x64/x64_code_cache.h @@ -11,6 +11,8 @@ #define XENIA_CPU_BACKEND_X64_X64_CODE_CACHE_H_ #include +#include +#include #include #include #include @@ -46,8 +48,10 @@ class X64CodeCache : public CodeCache { virtual bool Initialize(); const std::filesystem::path& file_name() const override { return file_name_; } - uint32_t base_address() const override { return kGeneratedCodeBase; } - uint32_t total_size() const override { return kGeneratedCodeSize; } + uintptr_t execute_base_address() const override { + return kGeneratedCodeExecuteBase; + } + size_t total_size() const override { return kGeneratedCodeSize; } // TODO(benvanik): ELF serialization/etc // TODO(benvanik): keep track of code blocks @@ -59,11 +63,15 @@ class X64CodeCache : public CodeCache { void CommitExecutableRange(uint32_t guest_low, uint32_t guest_high); - void* PlaceHostCode(uint32_t guest_address, void* machine_code, - const EmitFunctionInfo& func_info); - void* PlaceGuestCode(uint32_t guest_address, void* machine_code, - const EmitFunctionInfo& func_info, - GuestFunction* function_info); + void PlaceHostCode(uint32_t guest_address, void* machine_code, + const EmitFunctionInfo& func_info, + void*& code_execute_address_out, + void*& code_write_address_out); + void PlaceGuestCode(uint32_t guest_address, void* machine_code, + const EmitFunctionInfo& func_info, + GuestFunction* function_info, + void*& code_execute_address_out, + void*& code_write_address_out); uint32_t PlaceData(const void* data, size_t length); GuestFunction* LookupFunction(uint64_t host_pc) override; @@ -71,13 +79,16 @@ class X64CodeCache : public CodeCache { protected: // All executable code falls within 0x80000000 to 0x9FFFFFFF, so we can // only map enough for lookups within that range. - static const uint64_t kIndirectionTableBase = 0x80000000; - static const uint64_t kIndirectionTableSize = 0x1FFFFFFF; + static const size_t kIndirectionTableSize = 0x1FFFFFFF; + static const uintptr_t kIndirectionTableBase = 0x80000000; // The code range is 512MB, but we know the total code games will have is // pretty small (dozens of mb at most) and our expansion is reasonablish // so 256MB should be more than enough. - static const uint64_t kGeneratedCodeBase = 0xA0000000; - static const uint64_t kGeneratedCodeSize = 0x0FFFFFFF; + static const size_t kGeneratedCodeSize = 0x0FFFFFFF; + static const uintptr_t kGeneratedCodeExecuteBase = 0xA0000000; + // Used for writing when PageAccess::kExecuteReadWrite is not supported. + static const uintptr_t kGeneratedCodeWriteBase = + kGeneratedCodeExecuteBase + kGeneratedCodeSize + 1; // This is picked to be high enough to cover whatever we can reasonably // expect. If we hit issues with this it probably means some corner case @@ -96,7 +107,8 @@ class X64CodeCache : public CodeCache { return UnwindReservation(); } virtual void PlaceCode(uint32_t guest_address, void* machine_code, - const EmitFunctionInfo& func_info, void* code_address, + const EmitFunctionInfo& func_info, + void* code_execute_address, UnwindReservation unwind_reservation) {} std::filesystem::path file_name_; @@ -114,9 +126,13 @@ class X64CodeCache : public CodeCache { // the generated code table that correspond to the PPC functions in guest // space. uint8_t* indirection_table_base_ = nullptr; - // Fixed at kGeneratedCodeBase and holding all generated code, growing as - // needed. - uint8_t* generated_code_base_ = nullptr; + // Fixed at kGeneratedCodeExecuteBase and holding all generated code, growing + // as needed. + uint8_t* generated_code_execute_base_ = nullptr; + // View of the memory that backs generated_code_execute_base_ when + // PageAccess::kExecuteReadWrite is not supported, for writing the generated + // code. Equals to generated_code_execute_base_ when it's supported. + uint8_t* generated_code_write_base_ = nullptr; // Current offset to empty space in generated code. size_t generated_code_offset_ = 0; // Current high water mark of COMMITTED code. diff --git a/src/xenia/cpu/backend/x64/x64_code_cache_posix.cc b/src/xenia/cpu/backend/x64/x64_code_cache_posix.cc index 490ab2ce9..e889eba0c 100644 --- a/src/xenia/cpu/backend/x64/x64_code_cache_posix.cc +++ b/src/xenia/cpu/backend/x64/x64_code_cache_posix.cc @@ -27,7 +27,7 @@ class PosixX64CodeCache : public X64CodeCache { /* UnwindReservation RequestUnwindReservation(uint8_t* entry_address) override; void PlaceCode(uint32_t guest_address, void* machine_code, size_t code_size, - size_t stack_size, void* code_address, + size_t stack_size, void* code_execute_address, UnwindReservation unwind_reservation) override; void InitializeUnwindEntry(uint8_t* unwind_entry_address, diff --git a/src/xenia/cpu/backend/x64/x64_code_cache_win.cc b/src/xenia/cpu/backend/x64/x64_code_cache_win.cc index aed5d3f60..0aff67034 100644 --- a/src/xenia/cpu/backend/x64/x64_code_cache_win.cc +++ b/src/xenia/cpu/backend/x64/x64_code_cache_win.cc @@ -107,11 +107,12 @@ class Win32X64CodeCache : public X64CodeCache { private: UnwindReservation RequestUnwindReservation(uint8_t* entry_address) override; void PlaceCode(uint32_t guest_address, void* machine_code, - const EmitFunctionInfo& func_info, void* code_address, + const EmitFunctionInfo& func_info, void* code_execute_address, UnwindReservation unwind_reservation) override; void InitializeUnwindEntry(uint8_t* unwind_entry_address, - size_t unwind_table_slot, void* code_address, + size_t unwind_table_slot, + void* code_execute_address, const EmitFunctionInfo& func_info); // Growable function table system handle. @@ -140,9 +141,9 @@ Win32X64CodeCache::~Win32X64CodeCache() { delete_growable_table_(unwind_table_handle_); } } else { - if (generated_code_base_) { + if (generated_code_execute_base_) { RtlDeleteFunctionTable(reinterpret_cast( - reinterpret_cast(generated_code_base_) | 0x3)); + reinterpret_cast(generated_code_execute_base_) | 0x3)); } } } @@ -176,11 +177,12 @@ bool Win32X64CodeCache::Initialize() { // Create table and register with the system. It's empty now, but we'll grow // it as functions are added. if (supports_growable_table_) { - if (add_growable_table_(&unwind_table_handle_, unwind_table_.data(), - unwind_table_count_, DWORD(unwind_table_.size()), - reinterpret_cast(generated_code_base_), - reinterpret_cast(generated_code_base_ + - kGeneratedCodeSize))) { + if (add_growable_table_( + &unwind_table_handle_, unwind_table_.data(), unwind_table_count_, + DWORD(unwind_table_.size()), + reinterpret_cast(generated_code_execute_base_), + reinterpret_cast(generated_code_execute_base_ + + kGeneratedCodeSize))) { XELOGE("Unable to create unwind function table"); return false; } @@ -188,8 +190,9 @@ bool Win32X64CodeCache::Initialize() { // Install a callback that the debugger will use to lookup unwind info on // demand. if (!RtlInstallFunctionTableCallback( - reinterpret_cast(generated_code_base_) | 0x3, - reinterpret_cast(generated_code_base_), kGeneratedCodeSize, + reinterpret_cast(generated_code_execute_base_) | 0x3, + reinterpret_cast(generated_code_execute_base_), + kGeneratedCodeSize, [](DWORD64 control_pc, PVOID context) { auto code_cache = reinterpret_cast(context); return reinterpret_cast( @@ -216,11 +219,12 @@ Win32X64CodeCache::RequestUnwindReservation(uint8_t* entry_address) { void Win32X64CodeCache::PlaceCode(uint32_t guest_address, void* machine_code, const EmitFunctionInfo& func_info, - void* code_address, + void* code_execute_address, UnwindReservation unwind_reservation) { // Add unwind info. InitializeUnwindEntry(unwind_reservation.entry_address, - unwind_reservation.table_slot, code_address, func_info); + unwind_reservation.table_slot, code_execute_address, + func_info); if (supports_growable_table_) { // Notify that the unwind table has grown. @@ -229,13 +233,15 @@ void Win32X64CodeCache::PlaceCode(uint32_t guest_address, void* machine_code, } // This isn't needed on x64 (probably), but is convention. - FlushInstructionCache(GetCurrentProcess(), code_address, + // On UWP, FlushInstructionCache available starting from 10.0.16299.0. + // https://docs.microsoft.com/en-us/uwp/win32-and-com/win32-apis + FlushInstructionCache(GetCurrentProcess(), code_execute_address, func_info.code_size.total); } void Win32X64CodeCache::InitializeUnwindEntry( - uint8_t* unwind_entry_address, size_t unwind_table_slot, void* code_address, - const EmitFunctionInfo& func_info) { + uint8_t* unwind_entry_address, size_t unwind_table_slot, + void* code_execute_address, const EmitFunctionInfo& func_info) { auto unwind_info = reinterpret_cast(unwind_entry_address); UNWIND_CODE* unwind_code = nullptr; @@ -299,10 +305,12 @@ void Win32X64CodeCache::InitializeUnwindEntry( // Add entry. auto& fn_entry = unwind_table_[unwind_table_slot]; fn_entry.BeginAddress = - (DWORD)(reinterpret_cast(code_address) - generated_code_base_); + DWORD(reinterpret_cast(code_execute_address) - + generated_code_execute_base_); fn_entry.EndAddress = - (DWORD)(fn_entry.BeginAddress + func_info.code_size.total); - fn_entry.UnwindData = (DWORD)(unwind_entry_address - generated_code_base_); + DWORD(fn_entry.BeginAddress + func_info.code_size.total); + fn_entry.UnwindData = + DWORD(unwind_entry_address - generated_code_execute_base_); } void* Win32X64CodeCache::LookupUnwindInfo(uint64_t host_pc) { @@ -310,8 +318,8 @@ void* Win32X64CodeCache::LookupUnwindInfo(uint64_t host_pc) { &host_pc, unwind_table_.data(), unwind_table_count_, sizeof(RUNTIME_FUNCTION), [](const void* key_ptr, const void* element_ptr) { - auto key = - *reinterpret_cast(key_ptr) - kGeneratedCodeBase; + auto key = *reinterpret_cast(key_ptr) - + kGeneratedCodeExecuteBase; auto element = reinterpret_cast(element_ptr); if (key < element->BeginAddress) { return -1; diff --git a/src/xenia/cpu/backend/x64/x64_emitter.cc b/src/xenia/cpu/backend/x64/x64_emitter.cc index e772276e7..37d1cdc77 100644 --- a/src/xenia/cpu/backend/x64/x64_emitter.cc +++ b/src/xenia/cpu/backend/x64/x64_emitter.cc @@ -125,20 +125,26 @@ void* X64Emitter::Emplace(const EmitFunctionInfo& func_info, // top_ points to the Xbyak buffer, and since we are in AutoGrow mode // it has pending relocations. We copy the top_ to our buffer, swap the // pointer, relocate, then return the original scratch pointer for use. + // top_ is used by Xbyak's ready() as both write base pointer and the absolute + // address base, which would not work on platforms not supporting writable + // executable memory, but Xenia doesn't use absolute label addresses in the + // generated code. uint8_t* old_address = top_; - void* new_address; + void* new_execute_address; + void* new_write_address; assert_true(func_info.code_size.total == size_); if (function) { - new_address = code_cache_->PlaceGuestCode(function->address(), top_, - func_info, function); + code_cache_->PlaceGuestCode(function->address(), top_, func_info, function, + new_execute_address, new_write_address); } else { - new_address = code_cache_->PlaceHostCode(0, top_, func_info); + code_cache_->PlaceHostCode(0, top_, func_info, new_execute_address, + new_write_address); } - top_ = reinterpret_cast(new_address); + top_ = reinterpret_cast(new_write_address); ready(); top_ = old_address; reset(); - return new_address; + return new_execute_address; } bool X64Emitter::Emit(HIRBuilder* builder, EmitFunctionInfo& func_info) { diff --git a/src/xenia/cpu/ppc/testing/ppc_testing_native_main.cc b/src/xenia/cpu/ppc/testing/ppc_testing_native_main.cc index c5f835133..074552d36 100644 --- a/src/xenia/cpu/ppc/testing/ppc_testing_native_main.cc +++ b/src/xenia/cpu/ppc/testing/ppc_testing_native_main.cc @@ -177,6 +177,9 @@ class TestRunner { public: TestRunner() { memory_size_ = 64 * 1024 * 1024; + // FIXME(Triang3l): If this is ever compiled for a platform without + // xe::memory::IsWritableExecutableMemorySupported, two memory mappings must + // be used. memory_ = memory::AllocFixed(nullptr, memory_size_, memory::AllocationType::kReserveCommit, memory::PageAccess::kExecuteReadWrite); diff --git a/src/xenia/cpu/stack_walker_win.cc b/src/xenia/cpu/stack_walker_win.cc index 4339e3a8b..cbfa96023 100644 --- a/src/xenia/cpu/stack_walker_win.cc +++ b/src/xenia/cpu/stack_walker_win.cc @@ -9,6 +9,7 @@ #include "xenia/cpu/stack_walker.h" +#include #include #include "xenia/base/logging.h" @@ -120,8 +121,8 @@ class Win32StackWalker : public StackWalker { // They never change, so it's fine even if they are touched from multiple // threads. code_cache_ = code_cache; - code_cache_min_ = code_cache_->base_address(); - code_cache_max_ = code_cache_->base_address() + code_cache_->total_size(); + code_cache_min_ = code_cache_->execute_base_address(); + code_cache_max_ = code_cache_min_ + code_cache_->total_size(); } bool Initialize() { @@ -297,13 +298,13 @@ class Win32StackWalker : public StackWalker { std::mutex dbghelp_mutex_; static xe::cpu::backend::CodeCache* code_cache_; - static uint32_t code_cache_min_; - static uint32_t code_cache_max_; + static uintptr_t code_cache_min_; + static uintptr_t code_cache_max_; }; xe::cpu::backend::CodeCache* Win32StackWalker::code_cache_ = nullptr; -uint32_t Win32StackWalker::code_cache_min_ = 0; -uint32_t Win32StackWalker::code_cache_max_ = 0; +uintptr_t Win32StackWalker::code_cache_min_ = 0; +uintptr_t Win32StackWalker::code_cache_max_ = 0; std::unique_ptr StackWalker::Create( backend::CodeCache* code_cache) { diff --git a/src/xenia/emulator.cc b/src/xenia/emulator.cc index 7f62efc7c..aca6bd52a 100644 --- a/src/xenia/emulator.cc +++ b/src/xenia/emulator.cc @@ -513,7 +513,7 @@ bool Emulator::ExceptionCallbackThunk(Exception* ex, void* data) { bool Emulator::ExceptionCallback(Exception* ex) { // Check to see if the exception occurred in guest code. auto code_cache = processor()->backend()->code_cache(); - auto code_base = code_cache->base_address(); + auto code_base = code_cache->execute_base_address(); auto code_end = code_base + code_cache->total_size(); if (!processor()->is_debugger_attached() && debugging::IsDebuggerAttached()) { diff --git a/src/xenia/memory.cc b/src/xenia/memory.cc index c6e55c98b..5b631e416 100644 --- a/src/xenia/memory.cc +++ b/src/xenia/memory.cc @@ -621,6 +621,10 @@ uint32_t FromPageAccess(xe::memory::PageAccess protect) { return kMemoryProtectRead; case memory::PageAccess::kReadWrite: return kMemoryProtectRead | kMemoryProtectWrite; + case memory::PageAccess::kExecuteReadOnly: + // Guest memory cannot be executable - this should never happen :) + assert_always(); + return kMemoryProtectRead; case memory::PageAccess::kExecuteReadWrite: // Guest memory cannot be executable - this should never happen :) assert_always(); From d353cade76cf74136dbdfdd884f170b74160f207 Mon Sep 17 00:00:00 2001 From: Triang3l Date: Tue, 24 Nov 2020 22:49:56 +0300 Subject: [PATCH 14/16] [Base] mapped_memory_win: more explicit invalid handle values --- src/xenia/base/mapped_memory_win.cc | 37 ++++++++++++++++------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/src/xenia/base/mapped_memory_win.cc b/src/xenia/base/mapped_memory_win.cc index 53b5b8ffe..3c9da7554 100644 --- a/src/xenia/base/mapped_memory_win.cc +++ b/src/xenia/base/mapped_memory_win.cc @@ -22,6 +22,11 @@ namespace xe { class Win32MappedMemory : public MappedMemory { public: + // CreateFile returns INVALID_HANDLE_VALUE in case of failure. + static constexpr HANDLE kFileHandleInvalid = INVALID_HANDLE_VALUE; + // CreateFileMapping returns nullptr in case of failure. + static constexpr HANDLE kMappingHandleInvalid = nullptr; + Win32MappedMemory(const std::filesystem::path& path, Mode mode) : MappedMemory(path, mode) {} @@ -29,10 +34,10 @@ class Win32MappedMemory : public MappedMemory { if (data_) { UnmapViewOfFile(data_); } - if (mapping_handle) { + if (mapping_handle != kMappingHandleInvalid) { CloseHandle(mapping_handle); } - if (file_handle != INVALID_HANDLE_VALUE) { + if (file_handle != kFileHandleInvalid) { CloseHandle(file_handle); } } @@ -42,11 +47,11 @@ class Win32MappedMemory : public MappedMemory { UnmapViewOfFile(data_); data_ = nullptr; } - if (mapping_handle) { + if (mapping_handle != kMappingHandleInvalid) { CloseHandle(mapping_handle); - mapping_handle = nullptr; + mapping_handle = kMappingHandleInvalid; } - if (file_handle != INVALID_HANDLE_VALUE) { + if (file_handle != kFileHandleInvalid) { if (truncate_size) { LONG distance_high = truncate_size >> 32; SetFilePointer(file_handle, truncate_size & 0xFFFFFFFF, &distance_high, @@ -55,7 +60,7 @@ class Win32MappedMemory : public MappedMemory { } CloseHandle(file_handle); - file_handle = INVALID_HANDLE_VALUE; + file_handle = kFileHandleInvalid; } } @@ -88,8 +93,8 @@ class Win32MappedMemory : public MappedMemory { return true; } - HANDLE file_handle = INVALID_HANDLE_VALUE; - HANDLE mapping_handle = nullptr; + HANDLE file_handle = kFileHandleInvalid; + HANDLE mapping_handle = kMappingHandleInvalid; DWORD view_access_ = 0; }; @@ -130,7 +135,7 @@ std::unique_ptr MappedMemory::Open( mm->file_handle = CreateFile(path.c_str(), file_access, file_share, nullptr, create_mode, FILE_ATTRIBUTE_NORMAL, nullptr); - if (mm->file_handle == INVALID_HANDLE_VALUE) { + if (mm->file_handle == Win32MappedMemory::kFileHandleInvalid) { return nullptr; } @@ -143,7 +148,7 @@ std::unique_ptr MappedMemory::Open( CreateFileMappingFromApp(mm->file_handle, nullptr, ULONG(mapping_protect), ULONG64(aligned_length), nullptr); #endif - if (!mm->mapping_handle) { + if (mm->mapping_handle == Win32MappedMemory::kMappingHandleInvalid) { return nullptr; } @@ -220,8 +225,8 @@ class Win32ChunkedMappedMemoryWriter : public ChunkedMappedMemoryWriter { class Chunk { public: explicit Chunk(size_t capacity) - : file_handle_(INVALID_HANDLE_VALUE), - mapping_handle_(nullptr), + : file_handle_(Win32MappedMemory::kFileHandleInvalid), + mapping_handle_(Win32MappedMemory::kMappingHandleInvalid), data_(nullptr), offset_(0), capacity_(capacity), @@ -231,10 +236,10 @@ class Win32ChunkedMappedMemoryWriter : public ChunkedMappedMemoryWriter { if (data_) { UnmapViewOfFile(data_); } - if (mapping_handle_) { + if (mapping_handle_ != Win32MappedMemory::kMappingHandleInvalid) { CloseHandle(mapping_handle_); } - if (file_handle_ != INVALID_HANDLE_VALUE) { + if (file_handle_ != Win32MappedMemory::kFileHandleInvalid) { CloseHandle(file_handle_); } } @@ -248,7 +253,7 @@ class Win32ChunkedMappedMemoryWriter : public ChunkedMappedMemoryWriter { file_handle_ = CreateFile(path.c_str(), file_access, file_share, nullptr, create_mode, FILE_ATTRIBUTE_NORMAL, nullptr); - if (file_handle_ == INVALID_HANDLE_VALUE) { + if (file_handle_ == Win32MappedMemory::kFileHandleInvalid) { return false; } @@ -261,7 +266,7 @@ class Win32ChunkedMappedMemoryWriter : public ChunkedMappedMemoryWriter { ULONG(mapping_protect), ULONG64(capacity_), nullptr); #endif - if (!mapping_handle_) { + if (mapping_handle_ == Win32MappedMemory::kMappingHandleInvalid) { return false; } From 30b9719ee3a3322e5fb0fc41995ed00e202571a4 Mon Sep 17 00:00:00 2001 From: Satori Date: Mon, 23 Nov 2020 23:08:00 +0000 Subject: [PATCH 15/16] [Build] Add stub command for source file generation --- xenia-build | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 95 insertions(+), 1 deletion(-) diff --git a/xenia-build b/xenia-build index 20c56cb51..4fcf03f44 100755 --- a/xenia-build +++ b/xenia-build @@ -7,7 +7,7 @@ Run with --help or no arguments for possible commands. """ from __future__ import print_function - +from datetime import datetime import argparse import json import os @@ -271,6 +271,48 @@ def generate_version_h(): with open('build/version.h', 'w') as f: f.write(contents) +def generate_source_class(path): + header_path = '{}.h'.format(path) + source_path = '{}.cc'.format(path) + + if os.path.isfile(header_path) or os.path.isfile(source_path): + print('ERROR: Target file already exists') + return 1 + + if generate_source_file(header_path) > 0: + return 1 + if generate_source_file(source_path) > 0: + # remove header if source file generation failed + os.remove(os.path.join(source_root, header_path)) + return 1 + + return 0 + +def generate_source_file(path): + """Generates a source file at the specified path containing copyright notice + """ + copyright = '''/** + ****************************************************************************** + * Xenia : Xbox 360 Emulator Research Project * + ****************************************************************************** + * Copyright {} Ben Vanik. All rights reserved. * + * Released under the BSD license - see LICENSE in the root for more details. * + ****************************************************************************** + */'''.format(datetime.now().year) + + if os.path.isfile(path): + print('ERROR: Target file already exists') + return 1 + try: + with open(path, 'w') as f: + f.write(copyright) + except Exception as e: + print('ERROR: Could not write to file [path {}]'.format(path)) + return 1 + + return 0 + + def git_get_head_info(): """Queries the current branch and commit checksum from git. @@ -513,6 +555,7 @@ def discover_commands(subparsers): 'format': FormatCommand(subparsers), 'style': StyleCommand(subparsers), 'tidy': TidyCommand(subparsers), + 'stub': StubCommand(subparsers), } if sys.platform == 'win32': commands['buildhlsl'] = BuildHlslCommand(subparsers) @@ -1540,6 +1583,57 @@ class TidyCommand(Command): print('Tidy completed successfully.') return 0 +class StubCommand(Command): + """'stub' command.""" + + def __init__(self, subparsers, *args, **kwargs): + super(StubCommand, self).__init__( + subparsers, + name='stub', + help_short='Create new file(s) in the xenia source tree and run premake', + *args, **kwargs) + self.parser.add_argument( + '--file', default=None, + help='Generate a source file at the provided location in the source tree') + self.parser.add_argument( + '--class', default=None, + help='Generate a class pair (.cc/.h) at the provided location in the source tree') + self.parser.add_argument( + '--target_os', default=None, + help='Target OS passed to premake, for cross-compilation') + + def execute(self, args, pass_args, cwd): + root = os.path.dirname(os.path.realpath(__file__)) + source_root = os.path.join(root, os.path.normpath('src/xenia')) + + if args['class']: + path = os.path.normpath(os.path.join(source_root, args['class'])) + target_dir = os.path.dirname(path) + class_name = os.path.basename(path) + + status = generate_source_class(path) + if status > 0: + return status + + print('Created class \'{0}\' at {1}'.format(class_name, target_dir)) + + elif args['file']: + path = os.path.normpath(os.path.join(source_root, args['file'])) + target_dir = os.path.dirname(path) + file_name = os.path.basename(path) + + status = generate_source_file(path) + if status > 0: + return status + + print('Created file \'{0}\' at {1}'.format(file_name, target_dir)) + + else: + print('ERROR: Please specify a file/class to generate') + return 1 + + run_platform_premake(target_os_override=args['target_os']) + return 0 class DevenvCommand(Command): """'devenv' command.""" From 6ab665f6e2fe99d912fdc744f21809893fbc7765 Mon Sep 17 00:00:00 2001 From: gibbed Date: Wed, 25 Nov 2020 18:44:24 -0600 Subject: [PATCH 16/16] Use xenia-base entrypoint for test suites. Use xenia-base entrypoint for test suites. Fixes a bug where we were expecting wchar data in main, which is incorrect, causing invalid args to be parsed. --- tools/build/scripts/test_suite.lua | 4 +++ tools/build/src/test_suite_main.cc | 48 ++++++++++++------------------ 2 files changed, 23 insertions(+), 29 deletions(-) diff --git a/tools/build/scripts/test_suite.lua b/tools/build/scripts/test_suite.lua index 096968f7c..afb8a9b31 100644 --- a/tools/build/scripts/test_suite.lua +++ b/tools/build/scripts/test_suite.lua @@ -26,8 +26,12 @@ local function combined_test_suite(test_suite_name, project_root, base_path, con })) links(merge_arrays(config["links"], { })) + defines({ + "XE_TEST_SUITE_NAME=\""..test_suite_name.."\"", + }) files({ project_root.."/"..build_tools_src.."/test_suite_main.cc", + project_root.."/src/xenia/base/main_"..platform_suffix..".cc", base_path.."/**_test.cc", }) end diff --git a/tools/build/src/test_suite_main.cc b/tools/build/src/test_suite_main.cc index b5daf3972..d84c7047c 100644 --- a/tools/build/src/test_suite_main.cc +++ b/tools/build/src/test_suite_main.cc @@ -13,44 +13,34 @@ #include #include +#include "xenia/base/cvar.h" +#include "xenia/base/main.h" + #define CATCH_CONFIG_RUNNER #include "third_party/catch/include/catch.hpp" -#include "xenia/base/cvar.h" namespace xe { +namespace test_suite { -bool has_console_attached() { return true; } - -// Used in console mode apps; automatically picked based on subsystem. -int Main(int argc, char* argv[]) { - cvar::ParseLaunchArguments(argc, argv, "", std::vector()); +int test_suite_main(const std::vector& args) { + // Catch doesn't expose a way to pass a vector of strings, despite building a + // vector internally. + int argc = 0; + std::vector argv; + for (const auto& arg : args) { + argv.push_back(arg.c_str()); + argc++; + } // Run Catch. - int result = Catch::Session().run(argc, argv); - - return result; + return Catch::Session().run(argc, argv.data()); } +} // namespace test_suite } // namespace xe -#if _WIN32 -#include "xenia/base/platform_win.h" +#ifndef XE_TEST_SUITE_NAME +#error XE_TEST_SUITE_NAME is undefined! +#endif -extern "C" int main(int argc, wchar_t* argv[]) { - // Setup COM on the main thread. - // NOTE: this may fail if COM has already been initialized - that's OK. - CoInitializeEx(nullptr, COINIT_MULTITHREADED); - - // Convert all args to narrow, as gflags doesn't support wchar. - int argca = argc; - char** argva = (char**)alloca(sizeof(char*) * argca); - for (int n = 0; n < argca; n++) { - size_t len = wcslen(argv[n]); - argva[n] = (char*)alloca(len + 1); - std::wcstombs(argva[n], argv[n], len + 1); - } - return xe::Main(argc, argva); -} -#else -extern "C" int main(int argc, char* argv[]) { return xe::Main(argc, argv); } -#endif // _WIN32 +DEFINE_ENTRY_POINT(XE_TEST_SUITE_NAME, xe::test_suite::test_suite_main, "");