Commit Graph

102 Commits

Author SHA1 Message Date
Triang3l cb0e18c7dc [Memory] BaseHeap::host_address_offset 2019-08-04 23:55:54 +03:00
Triang3l 25675cb8b8 [Memory] E0000000 adjustment in watches only for Windows 2019-08-04 23:10:59 +03:00
Triang3l d20c2fa9da [Memory/Vulkan] Move old memory watches to the Vulkan backend 2019-08-03 21:06:59 +03:00
Triang3l 0370f8bbd9 [Memory] Pass exact_range to watch callbacks 2019-08-03 19:16:04 +03:00
Triang3l 352f12f92e [D3D12] Switch from gflags to cvars 2019-08-03 16:53:23 +03:00
Jonathan Goyvaerts c1af632562 Replace all gflag implementations with cvar implementations 2019-08-03 02:34:07 +02:00
Triang3l 9d0986030f [Memory] Don't mark non-writable pages as watched 2019-07-31 08:40:26 +03:00
Triang3l 24383b9137 [Memory/D3D12] Unwatch up to 256 KB ranges 2019-07-31 00:18:12 +03:00
Triang3l b5fb84473d [Memory] Replace forgotten InvalidateRange in NtReadFile 2019-07-30 09:06:23 +03:00
Triang3l 4aceeb73c4 [Memory] Move new watches to heap-aware Memory from MMIOHandler 2019-07-30 08:00:20 +03:00
Triang3l 6e36101b42 [D3D12] Experimental write watch implementation for shared memory 2018-09-24 23:18:16 +03:00
Triang3l db625892ea [D3D12] Shared memory typo fix and improvements 2018-08-01 01:09:51 +03:00
Triang3l 4f7edff19d [D3D12] SHM: Watches prototype, some uploading 2018-07-26 22:52:26 +03:00
DrChat db53559611 Merge branch 'master' 2018-02-16 16:34:17 -06:00
DrChat 0cc2b0fc9f [Core] Protect the last 64kb of memory 2018-02-14 21:58:05 -06:00
DrChat d0460122f4 [Core] BaseHeap::QueryBaseAndSize 2018-02-10 21:58:44 -06:00
DrChat e3787c05c1 [Core] QueryRegionInfo - report the original allocation size 2018-02-10 19:14:58 -06:00
DrChat 325599948a [Core] Remove hardcoded type field from HeapAllocationInfo 2018-02-10 16:47:53 -06:00
DrChat 4db94473ec [Core] Memory::GetPhysicalHeap 2018-02-10 16:45:06 -06:00
DrChat 063db77346 [Core] Don't pass in old protection pointer if the caller doesn't need it 2017-12-20 17:54:31 -06:00
DrChat aaf281351d Format all code with new clang-format 2017-12-14 20:44:43 -06:00
Dr. Chat aee5601c68 xboxkrnl: Initial (untested) implementation of NtProtectVirtualMemory 2017-07-24 21:41:47 -05:00
Dr. Chat e388b74dbe BaseHeap::Release: Disallow freeing of 0x0 2017-05-17 04:44:48 -05:00
Dr. Chat 92859f5a28 Protect the first 64kb of virtual memory with no access permissions by default. 2016-08-03 18:46:15 -05:00
gibbed 16a15bab98 Exposed total page count. 2016-06-21 10:10:08 -05:00
gibbed d07e16b056 I'm bad. 2016-06-21 10:09:45 -05:00
gibbed 32e0ef397c Attempt at reporting something of an 'accurate' unreserved physical page
count. Still needs work.
2016-06-21 09:37:21 -05:00
gibbed 6a082c42d3 Fixed top-down memory allocations when alignment > page size. 2016-06-20 12:02:48 -05:00
Dr. Chat 0e3c113375 Physical write watches -> access watches (read and/or write watching) 2016-03-17 21:55:16 -05:00
Ben Vanik 431088d35e Faster clearing of heaps to speed up tests. 2015-12-29 20:26:01 -08:00
Dr. Chat 9ed81b6876 Fix not assigning write access to WriteCombine pages on restore. 2015-12-29 13:09:40 -08:00
Dr. Chat 5ef21d3714 memory: Write no access pages to the savefile. 2015-12-29 13:09:36 -08:00
Ben Vanik bbff23a8bb REBASE: Fixing Memory::Reset(). 2015-12-29 13:09:18 -08:00
Dr. Chat 432e32f7c2 memory Save/Restore 2015-12-29 13:09:18 -08:00
Ben Vanik ca8d658ffe Speeding up PPC tests significantly. 2015-12-27 12:03:30 -08:00
Ben Vanik 295c62c7a4 Guarding protect-on-release behavior behind --protect_on_release.
Workaround for #456 until it can be identified.
2015-12-05 23:27:25 -08:00
Ben Vanik 249b952de9 Adding some comments. 2015-12-02 17:37:48 -08:00
Dr. Chat c98d10545e Invalidate MMIO Ranges when memory is released or access protections are changed. 2015-11-08 19:14:06 -06:00
Dr. Chat a2bc0443f2 Quick-kill the MMIO handler if the fault address is above the mapping range. 2015-09-07 21:26:33 -05:00
Ben Vanik 068b2056ca Explode more gracefully on crashes while crashing. 2015-09-06 13:34:39 -07:00
Ben Vanik 3c96b6fa0a DANGER DANGER. Switching to global critical region.
This changes almost all locks held by guest threads to use a single global
critical region. This emulates the behavior on the PPC of disabling
interrupts (by calls like KeRaiseIrqlToDpcLevel or masking interrupts),
and prevents deadlocks from occuring when threads are suspended or
otherwise blocked.
This has performance implications and a pass is needed to ensure the
locking is as granular as possible. It could also break everything
because it's fundamentally unsound. We'll see.
2015-09-06 09:30:54 -07:00
Rhodan81 9427d03d5a Fix crash in memory allocation when there is no space to fit entire page
range
2015-09-05 15:53:05 +02:00
Ben Vanik 5e08889d93 More style cleanup. 2015-08-06 20:17:01 -07:00
sephiroth99 510a8e59cf memory: fix out of bounds access in BaseHeap::AllocRange
Prevent out of bounds access of page_table_ by making sure the requested
page count fits in the requested page range.
2015-07-30 02:27:55 -04:00
Ben Vanik 12a29371e3 Clang fixes. 2015-07-19 18:32:48 -07:00
Ben Vanik 91d7acf59e Fixing some particularly bad /W4. 2015-07-18 23:04:21 -07:00
Ben Vanik 8154d1dad6 Moving xe::Memory and code cache to abstracted APIs. 2015-07-15 22:10:05 -07:00
Ben Vanik 6cf29b969d Abstraction for VirtualAlloc/VirtualFree. 2015-07-15 19:05:08 -07:00
Ben Vanik 58c3a1ba79 VirtualProtect platform abstraction. 2015-07-15 18:20:05 -07:00
Ben Vanik fc7695f874 Take the whole 64k page at 0x0. 2015-06-23 18:06:37 -07:00