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