2022-12-04 11:03:45 +00:00
|
|
|
// SPDX-FileCopyrightText: 2019-2022 Connor McLaughlin <stenzek@gmail.com>
|
|
|
|
// SPDX-License-Identifier: (GPL-3.0 OR CC-BY-NC-ND-4.0)
|
|
|
|
|
2020-10-18 04:43:51 +00:00
|
|
|
#pragma once
|
2022-07-08 12:43:38 +00:00
|
|
|
#include "common/types.h"
|
2020-10-18 04:43:51 +00:00
|
|
|
|
|
|
|
namespace Common::PageFaultHandler {
|
|
|
|
enum class HandlerResult
|
|
|
|
{
|
|
|
|
ContinueExecution,
|
|
|
|
ExecuteNextHandler,
|
|
|
|
};
|
|
|
|
|
2023-10-28 03:57:06 +00:00
|
|
|
using Handler = HandlerResult (*)(void* exception_pc, void* fault_address, bool is_write);
|
2020-10-18 04:43:51 +00:00
|
|
|
|
2023-10-28 03:57:06 +00:00
|
|
|
bool InstallHandler(Handler callback);
|
|
|
|
bool RemoveHandler(Handler callback);
|
2020-10-18 04:43:51 +00:00
|
|
|
|
|
|
|
} // namespace Common::PageFaultHandler
|