4 changed files with 102 additions and 1 deletions
-
1src/core/CMakeLists.txt
-
64src/core/hle/kernel/k_event_info.h
-
2src/core/hle/kernel/svc.cpp
-
36src/core/hle/kernel/svc_types.h
@ -0,0 +1,64 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project |
|||
// SPDX-License-Identifier: GPL-2.0-or-later |
|||
|
|||
#pragma once |
|||
|
|||
#include <array> |
|||
|
|||
#include <boost/intrusive/list.hpp> |
|||
|
|||
#include "core/hle/kernel/slab_helpers.h" |
|||
#include "core/hle/kernel/svc_types.h" |
|||
|
|||
namespace Kernel { |
|||
|
|||
class KEventInfo : public KSlabAllocated<KEventInfo>, public boost::intrusive::list_base_hook<> { |
|||
public: |
|||
struct InfoCreateThread { |
|||
u32 thread_id{}; |
|||
uintptr_t tls_address{}; |
|||
}; |
|||
|
|||
struct InfoExitProcess { |
|||
Svc::ProcessExitReason reason{}; |
|||
}; |
|||
|
|||
struct InfoExitThread { |
|||
Svc::ThreadExitReason reason{}; |
|||
}; |
|||
|
|||
struct InfoException { |
|||
Svc::DebugException exception_type{}; |
|||
s32 exception_data_count{}; |
|||
uintptr_t exception_address{}; |
|||
std::array<uintptr_t, 4> exception_data{}; |
|||
}; |
|||
|
|||
struct InfoSystemCall { |
|||
s64 tick{}; |
|||
s32 id{}; |
|||
}; |
|||
|
|||
public: |
|||
KEventInfo() = default; |
|||
~KEventInfo() = default; |
|||
|
|||
public: |
|||
Svc::DebugEvent event{}; |
|||
u32 thread_id{}; |
|||
u32 flags{}; |
|||
bool is_attached{}; |
|||
bool continue_flag{}; |
|||
bool ignore_continue{}; |
|||
bool close_once{}; |
|||
union { |
|||
InfoCreateThread create_thread; |
|||
InfoExitProcess exit_process; |
|||
InfoExitThread exit_thread; |
|||
InfoException exception; |
|||
InfoSystemCall system_call; |
|||
} info{}; |
|||
KThread* debug_thread{}; |
|||
}; |
|||
|
|||
} // namespace Kernel |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue