diff options
| author | 2023-02-05 14:22:02 -0500 | |
|---|---|---|
| committer | 2023-02-06 23:57:44 -0500 | |
| commit | 2415d37ea296e8856267375989a8b95cebe2575a (patch) | |
| tree | 376baf5952a8ccc15b445702d38c056ffa71dd1b /src/core/hle/kernel/svc.h | |
| parent | Merge pull request #9731 from liamwhite/svc-move-only (diff) | |
| download | yuzu-2415d37ea296e8856267375989a8b95cebe2575a.tar.gz yuzu-2415d37ea296e8856267375989a8b95cebe2575a.tar.xz yuzu-2415d37ea296e8856267375989a8b95cebe2575a.zip | |
kernel/svc: switch to generated wrappers
Diffstat (limited to 'src/core/hle/kernel/svc.h')
| -rw-r--r-- | src/core/hle/kernel/svc.h | 664 |
1 files changed, 514 insertions, 150 deletions
diff --git a/src/core/hle/kernel/svc.h b/src/core/hle/kernel/svc.h index b599f9a3d..36e619959 100644 --- a/src/core/hle/kernel/svc.h +++ b/src/core/hle/kernel/svc.h | |||
| @@ -1,172 +1,536 @@ | |||
| 1 | // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project | 1 | // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project |
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | 2 | // SPDX-License-Identifier: GPL-2.0-or-later |
| 3 | 3 | ||
| 4 | #pragma once | 4 | // This file is automatically generated using svc_generator.py. |
| 5 | 5 | ||
| 6 | #include "common/common_types.h" | 6 | #pragma once |
| 7 | #include "core/hle/kernel/svc_types.h" | ||
| 8 | #include "core/hle/result.h" | ||
| 9 | 7 | ||
| 10 | namespace Core { | 8 | namespace Core { |
| 11 | class System; | 9 | class System; |
| 12 | } | 10 | } |
| 13 | 11 | ||
| 14 | namespace Kernel::Svc { | 12 | #include "common/common_types.h" |
| 13 | #include "core/hle/kernel/svc_types.h" | ||
| 14 | #include "core/hle/result.h" | ||
| 15 | 15 | ||
| 16 | void Call(Core::System& system, u32 immediate); | 16 | namespace Kernel::Svc { |
| 17 | 17 | ||
| 18 | Result SetHeapSize(Core::System& system, VAddr* out_address, u64 size); | 18 | // clang-format off |
| 19 | Result SetMemoryPermission(Core::System& system, VAddr address, u64 size, MemoryPermission perm); | 19 | Result SetHeapSize(Core::System& system, uintptr_t* out_address, uint64_t size); |
| 20 | Result SetMemoryAttribute(Core::System& system, VAddr address, u64 size, u32 mask, u32 attr); | 20 | Result SetMemoryPermission(Core::System& system, uint64_t address, uint64_t size, MemoryPermission perm); |
| 21 | Result MapMemory(Core::System& system, VAddr dst_addr, VAddr src_addr, u64 size); | 21 | Result SetMemoryAttribute(Core::System& system, uint64_t address, uint64_t size, uint32_t mask, uint32_t attr); |
| 22 | Result UnmapMemory(Core::System& system, VAddr dst_addr, VAddr src_addr, u64 size); | 22 | Result MapMemory(Core::System& system, uint64_t dst_address, uint64_t src_address, uint64_t size); |
| 23 | Result QueryMemory(Core::System& system, VAddr memory_info_address, VAddr page_info_address, | 23 | Result UnmapMemory(Core::System& system, uint64_t dst_address, uint64_t src_address, uint64_t size); |
| 24 | VAddr query_address); | 24 | Result QueryMemory(Core::System& system, uint64_t out_memory_info, PageInfo* out_page_info, uint64_t address); |
| 25 | void ExitProcess(Core::System& system); | 25 | void ExitProcess(Core::System& system); |
| 26 | Result CreateThread(Core::System& system, Handle* out_handle, VAddr entry_point, u64 arg, | 26 | Result CreateThread(Core::System& system, Handle* out_handle, uint64_t func, uint64_t arg, uint64_t stack_bottom, int32_t priority, int32_t core_id); |
| 27 | VAddr stack_bottom, u32 priority, s32 core_id); | ||
| 28 | Result StartThread(Core::System& system, Handle thread_handle); | 27 | Result StartThread(Core::System& system, Handle thread_handle); |
| 29 | void ExitThread(Core::System& system); | 28 | void ExitThread(Core::System& system); |
| 30 | void SleepThread(Core::System& system, s64 nanoseconds); | 29 | void SleepThread(Core::System& system, int64_t ns); |
| 31 | Result GetThreadPriority(Core::System& system, u32* out_priority, Handle handle); | 30 | Result GetThreadPriority(Core::System& system, int32_t* out_priority, Handle thread_handle); |
| 32 | Result SetThreadPriority(Core::System& system, Handle thread_handle, u32 priority); | 31 | Result SetThreadPriority(Core::System& system, Handle thread_handle, int32_t priority); |
| 33 | Result GetThreadCoreMask(Core::System& system, Handle thread_handle, s32* out_core_id, | 32 | Result GetThreadCoreMask(Core::System& system, int32_t* out_core_id, uint64_t* out_affinity_mask, Handle thread_handle); |
| 34 | u64* out_affinity_mask); | 33 | Result SetThreadCoreMask(Core::System& system, Handle thread_handle, int32_t core_id, uint64_t affinity_mask); |
| 35 | Result SetThreadCoreMask(Core::System& system, Handle thread_handle, s32 core_id, | 34 | int32_t GetCurrentProcessorNumber(Core::System& system); |
| 36 | u64 affinity_mask); | ||
| 37 | u32 GetCurrentProcessorNumber(Core::System& system); | ||
| 38 | Result SignalEvent(Core::System& system, Handle event_handle); | 35 | Result SignalEvent(Core::System& system, Handle event_handle); |
| 39 | Result ClearEvent(Core::System& system, Handle event_handle); | 36 | Result ClearEvent(Core::System& system, Handle event_handle); |
| 40 | Result MapSharedMemory(Core::System& system, Handle shmem_handle, VAddr address, u64 size, | 37 | Result MapSharedMemory(Core::System& system, Handle shmem_handle, uint64_t address, uint64_t size, MemoryPermission map_perm); |
| 41 | MemoryPermission map_perm); | 38 | Result UnmapSharedMemory(Core::System& system, Handle shmem_handle, uint64_t address, uint64_t size); |
| 42 | Result UnmapSharedMemory(Core::System& system, Handle shmem_handle, VAddr address, u64 size); | 39 | Result CreateTransferMemory(Core::System& system, Handle* out_handle, uint64_t address, uint64_t size, MemoryPermission map_perm); |
| 43 | Result CreateTransferMemory(Core::System& system, Handle* out, VAddr address, u64 size, | ||
| 44 | MemoryPermission map_perm); | ||
| 45 | Result CloseHandle(Core::System& system, Handle handle); | 40 | Result CloseHandle(Core::System& system, Handle handle); |
| 46 | Result ResetSignal(Core::System& system, Handle handle); | 41 | Result ResetSignal(Core::System& system, Handle handle); |
| 47 | Result WaitSynchronization(Core::System& system, s32* index, VAddr handles_address, s32 num_handles, | 42 | Result WaitSynchronization(Core::System& system, int32_t* out_index, uint64_t handles, int32_t num_handles, int64_t timeout_ns); |
| 48 | s64 nano_seconds); | ||
| 49 | Result CancelSynchronization(Core::System& system, Handle handle); | 43 | Result CancelSynchronization(Core::System& system, Handle handle); |
| 50 | Result ArbitrateLock(Core::System& system, Handle thread_handle, VAddr address, u32 tag); | 44 | Result ArbitrateLock(Core::System& system, Handle thread_handle, uint64_t address, uint32_t tag); |
| 51 | Result ArbitrateUnlock(Core::System& system, VAddr address); | 45 | Result ArbitrateUnlock(Core::System& system, uint64_t address); |
| 52 | Result WaitProcessWideKeyAtomic(Core::System& system, VAddr address, VAddr cv_key, u32 tag, | 46 | Result WaitProcessWideKeyAtomic(Core::System& system, uint64_t address, uint64_t cv_key, uint32_t tag, int64_t timeout_ns); |
| 53 | s64 timeout_ns); | 47 | void SignalProcessWideKey(Core::System& system, uint64_t cv_key, int32_t count); |
| 54 | void SignalProcessWideKey(Core::System& system, VAddr cv_key, s32 count); | 48 | int64_t GetSystemTick(Core::System& system); |
| 55 | u64 GetSystemTick(Core::System& system); | 49 | Result ConnectToNamedPort(Core::System& system, Handle* out_handle, uint64_t name); |
| 56 | Result ConnectToNamedPort(Core::System& system, Handle* out, VAddr port_name_address); | 50 | Result SendSyncRequest(Core::System& system, Handle session_handle); |
| 57 | Result SendSyncRequest(Core::System& system, Handle handle); | 51 | Result SendSyncRequestWithUserBuffer(Core::System& system, uint64_t message_buffer, uint64_t message_buffer_size, Handle session_handle); |
| 58 | Result GetProcessId(Core::System& system, u64* out_process_id, Handle handle); | 52 | Result SendAsyncRequestWithUserBuffer(Core::System& system, Handle* out_event_handle, uint64_t message_buffer, uint64_t message_buffer_size, Handle session_handle); |
| 59 | Result GetThreadId(Core::System& system, u64* out_thread_id, Handle thread_handle); | 53 | Result GetProcessId(Core::System& system, uint64_t* out_process_id, Handle process_handle); |
| 60 | void Break(Core::System& system, u32 reason, u64 info1, u64 info2); | 54 | Result GetThreadId(Core::System& system, uint64_t* out_thread_id, Handle thread_handle); |
| 61 | void OutputDebugString(Core::System& system, VAddr address, u64 len); | 55 | void Break(Core::System& system, BreakReason break_reason, uint64_t arg, uint64_t size); |
| 62 | Result GetInfo(Core::System& system, u64* result, u64 info_id, Handle handle, u64 info_sub_id); | 56 | Result OutputDebugString(Core::System& system, uint64_t debug_str, uint64_t len); |
| 63 | Result MapPhysicalMemory(Core::System& system, VAddr addr, u64 size); | 57 | void ReturnFromException(Core::System& system, Result result); |
| 64 | Result UnmapPhysicalMemory(Core::System& system, VAddr addr, u64 size); | 58 | Result GetInfo(Core::System& system, uint64_t* out, InfoType info_type, Handle handle, uint64_t info_subtype); |
| 65 | Result GetResourceLimitLimitValue(Core::System& system, u64* out_limit_value, | 59 | void FlushEntireDataCache(Core::System& system); |
| 66 | Handle resource_limit_handle, LimitableResource which); | 60 | Result FlushDataCache(Core::System& system, uint64_t address, uint64_t size); |
| 67 | Result GetResourceLimitCurrentValue(Core::System& system, u64* out_current_value, | 61 | Result MapPhysicalMemory(Core::System& system, uint64_t address, uint64_t size); |
| 68 | Handle resource_limit_handle, LimitableResource which); | 62 | Result UnmapPhysicalMemory(Core::System& system, uint64_t address, uint64_t size); |
| 69 | Result SetThreadActivity(Core::System& system, Handle thread_handle, | 63 | Result GetDebugFutureThreadInfo(Core::System& system, lp64::LastThreadContext* out_context, uint64_t* out_thread_id, Handle debug_handle, int64_t ns); |
| 70 | ThreadActivity thread_activity); | 64 | Result GetLastThreadInfo(Core::System& system, lp64::LastThreadContext* out_context, uintptr_t* out_tls_address, uint32_t* out_flags); |
| 71 | Result GetThreadContext(Core::System& system, VAddr out_context, Handle thread_handle); | 65 | Result GetResourceLimitLimitValue(Core::System& system, int64_t* out_limit_value, Handle resource_limit_handle, LimitableResource which); |
| 72 | Result WaitForAddress(Core::System& system, VAddr address, ArbitrationType arb_type, s32 value, | 66 | Result GetResourceLimitCurrentValue(Core::System& system, int64_t* out_current_value, Handle resource_limit_handle, LimitableResource which); |
| 73 | s64 timeout_ns); | 67 | Result SetThreadActivity(Core::System& system, Handle thread_handle, ThreadActivity thread_activity); |
| 74 | Result SignalToAddress(Core::System& system, VAddr address, SignalType signal_type, s32 value, | 68 | Result GetThreadContext3(Core::System& system, uint64_t out_context, Handle thread_handle); |
| 75 | s32 count); | 69 | Result WaitForAddress(Core::System& system, uint64_t address, ArbitrationType arb_type, int32_t value, int64_t timeout_ns); |
| 70 | Result SignalToAddress(Core::System& system, uint64_t address, SignalType signal_type, int32_t value, int32_t count); | ||
| 76 | void SynchronizePreemptionState(Core::System& system); | 71 | void SynchronizePreemptionState(Core::System& system); |
| 77 | void KernelDebug(Core::System& system, u32 kernel_debug_type, u64 param1, u64 param2, u64 param3); | 72 | Result GetResourceLimitPeakValue(Core::System& system, int64_t* out_peak_value, Handle resource_limit_handle, LimitableResource which); |
| 78 | void ChangeKernelTraceState(Core::System& system, u32 trace_state); | 73 | Result CreateIoPool(Core::System& system, Handle* out_handle, IoPoolType which); |
| 79 | Result CreateSession(Core::System& system, Handle* out_server, Handle* out_client, u32 is_light, | 74 | Result CreateIoRegion(Core::System& system, Handle* out_handle, Handle io_pool, uint64_t physical_address, uint64_t size, MemoryMapping mapping, MemoryPermission perm); |
| 80 | u64 name); | 75 | void KernelDebug(Core::System& system, KernelDebugType kern_debug_type, uint64_t arg0, uint64_t arg1, uint64_t arg2); |
| 81 | Result ReplyAndReceive(Core::System& system, s32* out_index, Handle* handles, s32 num_handles, | 76 | void ChangeKernelTraceState(Core::System& system, KernelTraceState kern_trace_state); |
| 82 | Handle reply_target, s64 timeout_ns); | 77 | Result CreateSession(Core::System& system, Handle* out_server_session_handle, Handle* out_client_session_handle, bool is_light, uint64_t name); |
| 83 | Result CreateEvent(Core::System& system, Handle* out_write, Handle* out_read); | 78 | Result AcceptSession(Core::System& system, Handle* out_handle, Handle port); |
| 84 | Result CreateCodeMemory(Core::System& system, Handle* out, VAddr address, size_t size); | 79 | Result ReplyAndReceive(Core::System& system, int32_t* out_index, uint64_t handles, int32_t num_handles, Handle reply_target, int64_t timeout_ns); |
| 85 | Result ControlCodeMemory(Core::System& system, Handle code_memory_handle, u32 operation, | 80 | Result ReplyAndReceiveWithUserBuffer(Core::System& system, int32_t* out_index, uint64_t message_buffer, uint64_t message_buffer_size, uint64_t handles, int32_t num_handles, Handle reply_target, int64_t timeout_ns); |
| 86 | VAddr address, size_t size, MemoryPermission perm); | 81 | Result CreateEvent(Core::System& system, Handle* out_write_handle, Handle* out_read_handle); |
| 87 | Result GetProcessList(Core::System& system, u32* out_num_processes, VAddr out_process_ids, | 82 | Result MapIoRegion(Core::System& system, Handle io_region, uint64_t address, uint64_t size, MemoryPermission perm); |
| 88 | u32 out_process_ids_size); | 83 | Result UnmapIoRegion(Core::System& system, Handle io_region, uint64_t address, uint64_t size); |
| 89 | Result GetThreadList(Core::System& system, u32* out_num_threads, VAddr out_thread_ids, | 84 | Result MapPhysicalMemoryUnsafe(Core::System& system, uint64_t address, uint64_t size); |
| 90 | u32 out_thread_ids_size, Handle debug_handle); | 85 | Result UnmapPhysicalMemoryUnsafe(Core::System& system, uint64_t address, uint64_t size); |
| 91 | Result SetProcessMemoryPermission(Core::System& system, Handle process_handle, VAddr address, | 86 | Result SetUnsafeLimit(Core::System& system, uint64_t limit); |
| 92 | u64 size, MemoryPermission perm); | 87 | Result CreateCodeMemory(Core::System& system, Handle* out_handle, uint64_t address, uint64_t size); |
| 93 | Result MapProcessMemory(Core::System& system, VAddr dst_address, Handle process_handle, | 88 | Result ControlCodeMemory(Core::System& system, Handle code_memory_handle, CodeMemoryOperation operation, uint64_t address, uint64_t size, MemoryPermission perm); |
| 94 | VAddr src_address, u64 size); | 89 | void SleepSystem(Core::System& system); |
| 95 | Result UnmapProcessMemory(Core::System& system, VAddr dst_address, Handle process_handle, | 90 | Result ReadWriteRegister(Core::System& system, uint32_t* out_value, uint64_t address, uint32_t mask, uint32_t value); |
| 96 | VAddr src_address, u64 size); | 91 | Result SetProcessActivity(Core::System& system, Handle process_handle, ProcessActivity process_activity); |
| 97 | Result QueryProcessMemory(Core::System& system, VAddr memory_info_address, VAddr page_info_address, | 92 | Result CreateSharedMemory(Core::System& system, Handle* out_handle, uint64_t size, MemoryPermission owner_perm, MemoryPermission remote_perm); |
| 98 | Handle process_handle, VAddr address); | 93 | Result MapTransferMemory(Core::System& system, Handle trmem_handle, uint64_t address, uint64_t size, MemoryPermission owner_perm); |
| 99 | Result MapProcessCodeMemory(Core::System& system, Handle process_handle, u64 dst_address, | 94 | Result UnmapTransferMemory(Core::System& system, Handle trmem_handle, uint64_t address, uint64_t size); |
| 100 | u64 src_address, u64 size); | 95 | Result CreateInterruptEvent(Core::System& system, Handle* out_read_handle, int32_t interrupt_id, InterruptType interrupt_type); |
| 101 | Result UnmapProcessCodeMemory(Core::System& system, Handle process_handle, u64 dst_address, | 96 | Result QueryPhysicalAddress(Core::System& system, lp64::PhysicalMemoryInfo* out_info, uint64_t address); |
| 102 | u64 src_address, u64 size); | 97 | Result QueryIoMapping(Core::System& system, uintptr_t* out_address, uintptr_t* out_size, uint64_t physical_address, uint64_t size); |
| 103 | Result GetProcessInfo(Core::System& system, u64* out, Handle process_handle, u32 type); | 98 | Result CreateDeviceAddressSpace(Core::System& system, Handle* out_handle, uint64_t das_address, uint64_t das_size); |
| 99 | Result AttachDeviceAddressSpace(Core::System& system, DeviceName device_name, Handle das_handle); | ||
| 100 | Result DetachDeviceAddressSpace(Core::System& system, DeviceName device_name, Handle das_handle); | ||
| 101 | Result MapDeviceAddressSpaceByForce(Core::System& system, Handle das_handle, Handle process_handle, uint64_t process_address, uint64_t size, uint64_t device_address, uint32_t option); | ||
| 102 | Result MapDeviceAddressSpaceAligned(Core::System& system, Handle das_handle, Handle process_handle, uint64_t process_address, uint64_t size, uint64_t device_address, uint32_t option); | ||
| 103 | Result UnmapDeviceAddressSpace(Core::System& system, Handle das_handle, Handle process_handle, uint64_t process_address, uint64_t size, uint64_t device_address); | ||
| 104 | Result InvalidateProcessDataCache(Core::System& system, Handle process_handle, uint64_t address, uint64_t size); | ||
| 105 | Result StoreProcessDataCache(Core::System& system, Handle process_handle, uint64_t address, uint64_t size); | ||
| 106 | Result FlushProcessDataCache(Core::System& system, Handle process_handle, uint64_t address, uint64_t size); | ||
| 107 | Result DebugActiveProcess(Core::System& system, Handle* out_handle, uint64_t process_id); | ||
| 108 | Result BreakDebugProcess(Core::System& system, Handle debug_handle); | ||
| 109 | Result TerminateDebugProcess(Core::System& system, Handle debug_handle); | ||
| 110 | Result GetDebugEvent(Core::System& system, uint64_t out_info, Handle debug_handle); | ||
| 111 | Result ContinueDebugEvent(Core::System& system, Handle debug_handle, uint32_t flags, uint64_t thread_ids, int32_t num_thread_ids); | ||
| 112 | Result GetProcessList(Core::System& system, int32_t* out_num_processes, uint64_t out_process_ids, int32_t max_out_count); | ||
| 113 | Result GetThreadList(Core::System& system, int32_t* out_num_threads, uint64_t out_thread_ids, int32_t max_out_count, Handle debug_handle); | ||
| 114 | Result GetDebugThreadContext(Core::System& system, uint64_t out_context, Handle debug_handle, uint64_t thread_id, uint32_t context_flags); | ||
| 115 | Result SetDebugThreadContext(Core::System& system, Handle debug_handle, uint64_t thread_id, uint64_t context, uint32_t context_flags); | ||
| 116 | Result QueryDebugProcessMemory(Core::System& system, uint64_t out_memory_info, PageInfo* out_page_info, Handle process_handle, uint64_t address); | ||
| 117 | Result ReadDebugProcessMemory(Core::System& system, uint64_t buffer, Handle debug_handle, uint64_t address, uint64_t size); | ||
| 118 | Result WriteDebugProcessMemory(Core::System& system, Handle debug_handle, uint64_t buffer, uint64_t address, uint64_t size); | ||
| 119 | Result SetHardwareBreakPoint(Core::System& system, HardwareBreakPointRegisterName name, uint64_t flags, uint64_t value); | ||
| 120 | Result GetDebugThreadParam(Core::System& system, uint64_t* out_64, uint32_t* out_32, Handle debug_handle, uint64_t thread_id, DebugThreadParam param); | ||
| 121 | Result GetSystemInfo(Core::System& system, uint64_t* out, SystemInfoType info_type, Handle handle, uint64_t info_subtype); | ||
| 122 | Result CreatePort(Core::System& system, Handle* out_server_handle, Handle* out_client_handle, int32_t max_sessions, bool is_light, uint64_t name); | ||
| 123 | Result ManageNamedPort(Core::System& system, Handle* out_server_handle, uint64_t name, int32_t max_sessions); | ||
| 124 | Result ConnectToPort(Core::System& system, Handle* out_handle, Handle port); | ||
| 125 | Result SetProcessMemoryPermission(Core::System& system, Handle process_handle, uint64_t address, uint64_t size, MemoryPermission perm); | ||
| 126 | Result MapProcessMemory(Core::System& system, uint64_t dst_address, Handle process_handle, uint64_t src_address, uint64_t size); | ||
| 127 | Result UnmapProcessMemory(Core::System& system, uint64_t dst_address, Handle process_handle, uint64_t src_address, uint64_t size); | ||
| 128 | Result QueryProcessMemory(Core::System& system, uint64_t out_memory_info, PageInfo* out_page_info, Handle process_handle, uint64_t address); | ||
| 129 | Result MapProcessCodeMemory(Core::System& system, Handle process_handle, uint64_t dst_address, uint64_t src_address, uint64_t size); | ||
| 130 | Result UnmapProcessCodeMemory(Core::System& system, Handle process_handle, uint64_t dst_address, uint64_t src_address, uint64_t size); | ||
| 131 | Result CreateProcess(Core::System& system, Handle* out_handle, uint64_t parameters, uint64_t caps, int32_t num_caps); | ||
| 132 | Result StartProcess(Core::System& system, Handle process_handle, int32_t priority, int32_t core_id, uint64_t main_thread_stack_size); | ||
| 133 | Result TerminateProcess(Core::System& system, Handle process_handle); | ||
| 134 | Result GetProcessInfo(Core::System& system, int64_t* out_info, Handle process_handle, ProcessInfoType info_type); | ||
| 104 | Result CreateResourceLimit(Core::System& system, Handle* out_handle); | 135 | Result CreateResourceLimit(Core::System& system, Handle* out_handle); |
| 105 | Result SetResourceLimitLimitValue(Core::System& system, Handle resource_limit_handle, | 136 | Result SetResourceLimitLimitValue(Core::System& system, Handle resource_limit_handle, LimitableResource which, int64_t limit_value); |
| 106 | LimitableResource which, u64 limit_value); | 137 | Result MapInsecureMemory(Core::System& system, uint64_t address, uint64_t size); |
| 107 | 138 | Result UnmapInsecureMemory(Core::System& system, uint64_t address, uint64_t size); | |
| 108 | // | 139 | |
| 109 | 140 | Result SetHeapSize64From32(Core::System& system, uintptr_t* out_address, uint32_t size); | |
| 110 | Result SetHeapSize32(Core::System& system, u32* heap_addr, u32 heap_size); | 141 | Result SetMemoryPermission64From32(Core::System& system, uint32_t address, uint32_t size, MemoryPermission perm); |
| 111 | Result SetMemoryAttribute32(Core::System& system, u32 address, u32 size, u32 mask, u32 attr); | 142 | Result SetMemoryAttribute64From32(Core::System& system, uint32_t address, uint32_t size, uint32_t mask, uint32_t attr); |
| 112 | Result MapMemory32(Core::System& system, u32 dst_addr, u32 src_addr, u32 size); | 143 | Result MapMemory64From32(Core::System& system, uint32_t dst_address, uint32_t src_address, uint32_t size); |
| 113 | Result UnmapMemory32(Core::System& system, u32 dst_addr, u32 src_addr, u32 size); | 144 | Result UnmapMemory64From32(Core::System& system, uint32_t dst_address, uint32_t src_address, uint32_t size); |
| 114 | Result QueryMemory32(Core::System& system, u32 memory_info_address, u32 page_info_address, | 145 | Result QueryMemory64From32(Core::System& system, uint32_t out_memory_info, PageInfo* out_page_info, uint32_t address); |
| 115 | u32 query_address); | 146 | void ExitProcess64From32(Core::System& system); |
| 116 | void ExitProcess32(Core::System& system); | 147 | Result CreateThread64From32(Core::System& system, Handle* out_handle, uint32_t func, uint32_t arg, uint32_t stack_bottom, int32_t priority, int32_t core_id); |
| 117 | Result CreateThread32(Core::System& system, Handle* out_handle, u32 priority, u32 entry_point, | 148 | Result StartThread64From32(Core::System& system, Handle thread_handle); |
| 118 | u32 arg, u32 stack_top, s32 processor_id); | 149 | void ExitThread64From32(Core::System& system); |
| 119 | Result StartThread32(Core::System& system, Handle thread_handle); | 150 | void SleepThread64From32(Core::System& system, int64_t ns); |
| 120 | void ExitThread32(Core::System& system); | 151 | Result GetThreadPriority64From32(Core::System& system, int32_t* out_priority, Handle thread_handle); |
| 121 | void SleepThread32(Core::System& system, u32 nanoseconds_low, u32 nanoseconds_high); | 152 | Result SetThreadPriority64From32(Core::System& system, Handle thread_handle, int32_t priority); |
| 122 | Result GetThreadPriority32(Core::System& system, u32* out_priority, Handle handle); | 153 | Result GetThreadCoreMask64From32(Core::System& system, int32_t* out_core_id, uint64_t* out_affinity_mask, Handle thread_handle); |
| 123 | Result SetThreadPriority32(Core::System& system, Handle thread_handle, u32 priority); | 154 | Result SetThreadCoreMask64From32(Core::System& system, Handle thread_handle, int32_t core_id, uint64_t affinity_mask); |
| 124 | Result GetThreadCoreMask32(Core::System& system, Handle thread_handle, s32* out_core_id, | 155 | int32_t GetCurrentProcessorNumber64From32(Core::System& system); |
| 125 | u32* out_affinity_mask_low, u32* out_affinity_mask_high); | 156 | Result SignalEvent64From32(Core::System& system, Handle event_handle); |
| 126 | Result SetThreadCoreMask32(Core::System& system, Handle thread_handle, s32 core_id, | 157 | Result ClearEvent64From32(Core::System& system, Handle event_handle); |
| 127 | u32 affinity_mask_low, u32 affinity_mask_high); | 158 | Result MapSharedMemory64From32(Core::System& system, Handle shmem_handle, uint32_t address, uint32_t size, MemoryPermission map_perm); |
| 128 | u32 GetCurrentProcessorNumber32(Core::System& system); | 159 | Result UnmapSharedMemory64From32(Core::System& system, Handle shmem_handle, uint32_t address, uint32_t size); |
| 129 | Result SignalEvent32(Core::System& system, Handle event_handle); | 160 | Result CreateTransferMemory64From32(Core::System& system, Handle* out_handle, uint32_t address, uint32_t size, MemoryPermission map_perm); |
| 130 | Result ClearEvent32(Core::System& system, Handle event_handle); | 161 | Result CloseHandle64From32(Core::System& system, Handle handle); |
| 131 | Result MapSharedMemory32(Core::System& system, Handle shmem_handle, u32 address, u32 size, | 162 | Result ResetSignal64From32(Core::System& system, Handle handle); |
| 132 | MemoryPermission map_perm); | 163 | Result WaitSynchronization64From32(Core::System& system, int32_t* out_index, uint32_t handles, int32_t num_handles, int64_t timeout_ns); |
| 133 | Result UnmapSharedMemory32(Core::System& system, Handle shmem_handle, u32 address, u32 size); | 164 | Result CancelSynchronization64From32(Core::System& system, Handle handle); |
| 134 | Result CreateTransferMemory32(Core::System& system, Handle* out, u32 address, u32 size, | 165 | Result ArbitrateLock64From32(Core::System& system, Handle thread_handle, uint32_t address, uint32_t tag); |
| 135 | MemoryPermission map_perm); | 166 | Result ArbitrateUnlock64From32(Core::System& system, uint32_t address); |
| 136 | Result CloseHandle32(Core::System& system, Handle handle); | 167 | Result WaitProcessWideKeyAtomic64From32(Core::System& system, uint32_t address, uint32_t cv_key, uint32_t tag, int64_t timeout_ns); |
| 137 | Result ResetSignal32(Core::System& system, Handle handle); | 168 | void SignalProcessWideKey64From32(Core::System& system, uint32_t cv_key, int32_t count); |
| 138 | Result WaitSynchronization32(Core::System& system, u32 timeout_low, u32 handles_address, | 169 | int64_t GetSystemTick64From32(Core::System& system); |
| 139 | s32 num_handles, u32 timeout_high, s32* index); | 170 | Result ConnectToNamedPort64From32(Core::System& system, Handle* out_handle, uint32_t name); |
| 140 | Result CancelSynchronization32(Core::System& system, Handle handle); | 171 | Result SendSyncRequest64From32(Core::System& system, Handle session_handle); |
| 141 | Result ArbitrateLock32(Core::System& system, Handle thread_handle, u32 address, u32 tag); | 172 | Result SendSyncRequestWithUserBuffer64From32(Core::System& system, uint32_t message_buffer, uint32_t message_buffer_size, Handle session_handle); |
| 142 | Result ArbitrateUnlock32(Core::System& system, u32 address); | 173 | Result SendAsyncRequestWithUserBuffer64From32(Core::System& system, Handle* out_event_handle, uint32_t message_buffer, uint32_t message_buffer_size, Handle session_handle); |
| 143 | Result WaitProcessWideKeyAtomic32(Core::System& system, u32 address, u32 cv_key, u32 tag, | 174 | Result GetProcessId64From32(Core::System& system, uint64_t* out_process_id, Handle process_handle); |
| 144 | u32 timeout_ns_low, u32 timeout_ns_high); | 175 | Result GetThreadId64From32(Core::System& system, uint64_t* out_thread_id, Handle thread_handle); |
| 145 | void SignalProcessWideKey32(Core::System& system, u32 cv_key, s32 count); | 176 | void Break64From32(Core::System& system, BreakReason break_reason, uint32_t arg, uint32_t size); |
| 146 | void GetSystemTick32(Core::System& system, u32* time_low, u32* time_high); | 177 | Result OutputDebugString64From32(Core::System& system, uint32_t debug_str, uint32_t len); |
| 147 | Result ConnectToNamedPort32(Core::System& system, Handle* out_handle, u32 port_name_address); | 178 | void ReturnFromException64From32(Core::System& system, Result result); |
| 148 | Result SendSyncRequest32(Core::System& system, Handle handle); | 179 | Result GetInfo64From32(Core::System& system, uint64_t* out, InfoType info_type, Handle handle, uint64_t info_subtype); |
| 149 | Result GetProcessId32(Core::System& system, u32* out_process_id_low, u32* out_process_id_high, | 180 | void FlushEntireDataCache64From32(Core::System& system); |
| 150 | Handle handle); | 181 | Result FlushDataCache64From32(Core::System& system, uint32_t address, uint32_t size); |
| 151 | Result GetThreadId32(Core::System& system, u32* out_thread_id_low, u32* out_thread_id_high, | 182 | Result MapPhysicalMemory64From32(Core::System& system, uint32_t address, uint32_t size); |
| 152 | Handle thread_handle); | 183 | Result UnmapPhysicalMemory64From32(Core::System& system, uint32_t address, uint32_t size); |
| 153 | void Break32(Core::System& system, u32 reason, u32 info1, u32 info2); | 184 | Result GetDebugFutureThreadInfo64From32(Core::System& system, ilp32::LastThreadContext* out_context, uint64_t* out_thread_id, Handle debug_handle, int64_t ns); |
| 154 | void OutputDebugString32(Core::System& system, u32 address, u32 len); | 185 | Result GetLastThreadInfo64From32(Core::System& system, ilp32::LastThreadContext* out_context, uintptr_t* out_tls_address, uint32_t* out_flags); |
| 155 | Result GetInfo32(Core::System& system, u32* result_low, u32* result_high, u32 sub_id_low, | 186 | Result GetResourceLimitLimitValue64From32(Core::System& system, int64_t* out_limit_value, Handle resource_limit_handle, LimitableResource which); |
| 156 | u32 info_id, u32 handle, u32 sub_id_high); | 187 | Result GetResourceLimitCurrentValue64From32(Core::System& system, int64_t* out_current_value, Handle resource_limit_handle, LimitableResource which); |
| 157 | Result MapPhysicalMemory32(Core::System& system, u32 addr, u32 size); | 188 | Result SetThreadActivity64From32(Core::System& system, Handle thread_handle, ThreadActivity thread_activity); |
| 158 | Result UnmapPhysicalMemory32(Core::System& system, u32 addr, u32 size); | 189 | Result GetThreadContext364From32(Core::System& system, uint32_t out_context, Handle thread_handle); |
| 159 | Result SetThreadActivity32(Core::System& system, Handle thread_handle, | 190 | Result WaitForAddress64From32(Core::System& system, uint32_t address, ArbitrationType arb_type, int32_t value, int64_t timeout_ns); |
| 160 | ThreadActivity thread_activity); | 191 | Result SignalToAddress64From32(Core::System& system, uint32_t address, SignalType signal_type, int32_t value, int32_t count); |
| 161 | Result GetThreadContext32(Core::System& system, u32 out_context, Handle thread_handle); | 192 | void SynchronizePreemptionState64From32(Core::System& system); |
| 162 | Result WaitForAddress32(Core::System& system, u32 address, ArbitrationType arb_type, s32 value, | 193 | Result GetResourceLimitPeakValue64From32(Core::System& system, int64_t* out_peak_value, Handle resource_limit_handle, LimitableResource which); |
| 163 | u32 timeout_ns_low, u32 timeout_ns_high); | 194 | Result CreateIoPool64From32(Core::System& system, Handle* out_handle, IoPoolType which); |
| 164 | Result SignalToAddress32(Core::System& system, u32 address, SignalType signal_type, s32 value, | 195 | Result CreateIoRegion64From32(Core::System& system, Handle* out_handle, Handle io_pool, uint64_t physical_address, uint32_t size, MemoryMapping mapping, MemoryPermission perm); |
| 165 | s32 count); | 196 | void KernelDebug64From32(Core::System& system, KernelDebugType kern_debug_type, uint64_t arg0, uint64_t arg1, uint64_t arg2); |
| 166 | Result CreateEvent32(Core::System& system, Handle* out_write, Handle* out_read); | 197 | void ChangeKernelTraceState64From32(Core::System& system, KernelTraceState kern_trace_state); |
| 167 | Result CreateCodeMemory32(Core::System& system, Handle* out, u32 address, u32 size); | 198 | Result CreateSession64From32(Core::System& system, Handle* out_server_session_handle, Handle* out_client_session_handle, bool is_light, uint32_t name); |
| 168 | Result ControlCodeMemory32(Core::System& system, Handle code_memory_handle, u32 operation, | 199 | Result AcceptSession64From32(Core::System& system, Handle* out_handle, Handle port); |
| 169 | u64 address, u64 size, MemoryPermission perm); | 200 | Result ReplyAndReceive64From32(Core::System& system, int32_t* out_index, uint32_t handles, int32_t num_handles, Handle reply_target, int64_t timeout_ns); |
| 170 | Result FlushProcessDataCache32(Core::System& system, Handle process_handle, u64 address, u64 size); | 201 | Result ReplyAndReceiveWithUserBuffer64From32(Core::System& system, int32_t* out_index, uint32_t message_buffer, uint32_t message_buffer_size, uint32_t handles, int32_t num_handles, Handle reply_target, int64_t timeout_ns); |
| 202 | Result CreateEvent64From32(Core::System& system, Handle* out_write_handle, Handle* out_read_handle); | ||
| 203 | Result MapIoRegion64From32(Core::System& system, Handle io_region, uint32_t address, uint32_t size, MemoryPermission perm); | ||
| 204 | Result UnmapIoRegion64From32(Core::System& system, Handle io_region, uint32_t address, uint32_t size); | ||
| 205 | Result MapPhysicalMemoryUnsafe64From32(Core::System& system, uint32_t address, uint32_t size); | ||
| 206 | Result UnmapPhysicalMemoryUnsafe64From32(Core::System& system, uint32_t address, uint32_t size); | ||
| 207 | Result SetUnsafeLimit64From32(Core::System& system, uint32_t limit); | ||
| 208 | Result CreateCodeMemory64From32(Core::System& system, Handle* out_handle, uint32_t address, uint32_t size); | ||
| 209 | Result ControlCodeMemory64From32(Core::System& system, Handle code_memory_handle, CodeMemoryOperation operation, uint64_t address, uint64_t size, MemoryPermission perm); | ||
| 210 | void SleepSystem64From32(Core::System& system); | ||
| 211 | Result ReadWriteRegister64From32(Core::System& system, uint32_t* out_value, uint64_t address, uint32_t mask, uint32_t value); | ||
| 212 | Result SetProcessActivity64From32(Core::System& system, Handle process_handle, ProcessActivity process_activity); | ||
| 213 | Result CreateSharedMemory64From32(Core::System& system, Handle* out_handle, uint32_t size, MemoryPermission owner_perm, MemoryPermission remote_perm); | ||
| 214 | Result MapTransferMemory64From32(Core::System& system, Handle trmem_handle, uint32_t address, uint32_t size, MemoryPermission owner_perm); | ||
| 215 | Result UnmapTransferMemory64From32(Core::System& system, Handle trmem_handle, uint32_t address, uint32_t size); | ||
| 216 | Result CreateInterruptEvent64From32(Core::System& system, Handle* out_read_handle, int32_t interrupt_id, InterruptType interrupt_type); | ||
| 217 | Result QueryPhysicalAddress64From32(Core::System& system, ilp32::PhysicalMemoryInfo* out_info, uint32_t address); | ||
| 218 | Result QueryIoMapping64From32(Core::System& system, uintptr_t* out_address, uintptr_t* out_size, uint64_t physical_address, uint32_t size); | ||
| 219 | Result CreateDeviceAddressSpace64From32(Core::System& system, Handle* out_handle, uint64_t das_address, uint64_t das_size); | ||
| 220 | Result AttachDeviceAddressSpace64From32(Core::System& system, DeviceName device_name, Handle das_handle); | ||
| 221 | Result DetachDeviceAddressSpace64From32(Core::System& system, DeviceName device_name, Handle das_handle); | ||
| 222 | Result MapDeviceAddressSpaceByForce64From32(Core::System& system, Handle das_handle, Handle process_handle, uint64_t process_address, uint32_t size, uint64_t device_address, uint32_t option); | ||
| 223 | Result MapDeviceAddressSpaceAligned64From32(Core::System& system, Handle das_handle, Handle process_handle, uint64_t process_address, uint32_t size, uint64_t device_address, uint32_t option); | ||
| 224 | Result UnmapDeviceAddressSpace64From32(Core::System& system, Handle das_handle, Handle process_handle, uint64_t process_address, uint32_t size, uint64_t device_address); | ||
| 225 | Result InvalidateProcessDataCache64From32(Core::System& system, Handle process_handle, uint64_t address, uint64_t size); | ||
| 226 | Result StoreProcessDataCache64From32(Core::System& system, Handle process_handle, uint64_t address, uint64_t size); | ||
| 227 | Result FlushProcessDataCache64From32(Core::System& system, Handle process_handle, uint64_t address, uint64_t size); | ||
| 228 | Result DebugActiveProcess64From32(Core::System& system, Handle* out_handle, uint64_t process_id); | ||
| 229 | Result BreakDebugProcess64From32(Core::System& system, Handle debug_handle); | ||
| 230 | Result TerminateDebugProcess64From32(Core::System& system, Handle debug_handle); | ||
| 231 | Result GetDebugEvent64From32(Core::System& system, uint32_t out_info, Handle debug_handle); | ||
| 232 | Result ContinueDebugEvent64From32(Core::System& system, Handle debug_handle, uint32_t flags, uint32_t thread_ids, int32_t num_thread_ids); | ||
| 233 | Result GetProcessList64From32(Core::System& system, int32_t* out_num_processes, uint32_t out_process_ids, int32_t max_out_count); | ||
| 234 | Result GetThreadList64From32(Core::System& system, int32_t* out_num_threads, uint32_t out_thread_ids, int32_t max_out_count, Handle debug_handle); | ||
| 235 | Result GetDebugThreadContext64From32(Core::System& system, uint32_t out_context, Handle debug_handle, uint64_t thread_id, uint32_t context_flags); | ||
| 236 | Result SetDebugThreadContext64From32(Core::System& system, Handle debug_handle, uint64_t thread_id, uint32_t context, uint32_t context_flags); | ||
| 237 | Result QueryDebugProcessMemory64From32(Core::System& system, uint32_t out_memory_info, PageInfo* out_page_info, Handle process_handle, uint32_t address); | ||
| 238 | Result ReadDebugProcessMemory64From32(Core::System& system, uint32_t buffer, Handle debug_handle, uint32_t address, uint32_t size); | ||
| 239 | Result WriteDebugProcessMemory64From32(Core::System& system, Handle debug_handle, uint32_t buffer, uint32_t address, uint32_t size); | ||
| 240 | Result SetHardwareBreakPoint64From32(Core::System& system, HardwareBreakPointRegisterName name, uint64_t flags, uint64_t value); | ||
| 241 | Result GetDebugThreadParam64From32(Core::System& system, uint64_t* out_64, uint32_t* out_32, Handle debug_handle, uint64_t thread_id, DebugThreadParam param); | ||
| 242 | Result GetSystemInfo64From32(Core::System& system, uint64_t* out, SystemInfoType info_type, Handle handle, uint64_t info_subtype); | ||
| 243 | Result CreatePort64From32(Core::System& system, Handle* out_server_handle, Handle* out_client_handle, int32_t max_sessions, bool is_light, uint32_t name); | ||
| 244 | Result ManageNamedPort64From32(Core::System& system, Handle* out_server_handle, uint32_t name, int32_t max_sessions); | ||
| 245 | Result ConnectToPort64From32(Core::System& system, Handle* out_handle, Handle port); | ||
| 246 | Result SetProcessMemoryPermission64From32(Core::System& system, Handle process_handle, uint64_t address, uint64_t size, MemoryPermission perm); | ||
| 247 | Result MapProcessMemory64From32(Core::System& system, uint32_t dst_address, Handle process_handle, uint64_t src_address, uint32_t size); | ||
| 248 | Result UnmapProcessMemory64From32(Core::System& system, uint32_t dst_address, Handle process_handle, uint64_t src_address, uint32_t size); | ||
| 249 | Result QueryProcessMemory64From32(Core::System& system, uint32_t out_memory_info, PageInfo* out_page_info, Handle process_handle, uint64_t address); | ||
| 250 | Result MapProcessCodeMemory64From32(Core::System& system, Handle process_handle, uint64_t dst_address, uint64_t src_address, uint64_t size); | ||
| 251 | Result UnmapProcessCodeMemory64From32(Core::System& system, Handle process_handle, uint64_t dst_address, uint64_t src_address, uint64_t size); | ||
| 252 | Result CreateProcess64From32(Core::System& system, Handle* out_handle, uint32_t parameters, uint32_t caps, int32_t num_caps); | ||
| 253 | Result StartProcess64From32(Core::System& system, Handle process_handle, int32_t priority, int32_t core_id, uint64_t main_thread_stack_size); | ||
| 254 | Result TerminateProcess64From32(Core::System& system, Handle process_handle); | ||
| 255 | Result GetProcessInfo64From32(Core::System& system, int64_t* out_info, Handle process_handle, ProcessInfoType info_type); | ||
| 256 | Result CreateResourceLimit64From32(Core::System& system, Handle* out_handle); | ||
| 257 | Result SetResourceLimitLimitValue64From32(Core::System& system, Handle resource_limit_handle, LimitableResource which, int64_t limit_value); | ||
| 258 | Result MapInsecureMemory64From32(Core::System& system, uint32_t address, uint32_t size); | ||
| 259 | Result UnmapInsecureMemory64From32(Core::System& system, uint32_t address, uint32_t size); | ||
| 260 | |||
| 261 | Result SetHeapSize64(Core::System& system, uintptr_t* out_address, uint64_t size); | ||
| 262 | Result SetMemoryPermission64(Core::System& system, uint64_t address, uint64_t size, MemoryPermission perm); | ||
| 263 | Result SetMemoryAttribute64(Core::System& system, uint64_t address, uint64_t size, uint32_t mask, uint32_t attr); | ||
| 264 | Result MapMemory64(Core::System& system, uint64_t dst_address, uint64_t src_address, uint64_t size); | ||
| 265 | Result UnmapMemory64(Core::System& system, uint64_t dst_address, uint64_t src_address, uint64_t size); | ||
| 266 | Result QueryMemory64(Core::System& system, uint64_t out_memory_info, PageInfo* out_page_info, uint64_t address); | ||
| 267 | void ExitProcess64(Core::System& system); | ||
| 268 | Result CreateThread64(Core::System& system, Handle* out_handle, uint64_t func, uint64_t arg, uint64_t stack_bottom, int32_t priority, int32_t core_id); | ||
| 269 | Result StartThread64(Core::System& system, Handle thread_handle); | ||
| 270 | void ExitThread64(Core::System& system); | ||
| 271 | void SleepThread64(Core::System& system, int64_t ns); | ||
| 272 | Result GetThreadPriority64(Core::System& system, int32_t* out_priority, Handle thread_handle); | ||
| 273 | Result SetThreadPriority64(Core::System& system, Handle thread_handle, int32_t priority); | ||
| 274 | Result GetThreadCoreMask64(Core::System& system, int32_t* out_core_id, uint64_t* out_affinity_mask, Handle thread_handle); | ||
| 275 | Result SetThreadCoreMask64(Core::System& system, Handle thread_handle, int32_t core_id, uint64_t affinity_mask); | ||
| 276 | int32_t GetCurrentProcessorNumber64(Core::System& system); | ||
| 277 | Result SignalEvent64(Core::System& system, Handle event_handle); | ||
| 278 | Result ClearEvent64(Core::System& system, Handle event_handle); | ||
| 279 | Result MapSharedMemory64(Core::System& system, Handle shmem_handle, uint64_t address, uint64_t size, MemoryPermission map_perm); | ||
| 280 | Result UnmapSharedMemory64(Core::System& system, Handle shmem_handle, uint64_t address, uint64_t size); | ||
| 281 | Result CreateTransferMemory64(Core::System& system, Handle* out_handle, uint64_t address, uint64_t size, MemoryPermission map_perm); | ||
| 282 | Result CloseHandle64(Core::System& system, Handle handle); | ||
| 283 | Result ResetSignal64(Core::System& system, Handle handle); | ||
| 284 | Result WaitSynchronization64(Core::System& system, int32_t* out_index, uint64_t handles, int32_t num_handles, int64_t timeout_ns); | ||
| 285 | Result CancelSynchronization64(Core::System& system, Handle handle); | ||
| 286 | Result ArbitrateLock64(Core::System& system, Handle thread_handle, uint64_t address, uint32_t tag); | ||
| 287 | Result ArbitrateUnlock64(Core::System& system, uint64_t address); | ||
| 288 | Result WaitProcessWideKeyAtomic64(Core::System& system, uint64_t address, uint64_t cv_key, uint32_t tag, int64_t timeout_ns); | ||
| 289 | void SignalProcessWideKey64(Core::System& system, uint64_t cv_key, int32_t count); | ||
| 290 | int64_t GetSystemTick64(Core::System& system); | ||
| 291 | Result ConnectToNamedPort64(Core::System& system, Handle* out_handle, uint64_t name); | ||
| 292 | Result SendSyncRequest64(Core::System& system, Handle session_handle); | ||
| 293 | Result SendSyncRequestWithUserBuffer64(Core::System& system, uint64_t message_buffer, uint64_t message_buffer_size, Handle session_handle); | ||
| 294 | Result SendAsyncRequestWithUserBuffer64(Core::System& system, Handle* out_event_handle, uint64_t message_buffer, uint64_t message_buffer_size, Handle session_handle); | ||
| 295 | Result GetProcessId64(Core::System& system, uint64_t* out_process_id, Handle process_handle); | ||
| 296 | Result GetThreadId64(Core::System& system, uint64_t* out_thread_id, Handle thread_handle); | ||
| 297 | void Break64(Core::System& system, BreakReason break_reason, uint64_t arg, uint64_t size); | ||
| 298 | Result OutputDebugString64(Core::System& system, uint64_t debug_str, uint64_t len); | ||
| 299 | void ReturnFromException64(Core::System& system, Result result); | ||
| 300 | Result GetInfo64(Core::System& system, uint64_t* out, InfoType info_type, Handle handle, uint64_t info_subtype); | ||
| 301 | void FlushEntireDataCache64(Core::System& system); | ||
| 302 | Result FlushDataCache64(Core::System& system, uint64_t address, uint64_t size); | ||
| 303 | Result MapPhysicalMemory64(Core::System& system, uint64_t address, uint64_t size); | ||
| 304 | Result UnmapPhysicalMemory64(Core::System& system, uint64_t address, uint64_t size); | ||
| 305 | Result GetDebugFutureThreadInfo64(Core::System& system, lp64::LastThreadContext* out_context, uint64_t* out_thread_id, Handle debug_handle, int64_t ns); | ||
| 306 | Result GetLastThreadInfo64(Core::System& system, lp64::LastThreadContext* out_context, uintptr_t* out_tls_address, uint32_t* out_flags); | ||
| 307 | Result GetResourceLimitLimitValue64(Core::System& system, int64_t* out_limit_value, Handle resource_limit_handle, LimitableResource which); | ||
| 308 | Result GetResourceLimitCurrentValue64(Core::System& system, int64_t* out_current_value, Handle resource_limit_handle, LimitableResource which); | ||
| 309 | Result SetThreadActivity64(Core::System& system, Handle thread_handle, ThreadActivity thread_activity); | ||
| 310 | Result GetThreadContext364(Core::System& system, uint64_t out_context, Handle thread_handle); | ||
| 311 | Result WaitForAddress64(Core::System& system, uint64_t address, ArbitrationType arb_type, int32_t value, int64_t timeout_ns); | ||
| 312 | Result SignalToAddress64(Core::System& system, uint64_t address, SignalType signal_type, int32_t value, int32_t count); | ||
| 313 | void SynchronizePreemptionState64(Core::System& system); | ||
| 314 | Result GetResourceLimitPeakValue64(Core::System& system, int64_t* out_peak_value, Handle resource_limit_handle, LimitableResource which); | ||
| 315 | Result CreateIoPool64(Core::System& system, Handle* out_handle, IoPoolType which); | ||
| 316 | Result CreateIoRegion64(Core::System& system, Handle* out_handle, Handle io_pool, uint64_t physical_address, uint64_t size, MemoryMapping mapping, MemoryPermission perm); | ||
| 317 | void KernelDebug64(Core::System& system, KernelDebugType kern_debug_type, uint64_t arg0, uint64_t arg1, uint64_t arg2); | ||
| 318 | void ChangeKernelTraceState64(Core::System& system, KernelTraceState kern_trace_state); | ||
| 319 | Result CreateSession64(Core::System& system, Handle* out_server_session_handle, Handle* out_client_session_handle, bool is_light, uint64_t name); | ||
| 320 | Result AcceptSession64(Core::System& system, Handle* out_handle, Handle port); | ||
| 321 | Result ReplyAndReceive64(Core::System& system, int32_t* out_index, uint64_t handles, int32_t num_handles, Handle reply_target, int64_t timeout_ns); | ||
| 322 | Result ReplyAndReceiveWithUserBuffer64(Core::System& system, int32_t* out_index, uint64_t message_buffer, uint64_t message_buffer_size, uint64_t handles, int32_t num_handles, Handle reply_target, int64_t timeout_ns); | ||
| 323 | Result CreateEvent64(Core::System& system, Handle* out_write_handle, Handle* out_read_handle); | ||
| 324 | Result MapIoRegion64(Core::System& system, Handle io_region, uint64_t address, uint64_t size, MemoryPermission perm); | ||
| 325 | Result UnmapIoRegion64(Core::System& system, Handle io_region, uint64_t address, uint64_t size); | ||
| 326 | Result MapPhysicalMemoryUnsafe64(Core::System& system, uint64_t address, uint64_t size); | ||
| 327 | Result UnmapPhysicalMemoryUnsafe64(Core::System& system, uint64_t address, uint64_t size); | ||
| 328 | Result SetUnsafeLimit64(Core::System& system, uint64_t limit); | ||
| 329 | Result CreateCodeMemory64(Core::System& system, Handle* out_handle, uint64_t address, uint64_t size); | ||
| 330 | Result ControlCodeMemory64(Core::System& system, Handle code_memory_handle, CodeMemoryOperation operation, uint64_t address, uint64_t size, MemoryPermission perm); | ||
| 331 | void SleepSystem64(Core::System& system); | ||
| 332 | Result ReadWriteRegister64(Core::System& system, uint32_t* out_value, uint64_t address, uint32_t mask, uint32_t value); | ||
| 333 | Result SetProcessActivity64(Core::System& system, Handle process_handle, ProcessActivity process_activity); | ||
| 334 | Result CreateSharedMemory64(Core::System& system, Handle* out_handle, uint64_t size, MemoryPermission owner_perm, MemoryPermission remote_perm); | ||
| 335 | Result MapTransferMemory64(Core::System& system, Handle trmem_handle, uint64_t address, uint64_t size, MemoryPermission owner_perm); | ||
| 336 | Result UnmapTransferMemory64(Core::System& system, Handle trmem_handle, uint64_t address, uint64_t size); | ||
| 337 | Result CreateInterruptEvent64(Core::System& system, Handle* out_read_handle, int32_t interrupt_id, InterruptType interrupt_type); | ||
| 338 | Result QueryPhysicalAddress64(Core::System& system, lp64::PhysicalMemoryInfo* out_info, uint64_t address); | ||
| 339 | Result QueryIoMapping64(Core::System& system, uintptr_t* out_address, uintptr_t* out_size, uint64_t physical_address, uint64_t size); | ||
| 340 | Result CreateDeviceAddressSpace64(Core::System& system, Handle* out_handle, uint64_t das_address, uint64_t das_size); | ||
| 341 | Result AttachDeviceAddressSpace64(Core::System& system, DeviceName device_name, Handle das_handle); | ||
| 342 | Result DetachDeviceAddressSpace64(Core::System& system, DeviceName device_name, Handle das_handle); | ||
| 343 | Result MapDeviceAddressSpaceByForce64(Core::System& system, Handle das_handle, Handle process_handle, uint64_t process_address, uint64_t size, uint64_t device_address, uint32_t option); | ||
| 344 | Result MapDeviceAddressSpaceAligned64(Core::System& system, Handle das_handle, Handle process_handle, uint64_t process_address, uint64_t size, uint64_t device_address, uint32_t option); | ||
| 345 | Result UnmapDeviceAddressSpace64(Core::System& system, Handle das_handle, Handle process_handle, uint64_t process_address, uint64_t size, uint64_t device_address); | ||
| 346 | Result InvalidateProcessDataCache64(Core::System& system, Handle process_handle, uint64_t address, uint64_t size); | ||
| 347 | Result StoreProcessDataCache64(Core::System& system, Handle process_handle, uint64_t address, uint64_t size); | ||
| 348 | Result FlushProcessDataCache64(Core::System& system, Handle process_handle, uint64_t address, uint64_t size); | ||
| 349 | Result DebugActiveProcess64(Core::System& system, Handle* out_handle, uint64_t process_id); | ||
| 350 | Result BreakDebugProcess64(Core::System& system, Handle debug_handle); | ||
| 351 | Result TerminateDebugProcess64(Core::System& system, Handle debug_handle); | ||
| 352 | Result GetDebugEvent64(Core::System& system, uint64_t out_info, Handle debug_handle); | ||
| 353 | Result ContinueDebugEvent64(Core::System& system, Handle debug_handle, uint32_t flags, uint64_t thread_ids, int32_t num_thread_ids); | ||
| 354 | Result GetProcessList64(Core::System& system, int32_t* out_num_processes, uint64_t out_process_ids, int32_t max_out_count); | ||
| 355 | Result GetThreadList64(Core::System& system, int32_t* out_num_threads, uint64_t out_thread_ids, int32_t max_out_count, Handle debug_handle); | ||
| 356 | Result GetDebugThreadContext64(Core::System& system, uint64_t out_context, Handle debug_handle, uint64_t thread_id, uint32_t context_flags); | ||
| 357 | Result SetDebugThreadContext64(Core::System& system, Handle debug_handle, uint64_t thread_id, uint64_t context, uint32_t context_flags); | ||
| 358 | Result QueryDebugProcessMemory64(Core::System& system, uint64_t out_memory_info, PageInfo* out_page_info, Handle process_handle, uint64_t address); | ||
| 359 | Result ReadDebugProcessMemory64(Core::System& system, uint64_t buffer, Handle debug_handle, uint64_t address, uint64_t size); | ||
| 360 | Result WriteDebugProcessMemory64(Core::System& system, Handle debug_handle, uint64_t buffer, uint64_t address, uint64_t size); | ||
| 361 | Result SetHardwareBreakPoint64(Core::System& system, HardwareBreakPointRegisterName name, uint64_t flags, uint64_t value); | ||
| 362 | Result GetDebugThreadParam64(Core::System& system, uint64_t* out_64, uint32_t* out_32, Handle debug_handle, uint64_t thread_id, DebugThreadParam param); | ||
| 363 | Result GetSystemInfo64(Core::System& system, uint64_t* out, SystemInfoType info_type, Handle handle, uint64_t info_subtype); | ||
| 364 | Result CreatePort64(Core::System& system, Handle* out_server_handle, Handle* out_client_handle, int32_t max_sessions, bool is_light, uint64_t name); | ||
| 365 | Result ManageNamedPort64(Core::System& system, Handle* out_server_handle, uint64_t name, int32_t max_sessions); | ||
| 366 | Result ConnectToPort64(Core::System& system, Handle* out_handle, Handle port); | ||
| 367 | Result SetProcessMemoryPermission64(Core::System& system, Handle process_handle, uint64_t address, uint64_t size, MemoryPermission perm); | ||
| 368 | Result MapProcessMemory64(Core::System& system, uint64_t dst_address, Handle process_handle, uint64_t src_address, uint64_t size); | ||
| 369 | Result UnmapProcessMemory64(Core::System& system, uint64_t dst_address, Handle process_handle, uint64_t src_address, uint64_t size); | ||
| 370 | Result QueryProcessMemory64(Core::System& system, uint64_t out_memory_info, PageInfo* out_page_info, Handle process_handle, uint64_t address); | ||
| 371 | Result MapProcessCodeMemory64(Core::System& system, Handle process_handle, uint64_t dst_address, uint64_t src_address, uint64_t size); | ||
| 372 | Result UnmapProcessCodeMemory64(Core::System& system, Handle process_handle, uint64_t dst_address, uint64_t src_address, uint64_t size); | ||
| 373 | Result CreateProcess64(Core::System& system, Handle* out_handle, uint64_t parameters, uint64_t caps, int32_t num_caps); | ||
| 374 | Result StartProcess64(Core::System& system, Handle process_handle, int32_t priority, int32_t core_id, uint64_t main_thread_stack_size); | ||
| 375 | Result TerminateProcess64(Core::System& system, Handle process_handle); | ||
| 376 | Result GetProcessInfo64(Core::System& system, int64_t* out_info, Handle process_handle, ProcessInfoType info_type); | ||
| 377 | Result CreateResourceLimit64(Core::System& system, Handle* out_handle); | ||
| 378 | Result SetResourceLimitLimitValue64(Core::System& system, Handle resource_limit_handle, LimitableResource which, int64_t limit_value); | ||
| 379 | Result MapInsecureMemory64(Core::System& system, uint64_t address, uint64_t size); | ||
| 380 | Result UnmapInsecureMemory64(Core::System& system, uint64_t address, uint64_t size); | ||
| 381 | |||
| 382 | enum class SvcId : u32 { | ||
| 383 | SetHeapSize = 0x1, | ||
| 384 | SetMemoryPermission = 0x2, | ||
| 385 | SetMemoryAttribute = 0x3, | ||
| 386 | MapMemory = 0x4, | ||
| 387 | UnmapMemory = 0x5, | ||
| 388 | QueryMemory = 0x6, | ||
| 389 | ExitProcess = 0x7, | ||
| 390 | CreateThread = 0x8, | ||
| 391 | StartThread = 0x9, | ||
| 392 | ExitThread = 0xa, | ||
| 393 | SleepThread = 0xb, | ||
| 394 | GetThreadPriority = 0xc, | ||
| 395 | SetThreadPriority = 0xd, | ||
| 396 | GetThreadCoreMask = 0xe, | ||
| 397 | SetThreadCoreMask = 0xf, | ||
| 398 | GetCurrentProcessorNumber = 0x10, | ||
| 399 | SignalEvent = 0x11, | ||
| 400 | ClearEvent = 0x12, | ||
| 401 | MapSharedMemory = 0x13, | ||
| 402 | UnmapSharedMemory = 0x14, | ||
| 403 | CreateTransferMemory = 0x15, | ||
| 404 | CloseHandle = 0x16, | ||
| 405 | ResetSignal = 0x17, | ||
| 406 | WaitSynchronization = 0x18, | ||
| 407 | CancelSynchronization = 0x19, | ||
| 408 | ArbitrateLock = 0x1a, | ||
| 409 | ArbitrateUnlock = 0x1b, | ||
| 410 | WaitProcessWideKeyAtomic = 0x1c, | ||
| 411 | SignalProcessWideKey = 0x1d, | ||
| 412 | GetSystemTick = 0x1e, | ||
| 413 | ConnectToNamedPort = 0x1f, | ||
| 414 | SendSyncRequestLight = 0x20, | ||
| 415 | SendSyncRequest = 0x21, | ||
| 416 | SendSyncRequestWithUserBuffer = 0x22, | ||
| 417 | SendAsyncRequestWithUserBuffer = 0x23, | ||
| 418 | GetProcessId = 0x24, | ||
| 419 | GetThreadId = 0x25, | ||
| 420 | Break = 0x26, | ||
| 421 | OutputDebugString = 0x27, | ||
| 422 | ReturnFromException = 0x28, | ||
| 423 | GetInfo = 0x29, | ||
| 424 | FlushEntireDataCache = 0x2a, | ||
| 425 | FlushDataCache = 0x2b, | ||
| 426 | MapPhysicalMemory = 0x2c, | ||
| 427 | UnmapPhysicalMemory = 0x2d, | ||
| 428 | GetDebugFutureThreadInfo = 0x2e, | ||
| 429 | GetLastThreadInfo = 0x2f, | ||
| 430 | GetResourceLimitLimitValue = 0x30, | ||
| 431 | GetResourceLimitCurrentValue = 0x31, | ||
| 432 | SetThreadActivity = 0x32, | ||
| 433 | GetThreadContext3 = 0x33, | ||
| 434 | WaitForAddress = 0x34, | ||
| 435 | SignalToAddress = 0x35, | ||
| 436 | SynchronizePreemptionState = 0x36, | ||
| 437 | GetResourceLimitPeakValue = 0x37, | ||
| 438 | CreateIoPool = 0x39, | ||
| 439 | CreateIoRegion = 0x3a, | ||
| 440 | KernelDebug = 0x3c, | ||
| 441 | ChangeKernelTraceState = 0x3d, | ||
| 442 | CreateSession = 0x40, | ||
| 443 | AcceptSession = 0x41, | ||
| 444 | ReplyAndReceiveLight = 0x42, | ||
| 445 | ReplyAndReceive = 0x43, | ||
| 446 | ReplyAndReceiveWithUserBuffer = 0x44, | ||
| 447 | CreateEvent = 0x45, | ||
| 448 | MapIoRegion = 0x46, | ||
| 449 | UnmapIoRegion = 0x47, | ||
| 450 | MapPhysicalMemoryUnsafe = 0x48, | ||
| 451 | UnmapPhysicalMemoryUnsafe = 0x49, | ||
| 452 | SetUnsafeLimit = 0x4a, | ||
| 453 | CreateCodeMemory = 0x4b, | ||
| 454 | ControlCodeMemory = 0x4c, | ||
| 455 | SleepSystem = 0x4d, | ||
| 456 | ReadWriteRegister = 0x4e, | ||
| 457 | SetProcessActivity = 0x4f, | ||
| 458 | CreateSharedMemory = 0x50, | ||
| 459 | MapTransferMemory = 0x51, | ||
| 460 | UnmapTransferMemory = 0x52, | ||
| 461 | CreateInterruptEvent = 0x53, | ||
| 462 | QueryPhysicalAddress = 0x54, | ||
| 463 | QueryIoMapping = 0x55, | ||
| 464 | CreateDeviceAddressSpace = 0x56, | ||
| 465 | AttachDeviceAddressSpace = 0x57, | ||
| 466 | DetachDeviceAddressSpace = 0x58, | ||
| 467 | MapDeviceAddressSpaceByForce = 0x59, | ||
| 468 | MapDeviceAddressSpaceAligned = 0x5a, | ||
| 469 | UnmapDeviceAddressSpace = 0x5c, | ||
| 470 | InvalidateProcessDataCache = 0x5d, | ||
| 471 | StoreProcessDataCache = 0x5e, | ||
| 472 | FlushProcessDataCache = 0x5f, | ||
| 473 | DebugActiveProcess = 0x60, | ||
| 474 | BreakDebugProcess = 0x61, | ||
| 475 | TerminateDebugProcess = 0x62, | ||
| 476 | GetDebugEvent = 0x63, | ||
| 477 | ContinueDebugEvent = 0x64, | ||
| 478 | GetProcessList = 0x65, | ||
| 479 | GetThreadList = 0x66, | ||
| 480 | GetDebugThreadContext = 0x67, | ||
| 481 | SetDebugThreadContext = 0x68, | ||
| 482 | QueryDebugProcessMemory = 0x69, | ||
| 483 | ReadDebugProcessMemory = 0x6a, | ||
| 484 | WriteDebugProcessMemory = 0x6b, | ||
| 485 | SetHardwareBreakPoint = 0x6c, | ||
| 486 | GetDebugThreadParam = 0x6d, | ||
| 487 | GetSystemInfo = 0x6f, | ||
| 488 | CreatePort = 0x70, | ||
| 489 | ManageNamedPort = 0x71, | ||
| 490 | ConnectToPort = 0x72, | ||
| 491 | SetProcessMemoryPermission = 0x73, | ||
| 492 | MapProcessMemory = 0x74, | ||
| 493 | UnmapProcessMemory = 0x75, | ||
| 494 | QueryProcessMemory = 0x76, | ||
| 495 | MapProcessCodeMemory = 0x77, | ||
| 496 | UnmapProcessCodeMemory = 0x78, | ||
| 497 | CreateProcess = 0x79, | ||
| 498 | StartProcess = 0x7a, | ||
| 499 | TerminateProcess = 0x7b, | ||
| 500 | GetProcessInfo = 0x7c, | ||
| 501 | CreateResourceLimit = 0x7d, | ||
| 502 | SetResourceLimitLimitValue = 0x7e, | ||
| 503 | CallSecureMonitor = 0x7f, | ||
| 504 | MapInsecureMemory = 0x90, | ||
| 505 | UnmapInsecureMemory = 0x91, | ||
| 506 | }; | ||
| 507 | // clang-format on | ||
| 508 | |||
| 509 | // Custom ABI. | ||
| 510 | Result ReplyAndReceiveLight(Core::System& system, Handle handle, uint32_t* args); | ||
| 511 | Result ReplyAndReceiveLight64From32(Core::System& system, Handle handle, uint32_t* args); | ||
| 512 | Result ReplyAndReceiveLight64(Core::System& system, Handle handle, uint32_t* args); | ||
| 513 | |||
| 514 | Result SendSyncRequestLight(Core::System& system, Handle session_handle, uint32_t* args); | ||
| 515 | Result SendSyncRequestLight64From32(Core::System& system, Handle session_handle, uint32_t* args); | ||
| 516 | Result SendSyncRequestLight64(Core::System& system, Handle session_handle, uint32_t* args); | ||
| 517 | |||
| 518 | void CallSecureMonitor(Core::System& system, lp64::SecureMonitorArguments* args); | ||
| 519 | void CallSecureMonitor64From32(Core::System& system, ilp32::SecureMonitorArguments* args); | ||
| 520 | void CallSecureMonitor64(Core::System& system, lp64::SecureMonitorArguments* args); | ||
| 521 | |||
| 522 | // Defined in svc_light_ipc.cpp. | ||
| 523 | void SvcWrap_ReplyAndReceiveLight64From32(Core::System& system); | ||
| 524 | void SvcWrap_ReplyAndReceiveLight64(Core::System& system); | ||
| 525 | |||
| 526 | void SvcWrap_SendSyncRequestLight64From32(Core::System& system); | ||
| 527 | void SvcWrap_SendSyncRequestLight64(Core::System& system); | ||
| 528 | |||
| 529 | // Defined in svc_secure_monitor_call.cpp. | ||
| 530 | void SvcWrap_CallSecureMonitor64From32(Core::System& system); | ||
| 531 | void SvcWrap_CallSecureMonitor64(Core::System& system); | ||
| 532 | |||
| 533 | // Perform a supervisor call by index. | ||
| 534 | void Call(Core::System& system, u32 imm); | ||
| 171 | 535 | ||
| 172 | } // namespace Kernel::Svc | 536 | } // namespace Kernel::Svc |