[Memory, D3D12] Various refactoring from data provider development
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#define XENIA_CPU_MMIO_HANDLER_H_
|
||||
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
#include <vector>
|
||||
|
||||
#include "xenia/base/mutex.h"
|
||||
@@ -44,12 +45,13 @@ class MMIOHandler {
|
||||
|
||||
typedef uint32_t (*HostToGuestVirtual)(const void* context,
|
||||
const void* host_address);
|
||||
typedef bool (*AccessViolationCallback)(void* context, void* host_address,
|
||||
bool is_write);
|
||||
typedef bool (*AccessViolationCallback)(
|
||||
std::unique_lock<std::recursive_mutex> global_lock_locked_once,
|
||||
void* context, void* host_address, bool is_write);
|
||||
|
||||
// access_violation_callback is called in global_critical_region, so if
|
||||
// multiple threads trigger an access violation in the same page, the callback
|
||||
// will be called only once.
|
||||
// access_violation_callback is called with global_critical_region locked once
|
||||
// on the thread, so if multiple threads trigger an access violation in the
|
||||
// same page, the callback will be called only once.
|
||||
static std::unique_ptr<MMIOHandler> Install(
|
||||
uint8_t* virtual_membase, uint8_t* physical_membase, uint8_t* membase_end,
|
||||
HostToGuestVirtual host_to_guest_virtual,
|
||||
|
||||
Reference in New Issue
Block a user