From 070d2786c6a89438ca58764af6a83e1c45ac407c Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Wed, 15 Jun 2022 13:00:36 -0700 Subject: [PATCH] strat: add explicit namespaced svc accessors --- .../svc/svc_stratosphere_shims.hpp | 481 +----- .../svc/os/horizon/ams_svc_shims.arch.arm64.s | 1356 +++++++++++++++++ .../horizon/ams_svc_shims.board.nintendo_nx.s | 32 + 3 files changed, 1391 insertions(+), 478 deletions(-) create mode 100644 libraries/libstratosphere/source/svc/os/horizon/ams_svc_shims.arch.arm64.s create mode 100644 libraries/libstratosphere/source/svc/os/horizon/ams_svc_shims.board.nintendo_nx.s diff --git a/libraries/libstratosphere/include/stratosphere/svc/svc_stratosphere_shims.hpp b/libraries/libstratosphere/include/stratosphere/svc/svc_stratosphere_shims.hpp index 4850b0292..baaacbcd1 100644 --- a/libraries/libstratosphere/include/stratosphere/svc/svc_stratosphere_shims.hpp +++ b/libraries/libstratosphere/include/stratosphere/svc/svc_stratosphere_shims.hpp @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#if defined(ATMOSPHERE_BOARD_NINTENDO_NX) +#if defined(ATMOSPHERE_OS_HORIZON) namespace ams::svc { @@ -22,485 +22,10 @@ namespace aarch64::lp64 { - ALWAYS_INLINE Result SetHeapSize(::ams::svc::Address *out_address, ::ams::svc::Size size) { - R_RETURN(::svcSetHeapSize(reinterpret_cast(out_address), size)); - } - + /* Convenience accessor. */ ALWAYS_INLINE Result SetHeapSize(uintptr_t *out_address, ::ams::svc::Size size) { static_assert(sizeof(::ams::svc::Address) == sizeof(uintptr_t)); - R_RETURN(::svcSetHeapSize(reinterpret_cast(out_address), size)); - } - - ALWAYS_INLINE Result SetMemoryPermission(::ams::svc::Address address, ::ams::svc::Size size, ::ams::svc::MemoryPermission perm) { - R_RETURN(::svcSetMemoryPermission(reinterpret_cast(static_cast(address)), size, static_cast(perm))); - } - - ALWAYS_INLINE Result SetMemoryAttribute(::ams::svc::Address address, ::ams::svc::Size size, uint32_t mask, uint32_t attr) { - R_RETURN(::svcSetMemoryAttribute(reinterpret_cast(static_cast(address)), size, mask, attr)); - } - - ALWAYS_INLINE Result MapMemory(::ams::svc::Address dst_address, ::ams::svc::Address src_address, ::ams::svc::Size size) { - R_RETURN(::svcMapMemory(reinterpret_cast(static_cast(dst_address)), reinterpret_cast(static_cast(src_address)), size)); - } - - ALWAYS_INLINE Result UnmapMemory(::ams::svc::Address dst_address, ::ams::svc::Address src_address, ::ams::svc::Size size) { - R_RETURN(::svcUnmapMemory(reinterpret_cast(static_cast(dst_address)), reinterpret_cast(static_cast(src_address)), size)); - } - - ALWAYS_INLINE Result QueryMemory(::ams::svc::UserPointer< ::ams::svc::lp64::MemoryInfo *> out_memory_info, ::ams::svc::PageInfo *out_page_info, ::ams::svc::Address address) { - R_RETURN(::svcQueryMemory(reinterpret_cast<::MemoryInfo *>(out_memory_info.GetPointerUnsafe()), reinterpret_cast(out_page_info), address)); - } - - ALWAYS_INLINE void ExitProcess() { - return ::svcExitProcess(); - } - - ALWAYS_INLINE Result CreateThread(::ams::svc::Handle *out_handle, ::ams::svc::ThreadFunc func, ::ams::svc::Address arg, ::ams::svc::Address stack_bottom, int32_t priority, int32_t core_id) { - R_RETURN(::svcCreateThread(out_handle, reinterpret_cast(static_cast(func)), reinterpret_cast(static_cast(arg)), reinterpret_cast(static_cast(stack_bottom)), priority, core_id)); - } - - ALWAYS_INLINE Result StartThread(::ams::svc::Handle thread_handle) { - R_RETURN(::svcStartThread(thread_handle)); - } - - ALWAYS_INLINE void ExitThread() { - return ::svcExitThread(); - } - - ALWAYS_INLINE void SleepThread(int64_t ns) { - return ::svcSleepThread(ns); - } - - ALWAYS_INLINE Result GetThreadPriority(int32_t *out_priority, ::ams::svc::Handle thread_handle) { - R_RETURN(::svcGetThreadPriority(out_priority, thread_handle)); - } - - ALWAYS_INLINE Result SetThreadPriority(::ams::svc::Handle thread_handle, int32_t priority) { - R_RETURN(::svcSetThreadPriority(thread_handle, priority)); - } - - ALWAYS_INLINE Result GetThreadCoreMask(int32_t *out_core_id, uint64_t *out_affinity_mask, ::ams::svc::Handle thread_handle) { - R_RETURN(::svcGetThreadCoreMask(out_core_id, out_affinity_mask, thread_handle)); - } - - ALWAYS_INLINE Result SetThreadCoreMask(::ams::svc::Handle thread_handle, int32_t core_id, uint64_t affinity_mask) { - R_RETURN(::svcSetThreadCoreMask(thread_handle, core_id, affinity_mask)); - } - - ALWAYS_INLINE int32_t GetCurrentProcessorNumber() { - return ::svcGetCurrentProcessorNumber(); - } - - ALWAYS_INLINE Result SignalEvent(::ams::svc::Handle event_handle) { - R_RETURN(::svcSignalEvent(event_handle)); - } - - ALWAYS_INLINE Result ClearEvent(::ams::svc::Handle event_handle) { - R_RETURN(::svcClearEvent(event_handle)); - } - - ALWAYS_INLINE Result MapSharedMemory(::ams::svc::Handle shmem_handle, ::ams::svc::Address address, ::ams::svc::Size size, ::ams::svc::MemoryPermission map_perm) { - R_RETURN(::svcMapSharedMemory(shmem_handle, reinterpret_cast(static_cast(address)), size, static_cast(map_perm))); - } - - ALWAYS_INLINE Result UnmapSharedMemory(::ams::svc::Handle shmem_handle, ::ams::svc::Address address, ::ams::svc::Size size) { - R_RETURN(::svcUnmapSharedMemory(shmem_handle, reinterpret_cast(static_cast(address)), size)); - } - - ALWAYS_INLINE Result CreateTransferMemory(::ams::svc::Handle *out_handle, ::ams::svc::Address address, ::ams::svc::Size size, ::ams::svc::MemoryPermission map_perm) { - R_RETURN(::svcCreateTransferMemory(out_handle, reinterpret_cast(static_cast(address)), size, static_cast(map_perm))); - } - - ALWAYS_INLINE Result CloseHandle(::ams::svc::Handle handle) { - R_RETURN(::svcCloseHandle(handle)); - } - - ALWAYS_INLINE Result ResetSignal(::ams::svc::Handle handle) { - R_RETURN(::svcResetSignal(handle)); - } - - ALWAYS_INLINE Result WaitSynchronization(int32_t *out_index, ::ams::svc::UserPointer handles, int32_t num_handles, int64_t timeout_ns) { - R_RETURN(::svcWaitSynchronization(out_index, handles.GetPointerUnsafe(), num_handles, timeout_ns)); - } - - ALWAYS_INLINE Result CancelSynchronization(::ams::svc::Handle handle) { - R_RETURN(::svcCancelSynchronization(handle)); - } - - ALWAYS_INLINE Result ArbitrateLock(::ams::svc::Handle thread_handle, ::ams::svc::Address address, uint32_t tag) { - R_RETURN(::svcArbitrateLock(thread_handle, reinterpret_cast(static_cast(address)), tag)); - } - - ALWAYS_INLINE Result ArbitrateUnlock(::ams::svc::Address address) { - R_RETURN(::svcArbitrateUnlock(reinterpret_cast(static_cast(address)))); - } - - ALWAYS_INLINE Result WaitProcessWideKeyAtomic(::ams::svc::Address address, ::ams::svc::Address cv_key, uint32_t tag, int64_t timeout_ns) { - R_RETURN(::svcWaitProcessWideKeyAtomic(reinterpret_cast(static_cast(address)), reinterpret_cast(static_cast(cv_key)), tag, timeout_ns)); - } - - ALWAYS_INLINE void SignalProcessWideKey(::ams::svc::Address cv_key, int32_t count) { - return ::svcSignalProcessWideKey(reinterpret_cast(static_cast(cv_key)), count); - } - - ALWAYS_INLINE int64_t GetSystemTick() { - return ::svcGetSystemTick(); - } - - ALWAYS_INLINE Result ConnectToNamedPort(::ams::svc::Handle *out_handle, ::ams::svc::UserPointer name) { - R_RETURN(::svcConnectToNamedPort(out_handle, name.GetPointerUnsafe())); - } - - ALWAYS_INLINE Result SendSyncRequestLight(::ams::svc::Handle session_handle) { - R_RETURN(::svcSendSyncRequestLight(session_handle)); - } - - ALWAYS_INLINE Result SendSyncRequest(::ams::svc::Handle session_handle) { - R_RETURN(::svcSendSyncRequest(session_handle)); - } - - ALWAYS_INLINE Result SendSyncRequestWithUserBuffer(::ams::svc::Address message_buffer, ::ams::svc::Size message_buffer_size, ::ams::svc::Handle session_handle) { - R_RETURN(::svcSendSyncRequestWithUserBuffer(reinterpret_cast(static_cast(message_buffer)), message_buffer_size, session_handle)); - } - - ALWAYS_INLINE Result SendAsyncRequestWithUserBuffer(::ams::svc::Handle *out_event_handle, ::ams::svc::Address message_buffer, ::ams::svc::Size message_buffer_size, ::ams::svc::Handle session_handle) { - R_RETURN(::svcSendAsyncRequestWithUserBuffer(out_event_handle, reinterpret_cast(static_cast(message_buffer)), message_buffer_size, session_handle)); - } - - ALWAYS_INLINE Result GetProcessId(uint64_t *out_process_id, ::ams::svc::Handle process_handle) { - R_RETURN(::svcGetProcessId(out_process_id, process_handle)); - } - - ALWAYS_INLINE Result GetThreadId(uint64_t *out_thread_id, ::ams::svc::Handle thread_handle) { - R_RETURN(::svcGetThreadId(out_thread_id, thread_handle)); - } - - ALWAYS_INLINE void Break(::ams::svc::BreakReason break_reason, ::ams::svc::Address arg, ::ams::svc::Size size) { - ::svcBreak(break_reason, arg, size); - } - - ALWAYS_INLINE Result OutputDebugString(::ams::svc::UserPointer debug_str, ::ams::svc::Size len) { - R_RETURN(::svcOutputDebugString(debug_str.GetPointerUnsafe(), len)); - } - - ALWAYS_INLINE void ReturnFromException(::ams::Result result) { - return ::svcReturnFromException(result.GetValue()); - } - - ALWAYS_INLINE Result GetInfo(uint64_t *out, ::ams::svc::InfoType info_type, ::ams::svc::Handle handle, uint64_t info_subtype) { - R_RETURN(::svcGetInfo(out, static_cast(info_type), handle, info_subtype)); - } - - ALWAYS_INLINE void FlushEntireDataCache() { - return ::svcFlushEntireDataCache(); - } - - ALWAYS_INLINE Result FlushDataCache(::ams::svc::Address address, ::ams::svc::Size size) { - R_RETURN(::svcFlushDataCache(reinterpret_cast(static_cast(address)), size)); - } - - ALWAYS_INLINE Result MapPhysicalMemory(::ams::svc::Address address, ::ams::svc::Size size) { - R_RETURN(::svcMapPhysicalMemory(reinterpret_cast(static_cast(address)), size)); - } - - ALWAYS_INLINE Result UnmapPhysicalMemory(::ams::svc::Address address, ::ams::svc::Size size) { - R_RETURN(::svcUnmapPhysicalMemory(reinterpret_cast(static_cast(address)), size)); - } - - ALWAYS_INLINE Result GetDebugFutureThreadInfo(::ams::svc::lp64::LastThreadContext *out_context, uint64_t *thread_id, ::ams::svc::Handle debug_handle, int64_t ns) { - R_RETURN(::svcGetDebugFutureThreadInfo(reinterpret_cast<::LastThreadContext *>(out_context), thread_id, debug_handle, ns)); - } - - ALWAYS_INLINE Result GetLastThreadInfo(::ams::svc::lp64::LastThreadContext *out_context, ::ams::svc::Address *out_tls_address, uint32_t *out_flags) { - R_RETURN(::svcGetLastThreadInfo(reinterpret_cast<::LastThreadContext *>(out_context), reinterpret_cast(out_tls_address), out_flags)); - } - - ALWAYS_INLINE Result GetResourceLimitLimitValue(int64_t *out_limit_value, ::ams::svc::Handle resource_limit_handle, ::ams::svc::LimitableResource which) { - R_RETURN(::svcGetResourceLimitLimitValue(out_limit_value, resource_limit_handle, static_cast<::LimitableResource>(which))); - } - - ALWAYS_INLINE Result GetResourceLimitCurrentValue(int64_t *out_current_value, ::ams::svc::Handle resource_limit_handle, ::ams::svc::LimitableResource which) { - R_RETURN(::svcGetResourceLimitCurrentValue(out_current_value, resource_limit_handle, static_cast<::LimitableResource>(which))); - } - - ALWAYS_INLINE Result SetThreadActivity(::ams::svc::Handle thread_handle, ::ams::svc::ThreadActivity thread_activity) { - R_RETURN(::svcSetThreadActivity(thread_handle, static_cast<::ThreadActivity>(thread_activity))); - } - - ALWAYS_INLINE Result GetThreadContext3(::ams::svc::UserPointer< ::ams::svc::ThreadContext *> out_context, ::ams::svc::Handle thread_handle) { - R_RETURN(::svcGetThreadContext3(reinterpret_cast<::ThreadContext *>(out_context.GetPointerUnsafe()), thread_handle)); - } - - ALWAYS_INLINE Result WaitForAddress(::ams::svc::Address address, ::ams::svc::ArbitrationType arb_type, int32_t value, int64_t timeout_ns) { - R_RETURN(::svcWaitForAddress(reinterpret_cast(static_cast(address)), arb_type, value, timeout_ns)); - } - - ALWAYS_INLINE Result SignalToAddress(::ams::svc::Address address, ::ams::svc::SignalType signal_type, int32_t value, int32_t count) { - R_RETURN(::svcSignalToAddress(reinterpret_cast(static_cast(address)), signal_type, value, count)); - } - - ALWAYS_INLINE void SynchronizePreemptionState() { - return ::svcSynchronizePreemptionState(); - } - - ALWAYS_INLINE Result GetResourceLimitPeakValue(int64_t *out_peak_value, ::ams::svc::Handle resource_limit_handle, ::ams::svc::LimitableResource which) { - R_RETURN(::svcGetResourceLimitPeakValue(out_peak_value, resource_limit_handle, static_cast<::LimitableResource>(which))); - } - - ALWAYS_INLINE void KernelDebug(::ams::svc::KernelDebugType kern_debug_type, uint64_t arg0, uint64_t arg1, uint64_t arg2) { - return ::svcKernelDebug(kern_debug_type, arg0, arg1, arg2); - } - - ALWAYS_INLINE void ChangeKernelTraceState(::ams::svc::KernelTraceState kern_trace_state) { - return ::svcChangeKernelTraceState(kern_trace_state); - } - - ALWAYS_INLINE Result CreateSession(::ams::svc::Handle *out_server_session_handle, ::ams::svc::Handle *out_client_session_handle, bool is_light, ::ams::svc::Address name) { - R_RETURN(::svcCreateSession(out_server_session_handle, out_client_session_handle, is_light, name)); - } - - ALWAYS_INLINE Result AcceptSession(::ams::svc::Handle *out_handle, ::ams::svc::Handle port) { - R_RETURN(::svcAcceptSession(out_handle, port)); - } - - ALWAYS_INLINE Result ReplyAndReceiveLight(::ams::svc::Handle handle) { - R_RETURN(::svcReplyAndReceiveLight(handle)); - } - - ALWAYS_INLINE Result ReplyAndReceive(int32_t *out_index, ::ams::svc::UserPointer handles, int32_t num_handles, ::ams::svc::Handle reply_target, int64_t timeout_ns) { - R_RETURN(::svcReplyAndReceive(out_index, handles.GetPointerUnsafe(), num_handles, reply_target, timeout_ns)); - } - - ALWAYS_INLINE Result ReplyAndReceiveWithUserBuffer(int32_t *out_index, ::ams::svc::Address message_buffer, ::ams::svc::Size message_buffer_size, ::ams::svc::UserPointer handles, int32_t num_handles, ::ams::svc::Handle reply_target, int64_t timeout_ns) { - R_RETURN(::svcReplyAndReceiveWithUserBuffer(out_index, reinterpret_cast(static_cast(message_buffer)), message_buffer_size, handles.GetPointerUnsafe(), num_handles, reply_target, timeout_ns)); - } - - ALWAYS_INLINE Result CreateEvent(::ams::svc::Handle *out_write_handle, ::ams::svc::Handle *out_read_handle) { - R_RETURN(::svcCreateEvent(out_write_handle, out_read_handle)); - } - - ALWAYS_INLINE Result MapPhysicalMemoryUnsafe(::ams::svc::Address address, ::ams::svc::Size size) { - R_RETURN(::svcMapPhysicalMemoryUnsafe(reinterpret_cast(static_cast(address)), size)); - } - - ALWAYS_INLINE Result UnmapPhysicalMemoryUnsafe(::ams::svc::Address address, ::ams::svc::Size size) { - R_RETURN(::svcUnmapPhysicalMemoryUnsafe(reinterpret_cast(static_cast(address)), size)); - } - - ALWAYS_INLINE Result SetUnsafeLimit(::ams::svc::Size limit) { - R_RETURN(::svcSetUnsafeLimit(limit)); - } - - ALWAYS_INLINE Result CreateCodeMemory(::ams::svc::Handle *out_handle, ::ams::svc::Address address, ::ams::svc::Size size) { - R_RETURN(::svcCreateCodeMemory(out_handle, reinterpret_cast(static_cast(address)), size)); - } - - ALWAYS_INLINE Result ControlCodeMemory(::ams::svc::Handle code_memory_handle, ::ams::svc::CodeMemoryOperation operation, uint64_t address, uint64_t size, ::ams::svc::MemoryPermission perm) { - R_RETURN(::svcControlCodeMemory(code_memory_handle, static_cast<::CodeMapOperation>(operation), reinterpret_cast(address), size, static_cast(perm))); - } - - ALWAYS_INLINE void SleepSystem() { - return ::svcSleepSystem(); - } - - ALWAYS_INLINE Result ReadWriteRegister(uint32_t *out_value, ::ams::svc::PhysicalAddress address, uint32_t mask, uint32_t value) { - R_RETURN(::svcReadWriteRegister(out_value, address, mask, value)); - } - - ALWAYS_INLINE Result SetProcessActivity(::ams::svc::Handle process_handle, ::ams::svc::ProcessActivity process_activity) { - R_RETURN(::svcSetProcessActivity(process_handle, static_cast<::ProcessActivity>(process_activity))); - } - - ALWAYS_INLINE Result CreateSharedMemory(::ams::svc::Handle *out_handle, ::ams::svc::Size size, ::ams::svc::MemoryPermission owner_perm, ::ams::svc::MemoryPermission remote_perm) { - R_RETURN(::svcCreateSharedMemory(out_handle, size, static_cast(owner_perm), static_cast(remote_perm))); - } - - ALWAYS_INLINE Result MapTransferMemory(::ams::svc::Handle trmem_handle, ::ams::svc::Address address, ::ams::svc::Size size, ::ams::svc::MemoryPermission owner_perm) { - R_RETURN(::svcMapTransferMemory(trmem_handle, reinterpret_cast(static_cast(address)), size, static_cast(owner_perm))); - } - - ALWAYS_INLINE Result UnmapTransferMemory(::ams::svc::Handle trmem_handle, ::ams::svc::Address address, ::ams::svc::Size size) { - R_RETURN(::svcUnmapTransferMemory(trmem_handle, reinterpret_cast(static_cast(address)), size)); - } - - ALWAYS_INLINE Result CreateInterruptEvent(::ams::svc::Handle *out_read_handle, int32_t interrupt_id, ::ams::svc::InterruptType interrupt_type) { - R_RETURN(::svcCreateInterruptEvent(out_read_handle, interrupt_id, static_cast(interrupt_type))); - } - - ALWAYS_INLINE Result QueryPhysicalAddress(::ams::svc::lp64::PhysicalMemoryInfo *out_info, ::ams::svc::Address address) { - R_RETURN(::svcQueryPhysicalAddress(reinterpret_cast<::PhysicalMemoryInfo *>(out_info), address)); - } - - ALWAYS_INLINE Result QueryIoMapping(::ams::svc::Address *out_address, ::ams::svc::Size *out_size, ::ams::svc::PhysicalAddress physical_address, ::ams::svc::Size size) { - R_RETURN(::svcQueryIoMapping(reinterpret_cast(out_address), reinterpret_cast(out_size), physical_address, size)); - } - - ALWAYS_INLINE Result LegacyQueryIoMapping(::ams::svc::Address *out_address, ::ams::svc::PhysicalAddress physical_address, ::ams::svc::Size size) { - R_RETURN(::svcLegacyQueryIoMapping(reinterpret_cast(out_address), physical_address, size)); - } - - ALWAYS_INLINE Result CreateDeviceAddressSpace(::ams::svc::Handle *out_handle, uint64_t das_address, uint64_t das_size) { - R_RETURN(::svcCreateDeviceAddressSpace(out_handle, das_address, das_size)); - } - - ALWAYS_INLINE Result AttachDeviceAddressSpace(::ams::svc::DeviceName device_name, ::ams::svc::Handle das_handle) { - R_RETURN(::svcAttachDeviceAddressSpace(static_cast(device_name), das_handle)); - } - - ALWAYS_INLINE Result DetachDeviceAddressSpace(::ams::svc::DeviceName device_name, ::ams::svc::Handle das_handle) { - R_RETURN(::svcDetachDeviceAddressSpace(static_cast(device_name), das_handle)); - } - - ALWAYS_INLINE Result MapDeviceAddressSpaceByForce(::ams::svc::Handle das_handle, ::ams::svc::Handle process_handle, uint64_t process_address, ::ams::svc::Size size, uint64_t device_address, ::ams::svc::MemoryPermission device_perm) { - R_RETURN(::svcMapDeviceAddressSpaceByForce(das_handle, process_handle, process_address, size, device_address, static_cast(device_perm))); - } - - ALWAYS_INLINE Result MapDeviceAddressSpaceAligned(::ams::svc::Handle das_handle, ::ams::svc::Handle process_handle, uint64_t process_address, ::ams::svc::Size size, uint64_t device_address, ::ams::svc::MemoryPermission device_perm) { - R_RETURN(::svcMapDeviceAddressSpaceAligned(das_handle, process_handle, process_address, size, device_address, static_cast(device_perm))); - } - - ALWAYS_INLINE Result UnmapDeviceAddressSpace(::ams::svc::Handle das_handle, ::ams::svc::Handle process_handle, uint64_t process_address, ::ams::svc::Size size, uint64_t device_address) { - R_RETURN(::svcUnmapDeviceAddressSpace(das_handle, process_handle, process_address, size, device_address)); - } - - ALWAYS_INLINE Result InvalidateProcessDataCache(::ams::svc::Handle process_handle, uint64_t address, uint64_t size) { - R_RETURN(::svcInvalidateProcessDataCache(process_handle, address, size)); - } - - ALWAYS_INLINE Result StoreProcessDataCache(::ams::svc::Handle process_handle, uint64_t address, uint64_t size) { - R_RETURN(::svcStoreProcessDataCache(process_handle, address, size)); - } - - ALWAYS_INLINE Result FlushProcessDataCache(::ams::svc::Handle process_handle, uint64_t address, uint64_t size) { - R_RETURN(::svcFlushProcessDataCache(process_handle, address, size)); - } - - ALWAYS_INLINE Result DebugActiveProcess(::ams::svc::Handle *out_handle, uint64_t process_id) { - R_RETURN(::svcDebugActiveProcess(out_handle, process_id)); - } - - ALWAYS_INLINE Result BreakDebugProcess(::ams::svc::Handle debug_handle) { - R_RETURN(::svcBreakDebugProcess(debug_handle)); - } - - ALWAYS_INLINE Result TerminateDebugProcess(::ams::svc::Handle debug_handle) { - R_RETURN(::svcTerminateDebugProcess(debug_handle)); - } - - ALWAYS_INLINE Result GetDebugEvent(::ams::svc::UserPointer< ::ams::svc::lp64::DebugEventInfo *> out_info, ::ams::svc::Handle debug_handle) { - R_RETURN(::svcGetDebugEvent(out_info.GetPointerUnsafe(), debug_handle)); - } - - ALWAYS_INLINE Result ContinueDebugEvent(::ams::svc::Handle debug_handle, uint32_t flags, ::ams::svc::UserPointer thread_ids, int32_t num_thread_ids) { - R_RETURN(::svcContinueDebugEvent(debug_handle, flags, const_cast(thread_ids.GetPointerUnsafe()), num_thread_ids)); - } - - ALWAYS_INLINE Result LegacyContinueDebugEvent(::ams::svc::Handle debug_handle, uint32_t flags, uint64_t thread_id) { - R_RETURN(::svcLegacyContinueDebugEvent(debug_handle, flags, thread_id)); - } - - ALWAYS_INLINE Result GetProcessList(int32_t *out_num_processes, ::ams::svc::UserPointer out_process_ids, int32_t max_out_count) { - R_RETURN(::svcGetProcessList(out_num_processes, out_process_ids.GetPointerUnsafe(), max_out_count)); - } - - ALWAYS_INLINE Result GetThreadList(int32_t *out_num_threads, ::ams::svc::UserPointer out_thread_ids, int32_t max_out_count, ::ams::svc::Handle debug_handle) { - R_RETURN(::svcGetThreadList(out_num_threads, out_thread_ids.GetPointerUnsafe(), max_out_count, debug_handle)); - } - - ALWAYS_INLINE Result GetDebugThreadContext(::ams::svc::UserPointer< ::ams::svc::ThreadContext *> out_context, ::ams::svc::Handle debug_handle, uint64_t thread_id, uint32_t context_flags) { - R_RETURN(::svcGetDebugThreadContext(reinterpret_cast<::ThreadContext *>(out_context.GetPointerUnsafe()), debug_handle, thread_id, context_flags)); - } - - ALWAYS_INLINE Result SetDebugThreadContext(::ams::svc::Handle debug_handle, uint64_t thread_id, ::ams::svc::UserPointer context, uint32_t context_flags) { - R_RETURN(::svcSetDebugThreadContext(debug_handle, thread_id, reinterpret_cast(context.GetPointerUnsafe()), context_flags)); - } - - ALWAYS_INLINE Result QueryDebugProcessMemory(::ams::svc::UserPointer< ::ams::svc::lp64::MemoryInfo *> out_memory_info, ::ams::svc::PageInfo *out_page_info, ::ams::svc::Handle process_handle, ::ams::svc::Address address) { - R_RETURN(::svcQueryDebugProcessMemory(reinterpret_cast<::MemoryInfo *>(out_memory_info.GetPointerUnsafe()), reinterpret_cast(out_page_info), process_handle, address)); - } - - ALWAYS_INLINE Result ReadDebugProcessMemory(::ams::svc::Address buffer, ::ams::svc::Handle debug_handle, ::ams::svc::Address address, ::ams::svc::Size size) { - R_RETURN(::svcReadDebugProcessMemory(reinterpret_cast(static_cast(buffer)), debug_handle, address, size)); - } - - ALWAYS_INLINE Result WriteDebugProcessMemory(::ams::svc::Handle debug_handle, ::ams::svc::Address buffer, ::ams::svc::Address address, ::ams::svc::Size size) { - R_RETURN(::svcWriteDebugProcessMemory(debug_handle, reinterpret_cast(static_cast(buffer)), address, size)); - } - - ALWAYS_INLINE Result SetHardwareBreakPoint(::ams::svc::HardwareBreakPointRegisterName name, uint64_t flags, uint64_t value) { - R_RETURN(::svcSetHardwareBreakPoint(static_cast(name), flags, value)); - } - - ALWAYS_INLINE Result GetDebugThreadParam(uint64_t *out_64, uint32_t *out_32, ::ams::svc::Handle debug_handle, uint64_t thread_id, ::ams::svc::DebugThreadParam param) { - R_RETURN(::svcGetDebugThreadParam(out_64, out_32, debug_handle, thread_id, static_cast<::DebugThreadParam>(param))); - } - - ALWAYS_INLINE Result GetSystemInfo(uint64_t *out, ::ams::svc::SystemInfoType info_type, ::ams::svc::Handle handle, uint64_t info_subtype) { - R_RETURN(::svcGetSystemInfo(out, static_cast(info_type), handle, info_subtype)); - } - - ALWAYS_INLINE Result CreatePort(::ams::svc::Handle *out_server_handle, ::ams::svc::Handle *out_client_handle, int32_t max_sessions, bool is_light, ::ams::svc::Address name) { - R_RETURN(::svcCreatePort(out_server_handle, out_client_handle, max_sessions, is_light, reinterpret_cast(static_cast(name)))); - } - - ALWAYS_INLINE Result ManageNamedPort(::ams::svc::Handle *out_server_handle, ::ams::svc::UserPointer name, int32_t max_sessions) { - R_RETURN(::svcManageNamedPort(out_server_handle, name.GetPointerUnsafe(), max_sessions)); - } - - ALWAYS_INLINE Result ConnectToPort(::ams::svc::Handle *out_handle, ::ams::svc::Handle port) { - R_RETURN(::svcConnectToPort(out_handle, port)); - } - - ALWAYS_INLINE Result SetProcessMemoryPermission(::ams::svc::Handle process_handle, uint64_t address, uint64_t size, ::ams::svc::MemoryPermission perm) { - R_RETURN(::svcSetProcessMemoryPermission(process_handle, address, size, static_cast(perm))); - } - - ALWAYS_INLINE Result MapProcessMemory(::ams::svc::Address dst_address, ::ams::svc::Handle process_handle, uint64_t src_address, ::ams::svc::Size size) { - R_RETURN(::svcMapProcessMemory(reinterpret_cast(static_cast(dst_address)), process_handle, src_address, size)); - } - - ALWAYS_INLINE Result UnmapProcessMemory(::ams::svc::Address dst_address, ::ams::svc::Handle process_handle, uint64_t src_address, ::ams::svc::Size size) { - R_RETURN(::svcUnmapProcessMemory(reinterpret_cast(static_cast(dst_address)), process_handle, src_address, size)); - } - - ALWAYS_INLINE Result QueryProcessMemory(::ams::svc::UserPointer< ::ams::svc::lp64::MemoryInfo *> out_memory_info, ::ams::svc::PageInfo *out_page_info, ::ams::svc::Handle process_handle, uint64_t address) { - R_RETURN(::svcQueryProcessMemory(reinterpret_cast<::MemoryInfo *>(out_memory_info.GetPointerUnsafe()), reinterpret_cast(out_page_info), process_handle, address)); - } - - ALWAYS_INLINE Result MapProcessCodeMemory(::ams::svc::Handle process_handle, uint64_t dst_address, uint64_t src_address, uint64_t size) { - R_RETURN(::svcMapProcessCodeMemory(process_handle, dst_address, src_address, size)); - } - - ALWAYS_INLINE Result UnmapProcessCodeMemory(::ams::svc::Handle process_handle, uint64_t dst_address, uint64_t src_address, uint64_t size) { - R_RETURN(::svcUnmapProcessCodeMemory(process_handle, dst_address, src_address, size)); - } - - ALWAYS_INLINE Result CreateProcess(::ams::svc::Handle *out_handle, ::ams::svc::UserPointer parameters, ::ams::svc::UserPointer caps, int32_t num_caps) { - R_RETURN(::svcCreateProcess(out_handle, parameters.GetPointerUnsafe(), caps.GetPointerUnsafe(), num_caps)); - } - - ALWAYS_INLINE Result StartProcess(::ams::svc::Handle process_handle, int32_t priority, int32_t core_id, uint64_t main_thread_stack_size) { - R_RETURN(::svcStartProcess(process_handle, priority, core_id, main_thread_stack_size)); - } - - ALWAYS_INLINE Result TerminateProcess(::ams::svc::Handle process_handle) { - R_RETURN(::svcTerminateProcess(process_handle)); - } - - ALWAYS_INLINE Result GetProcessInfo(int64_t *out_info, ::ams::svc::Handle process_handle, ::ams::svc::ProcessInfoType info_type) { - R_RETURN(::svcGetProcessInfo(out_info, process_handle, static_cast<::ProcessInfoType>(info_type))); - } - - ALWAYS_INLINE Result CreateResourceLimit(::ams::svc::Handle *out_handle) { - R_RETURN(::svcCreateResourceLimit(out_handle)); - } - - ALWAYS_INLINE Result SetResourceLimitLimitValue(::ams::svc::Handle resource_limit_handle, ::ams::svc::LimitableResource which, int64_t limit_value) { - R_RETURN(::svcSetResourceLimitLimitValue(resource_limit_handle, static_cast<::LimitableResource>(which), limit_value)); - } - - ALWAYS_INLINE void CallSecureMonitor(::ams::svc::lp64::SecureMonitorArguments *args) { - ::svcCallSecureMonitor(reinterpret_cast<::SecmonArgs *>(args)); + return ::ams::svc::aarch64::lp64::SetHeapSize(reinterpret_cast<::ams::svc::Address *>(out_address), size); } } diff --git a/libraries/libstratosphere/source/svc/os/horizon/ams_svc_shims.arch.arm64.s b/libraries/libstratosphere/source/svc/os/horizon/ams_svc_shims.arch.arm64.s new file mode 100644 index 000000000..3b5826a3a --- /dev/null +++ b/libraries/libstratosphere/source/svc/os/horizon/ams_svc_shims.arch.arm64.s @@ -0,0 +1,1356 @@ +.section .text._ZN3ams3svc7aarch644lp6411SetHeapSizeEPNS0_7AddressENS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6411SetHeapSizeEPNS0_7AddressENS0_4SizeE +.type _ZN3ams3svc7aarch644lp6411SetHeapSizeEPNS0_7AddressENS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6411SetHeapSizeEPNS0_7AddressENS0_4SizeE: + str x0, [sp, #-16]! + svc 0x1 + ldr x2, [sp], #16 + str x1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6419SetMemoryPermissionENS0_7AddressENS0_4SizeENS0_16MemoryPermissionE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6419SetMemoryPermissionENS0_7AddressENS0_4SizeENS0_16MemoryPermissionE +.type _ZN3ams3svc7aarch644lp6419SetMemoryPermissionENS0_7AddressENS0_4SizeENS0_16MemoryPermissionE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6419SetMemoryPermissionENS0_7AddressENS0_4SizeENS0_16MemoryPermissionE: + svc 0x2 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6418SetMemoryAttributeENS0_7AddressENS0_4SizeEjj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6418SetMemoryAttributeENS0_7AddressENS0_4SizeEjj +.type _ZN3ams3svc7aarch644lp6418SetMemoryAttributeENS0_7AddressENS0_4SizeEjj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6418SetMemoryAttributeENS0_7AddressENS0_4SizeEjj: + svc 0x3 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp649MapMemoryENS0_7AddressES3_NS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp649MapMemoryENS0_7AddressES3_NS0_4SizeE +.type _ZN3ams3svc7aarch644lp649MapMemoryENS0_7AddressES3_NS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp649MapMemoryENS0_7AddressES3_NS0_4SizeE: + svc 0x4 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6411UnmapMemoryENS0_7AddressES3_NS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6411UnmapMemoryENS0_7AddressES3_NS0_4SizeE +.type _ZN3ams3svc7aarch644lp6411UnmapMemoryENS0_7AddressES3_NS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6411UnmapMemoryENS0_7AddressES3_NS0_4SizeE: + svc 0x5 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6411QueryMemoryENS0_11UserPointerIPNS0_4lp6410MemoryInfoEEEPNS0_8PageInfoENS0_7AddressE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6411QueryMemoryENS0_11UserPointerIPNS0_4lp6410MemoryInfoEEEPNS0_8PageInfoENS0_7AddressE +.type _ZN3ams3svc7aarch644lp6411QueryMemoryENS0_11UserPointerIPNS0_4lp6410MemoryInfoEEEPNS0_8PageInfoENS0_7AddressE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6411QueryMemoryENS0_11UserPointerIPNS0_4lp6410MemoryInfoEEEPNS0_8PageInfoENS0_7AddressE: + str x1, [sp, #-16]! + svc 0x6 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6411ExitProcessEv, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6411ExitProcessEv +.type _ZN3ams3svc7aarch644lp6411ExitProcessEv, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6411ExitProcessEv: + svc 0x7 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6412CreateThreadEPjNS0_7AddressES4_S4_ii, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6412CreateThreadEPjNS0_7AddressES4_S4_ii +.type _ZN3ams3svc7aarch644lp6412CreateThreadEPjNS0_7AddressES4_S4_ii, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6412CreateThreadEPjNS0_7AddressES4_S4_ii: + str x0, [sp, #-16]! + svc 0x8 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6411StartThreadEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6411StartThreadEj +.type _ZN3ams3svc7aarch644lp6411StartThreadEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6411StartThreadEj: + svc 0x9 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6410ExitThreadEv, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6410ExitThreadEv +.type _ZN3ams3svc7aarch644lp6410ExitThreadEv, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6410ExitThreadEv: + svc 0xA + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6411SleepThreadEl, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6411SleepThreadEl +.type _ZN3ams3svc7aarch644lp6411SleepThreadEl, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6411SleepThreadEl: + svc 0xB + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417GetThreadPriorityEPij, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417GetThreadPriorityEPij +.type _ZN3ams3svc7aarch644lp6417GetThreadPriorityEPij, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417GetThreadPriorityEPij: + str x0, [sp, #-16]! + svc 0xC + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417SetThreadPriorityEji, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417SetThreadPriorityEji +.type _ZN3ams3svc7aarch644lp6417SetThreadPriorityEji, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417SetThreadPriorityEji: + svc 0xD + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417GetThreadCoreMaskEPiPmj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417GetThreadCoreMaskEPiPmj +.type _ZN3ams3svc7aarch644lp6417GetThreadCoreMaskEPiPmj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417GetThreadCoreMaskEPiPmj: + stp x0, x1, [sp, #-16]! + svc 0xE + ldp x3, x4, [sp], #16 + str w1, [x3] + str x2, [x4] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417SetThreadCoreMaskEjim, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417SetThreadCoreMaskEjim +.type _ZN3ams3svc7aarch644lp6417SetThreadCoreMaskEjim, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417SetThreadCoreMaskEjim: + svc 0xF + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6425GetCurrentProcessorNumberEv, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6425GetCurrentProcessorNumberEv +.type _ZN3ams3svc7aarch644lp6425GetCurrentProcessorNumberEv, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6425GetCurrentProcessorNumberEv: + svc 0x10 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6411SignalEventEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6411SignalEventEj +.type _ZN3ams3svc7aarch644lp6411SignalEventEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6411SignalEventEj: + svc 0x11 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6410ClearEventEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6410ClearEventEj +.type _ZN3ams3svc7aarch644lp6410ClearEventEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6410ClearEventEj: + svc 0x12 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6415MapSharedMemoryEjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6415MapSharedMemoryEjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE +.type _ZN3ams3svc7aarch644lp6415MapSharedMemoryEjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6415MapSharedMemoryEjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE: + svc 0x13 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417UnmapSharedMemoryEjNS0_7AddressENS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417UnmapSharedMemoryEjNS0_7AddressENS0_4SizeE +.type _ZN3ams3svc7aarch644lp6417UnmapSharedMemoryEjNS0_7AddressENS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417UnmapSharedMemoryEjNS0_7AddressENS0_4SizeE: + svc 0x14 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6420CreateTransferMemoryEPjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6420CreateTransferMemoryEPjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE +.type _ZN3ams3svc7aarch644lp6420CreateTransferMemoryEPjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6420CreateTransferMemoryEPjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE: + str x0, [sp, #-16]! + svc 0x15 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6411CloseHandleEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6411CloseHandleEj +.type _ZN3ams3svc7aarch644lp6411CloseHandleEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6411CloseHandleEj: + svc 0x16 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6411ResetSignalEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6411ResetSignalEj +.type _ZN3ams3svc7aarch644lp6411ResetSignalEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6411ResetSignalEj: + svc 0x17 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6419WaitSynchronizationEPiNS0_11UserPointerIPKjEEil, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6419WaitSynchronizationEPiNS0_11UserPointerIPKjEEil +.type _ZN3ams3svc7aarch644lp6419WaitSynchronizationEPiNS0_11UserPointerIPKjEEil, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6419WaitSynchronizationEPiNS0_11UserPointerIPKjEEil: + str x0, [sp, #-16]! + svc 0x18 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6421CancelSynchronizationEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6421CancelSynchronizationEj +.type _ZN3ams3svc7aarch644lp6421CancelSynchronizationEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6421CancelSynchronizationEj: + svc 0x19 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6413ArbitrateLockEjNS0_7AddressEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6413ArbitrateLockEjNS0_7AddressEj +.type _ZN3ams3svc7aarch644lp6413ArbitrateLockEjNS0_7AddressEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6413ArbitrateLockEjNS0_7AddressEj: + svc 0x1A + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6415ArbitrateUnlockENS0_7AddressE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6415ArbitrateUnlockENS0_7AddressE +.type _ZN3ams3svc7aarch644lp6415ArbitrateUnlockENS0_7AddressE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6415ArbitrateUnlockENS0_7AddressE: + svc 0x1B + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6424WaitProcessWideKeyAtomicENS0_7AddressES3_jl, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6424WaitProcessWideKeyAtomicENS0_7AddressES3_jl +.type _ZN3ams3svc7aarch644lp6424WaitProcessWideKeyAtomicENS0_7AddressES3_jl, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6424WaitProcessWideKeyAtomicENS0_7AddressES3_jl: + svc 0x1C + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6420SignalProcessWideKeyENS0_7AddressEi, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6420SignalProcessWideKeyENS0_7AddressEi +.type _ZN3ams3svc7aarch644lp6420SignalProcessWideKeyENS0_7AddressEi, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6420SignalProcessWideKeyENS0_7AddressEi: + svc 0x1D + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6413GetSystemTickEv, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6413GetSystemTickEv +.type _ZN3ams3svc7aarch644lp6413GetSystemTickEv, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6413GetSystemTickEv: + svc 0x1E + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6418ConnectToNamedPortEPjNS0_11UserPointerIPKcEE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6418ConnectToNamedPortEPjNS0_11UserPointerIPKcEE +.type _ZN3ams3svc7aarch644lp6418ConnectToNamedPortEPjNS0_11UserPointerIPKcEE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6418ConnectToNamedPortEPjNS0_11UserPointerIPKcEE: + str x0, [sp, #-16]! + svc 0x1F + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6420SendSyncRequestLightEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6420SendSyncRequestLightEj +.type _ZN3ams3svc7aarch644lp6420SendSyncRequestLightEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6420SendSyncRequestLightEj: + svc 0x20 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6415SendSyncRequestEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6415SendSyncRequestEj +.type _ZN3ams3svc7aarch644lp6415SendSyncRequestEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6415SendSyncRequestEj: + svc 0x21 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6429SendSyncRequestWithUserBufferENS0_7AddressENS0_4SizeEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6429SendSyncRequestWithUserBufferENS0_7AddressENS0_4SizeEj +.type _ZN3ams3svc7aarch644lp6429SendSyncRequestWithUserBufferENS0_7AddressENS0_4SizeEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6429SendSyncRequestWithUserBufferENS0_7AddressENS0_4SizeEj: + svc 0x22 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6430SendAsyncRequestWithUserBufferEPjNS0_7AddressENS0_4SizeEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6430SendAsyncRequestWithUserBufferEPjNS0_7AddressENS0_4SizeEj +.type _ZN3ams3svc7aarch644lp6430SendAsyncRequestWithUserBufferEPjNS0_7AddressENS0_4SizeEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6430SendAsyncRequestWithUserBufferEPjNS0_7AddressENS0_4SizeEj: + str x0, [sp, #-16]! + svc 0x23 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6412GetProcessIdEPmj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6412GetProcessIdEPmj +.type _ZN3ams3svc7aarch644lp6412GetProcessIdEPmj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6412GetProcessIdEPmj: + str x0, [sp, #-16]! + svc 0x24 + ldr x2, [sp], #16 + str x1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6411GetThreadIdEPmj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6411GetThreadIdEPmj +.type _ZN3ams3svc7aarch644lp6411GetThreadIdEPmj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6411GetThreadIdEPmj: + str x0, [sp, #-16]! + svc 0x25 + ldr x2, [sp], #16 + str x1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp645BreakENS0_11BreakReasonENS0_7AddressENS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp645BreakENS0_11BreakReasonENS0_7AddressENS0_4SizeE +.type _ZN3ams3svc7aarch644lp645BreakENS0_11BreakReasonENS0_7AddressENS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp645BreakENS0_11BreakReasonENS0_7AddressENS0_4SizeE: + svc 0x26 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417OutputDebugStringENS0_11UserPointerIPKcEENS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417OutputDebugStringENS0_11UserPointerIPKcEENS0_4SizeE +.type _ZN3ams3svc7aarch644lp6417OutputDebugStringENS0_11UserPointerIPKcEENS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417OutputDebugStringENS0_11UserPointerIPKcEENS0_4SizeE: + svc 0x27 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6419ReturnFromExceptionENS_6ResultE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6419ReturnFromExceptionENS_6ResultE +.type _ZN3ams3svc7aarch644lp6419ReturnFromExceptionENS_6ResultE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6419ReturnFromExceptionENS_6ResultE: + svc 0x28 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp647GetInfoEPmNS0_8InfoTypeEjm, "ax", %progbits +.global _ZN3ams3svc7aarch644lp647GetInfoEPmNS0_8InfoTypeEjm +.type _ZN3ams3svc7aarch644lp647GetInfoEPmNS0_8InfoTypeEjm, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp647GetInfoEPmNS0_8InfoTypeEjm: + str x0, [sp, #-16]! + svc 0x29 + ldr x2, [sp], #16 + str x1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6420FlushEntireDataCacheEv, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6420FlushEntireDataCacheEv +.type _ZN3ams3svc7aarch644lp6420FlushEntireDataCacheEv, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6420FlushEntireDataCacheEv: + svc 0x2A + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6414FlushDataCacheENS0_7AddressENS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6414FlushDataCacheENS0_7AddressENS0_4SizeE +.type _ZN3ams3svc7aarch644lp6414FlushDataCacheENS0_7AddressENS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6414FlushDataCacheENS0_7AddressENS0_4SizeE: + svc 0x2B + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417MapPhysicalMemoryENS0_7AddressENS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417MapPhysicalMemoryENS0_7AddressENS0_4SizeE +.type _ZN3ams3svc7aarch644lp6417MapPhysicalMemoryENS0_7AddressENS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417MapPhysicalMemoryENS0_7AddressENS0_4SizeE: + svc 0x2C + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6419UnmapPhysicalMemoryENS0_7AddressENS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6419UnmapPhysicalMemoryENS0_7AddressENS0_4SizeE +.type _ZN3ams3svc7aarch644lp6419UnmapPhysicalMemoryENS0_7AddressENS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6419UnmapPhysicalMemoryENS0_7AddressENS0_4SizeE: + svc 0x2D + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6424GetDebugFutureThreadInfoEPNS0_4lp6417LastThreadContextEPmjl, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6424GetDebugFutureThreadInfoEPNS0_4lp6417LastThreadContextEPmjl +.type _ZN3ams3svc7aarch644lp6424GetDebugFutureThreadInfoEPNS0_4lp6417LastThreadContextEPmjl, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6424GetDebugFutureThreadInfoEPNS0_4lp6417LastThreadContextEPmjl: + stp x0, x1, [sp, #-16]! + svc 0x2E + ldp x6, x7, [sp], #16 + stp x1, x2, [x6] + stp x3, x4, [x6, #16] + str x5, [x7] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417GetLastThreadInfoEPNS0_4lp6417LastThreadContextEPNS0_7AddressEPj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417GetLastThreadInfoEPNS0_4lp6417LastThreadContextEPNS0_7AddressEPj +.type _ZN3ams3svc7aarch644lp6417GetLastThreadInfoEPNS0_4lp6417LastThreadContextEPNS0_7AddressEPj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417GetLastThreadInfoEPNS0_4lp6417LastThreadContextEPNS0_7AddressEPj: + stp x1, x2, [sp, #-16]! + str x0, [sp, #-16]! + svc 0x2F + ldr x7, [sp], #16 + stp x1, x2, [x7] + stp x3, x4, [x7, #16] + ldp x1, x2, [sp], #16 + str x5, [x1] + str w6, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6426GetResourceLimitLimitValueEPljNS0_17LimitableResourceE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6426GetResourceLimitLimitValueEPljNS0_17LimitableResourceE +.type _ZN3ams3svc7aarch644lp6426GetResourceLimitLimitValueEPljNS0_17LimitableResourceE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6426GetResourceLimitLimitValueEPljNS0_17LimitableResourceE: + str x0, [sp, #-16]! + svc 0x30 + ldr x2, [sp], #16 + str x1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6428GetResourceLimitCurrentValueEPljNS0_17LimitableResourceE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6428GetResourceLimitCurrentValueEPljNS0_17LimitableResourceE +.type _ZN3ams3svc7aarch644lp6428GetResourceLimitCurrentValueEPljNS0_17LimitableResourceE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6428GetResourceLimitCurrentValueEPljNS0_17LimitableResourceE: + str x0, [sp, #-16]! + svc 0x31 + ldr x2, [sp], #16 + str x1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417SetThreadActivityEjNS0_14ThreadActivityE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417SetThreadActivityEjNS0_14ThreadActivityE +.type _ZN3ams3svc7aarch644lp6417SetThreadActivityEjNS0_14ThreadActivityE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417SetThreadActivityEjNS0_14ThreadActivityE: + svc 0x32 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417GetThreadContext3ENS0_11UserPointerIPNS0_13ThreadContextEEEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417GetThreadContext3ENS0_11UserPointerIPNS0_13ThreadContextEEEj +.type _ZN3ams3svc7aarch644lp6417GetThreadContext3ENS0_11UserPointerIPNS0_13ThreadContextEEEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417GetThreadContext3ENS0_11UserPointerIPNS0_13ThreadContextEEEj: + svc 0x33 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6414WaitForAddressENS0_7AddressENS0_15ArbitrationTypeEil, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6414WaitForAddressENS0_7AddressENS0_15ArbitrationTypeEil +.type _ZN3ams3svc7aarch644lp6414WaitForAddressENS0_7AddressENS0_15ArbitrationTypeEil, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6414WaitForAddressENS0_7AddressENS0_15ArbitrationTypeEil: + svc 0x34 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6415SignalToAddressENS0_7AddressENS0_10SignalTypeEii, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6415SignalToAddressENS0_7AddressENS0_10SignalTypeEii +.type _ZN3ams3svc7aarch644lp6415SignalToAddressENS0_7AddressENS0_10SignalTypeEii, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6415SignalToAddressENS0_7AddressENS0_10SignalTypeEii: + svc 0x35 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6426SynchronizePreemptionStateEv, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6426SynchronizePreemptionStateEv +.type _ZN3ams3svc7aarch644lp6426SynchronizePreemptionStateEv, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6426SynchronizePreemptionStateEv: + svc 0x36 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6425GetResourceLimitPeakValueEPljNS0_17LimitableResourceE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6425GetResourceLimitPeakValueEPljNS0_17LimitableResourceE +.type _ZN3ams3svc7aarch644lp6425GetResourceLimitPeakValueEPljNS0_17LimitableResourceE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6425GetResourceLimitPeakValueEPljNS0_17LimitableResourceE: + str x0, [sp, #-16]! + svc 0x37 + ldr x2, [sp], #16 + str x1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6414CreateIoRegionEPjjmNS0_4SizeENS0_13MemoryMappingENS0_16MemoryPermissionE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6414CreateIoRegionEPjjmNS0_4SizeENS0_13MemoryMappingENS0_16MemoryPermissionE +.type _ZN3ams3svc7aarch644lp6414CreateIoRegionEPjjmNS0_4SizeENS0_13MemoryMappingENS0_16MemoryPermissionE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6414CreateIoRegionEPjjmNS0_4SizeENS0_13MemoryMappingENS0_16MemoryPermissionE: + str x0, [sp, #-16]! + svc 0x3A + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6411KernelDebugENS0_15KernelDebugTypeEmmm, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6411KernelDebugENS0_15KernelDebugTypeEmmm +.type _ZN3ams3svc7aarch644lp6411KernelDebugENS0_15KernelDebugTypeEmmm, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6411KernelDebugENS0_15KernelDebugTypeEmmm: + svc 0x3C + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6422ChangeKernelTraceStateENS0_16KernelTraceStateE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6422ChangeKernelTraceStateENS0_16KernelTraceStateE +.type _ZN3ams3svc7aarch644lp6422ChangeKernelTraceStateENS0_16KernelTraceStateE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6422ChangeKernelTraceStateENS0_16KernelTraceStateE: + svc 0x3D + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6413CreateSessionEPjS3_bNS0_7AddressE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6413CreateSessionEPjS3_bNS0_7AddressE +.type _ZN3ams3svc7aarch644lp6413CreateSessionEPjS3_bNS0_7AddressE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6413CreateSessionEPjS3_bNS0_7AddressE: + stp x0, x1, [sp, #-16]! + svc 0x40 + ldp x3, x4, [sp], #16 + str w1, [x3] + str w2, [x4] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6413AcceptSessionEPjj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6413AcceptSessionEPjj +.type _ZN3ams3svc7aarch644lp6413AcceptSessionEPjj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6413AcceptSessionEPjj: + str x0, [sp, #-16]! + svc 0x41 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6420ReplyAndReceiveLightEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6420ReplyAndReceiveLightEj +.type _ZN3ams3svc7aarch644lp6420ReplyAndReceiveLightEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6420ReplyAndReceiveLightEj: + svc 0x42 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6415ReplyAndReceiveEPiNS0_11UserPointerIPKjEEijl, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6415ReplyAndReceiveEPiNS0_11UserPointerIPKjEEijl +.type _ZN3ams3svc7aarch644lp6415ReplyAndReceiveEPiNS0_11UserPointerIPKjEEijl, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6415ReplyAndReceiveEPiNS0_11UserPointerIPKjEEijl: + str x0, [sp, #-16]! + svc 0x43 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6429ReplyAndReceiveWithUserBufferEPiNS0_7AddressENS0_4SizeENS0_11UserPointerIPKjEEijl, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6429ReplyAndReceiveWithUserBufferEPiNS0_7AddressENS0_4SizeENS0_11UserPointerIPKjEEijl +.type _ZN3ams3svc7aarch644lp6429ReplyAndReceiveWithUserBufferEPiNS0_7AddressENS0_4SizeENS0_11UserPointerIPKjEEijl, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6429ReplyAndReceiveWithUserBufferEPiNS0_7AddressENS0_4SizeENS0_11UserPointerIPKjEEijl: + str x0, [sp, #-16]! + svc 0x44 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6411CreateEventEPjS3_, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6411CreateEventEPjS3_ +.type _ZN3ams3svc7aarch644lp6411CreateEventEPjS3_, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6411CreateEventEPjS3_: + stp x0, x1, [sp, #-16]! + svc 0x45 + ldp x3, x4, [sp], #16 + str w1, [x3] + str w2, [x4] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6411MapIoRegionEjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6411MapIoRegionEjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE +.type _ZN3ams3svc7aarch644lp6411MapIoRegionEjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6411MapIoRegionEjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE: + svc 0x46 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6413UnmapIoRegionEjNS0_7AddressENS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6413UnmapIoRegionEjNS0_7AddressENS0_4SizeE +.type _ZN3ams3svc7aarch644lp6413UnmapIoRegionEjNS0_7AddressENS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6413UnmapIoRegionEjNS0_7AddressENS0_4SizeE: + svc 0x47 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6423MapPhysicalMemoryUnsafeENS0_7AddressENS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6423MapPhysicalMemoryUnsafeENS0_7AddressENS0_4SizeE +.type _ZN3ams3svc7aarch644lp6423MapPhysicalMemoryUnsafeENS0_7AddressENS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6423MapPhysicalMemoryUnsafeENS0_7AddressENS0_4SizeE: + svc 0x48 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6425UnmapPhysicalMemoryUnsafeENS0_7AddressENS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6425UnmapPhysicalMemoryUnsafeENS0_7AddressENS0_4SizeE +.type _ZN3ams3svc7aarch644lp6425UnmapPhysicalMemoryUnsafeENS0_7AddressENS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6425UnmapPhysicalMemoryUnsafeENS0_7AddressENS0_4SizeE: + svc 0x49 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6414SetUnsafeLimitENS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6414SetUnsafeLimitENS0_4SizeE +.type _ZN3ams3svc7aarch644lp6414SetUnsafeLimitENS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6414SetUnsafeLimitENS0_4SizeE: + svc 0x4A + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6416CreateCodeMemoryEPjNS0_7AddressENS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6416CreateCodeMemoryEPjNS0_7AddressENS0_4SizeE +.type _ZN3ams3svc7aarch644lp6416CreateCodeMemoryEPjNS0_7AddressENS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6416CreateCodeMemoryEPjNS0_7AddressENS0_4SizeE: + str x0, [sp, #-16]! + svc 0x4B + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417ControlCodeMemoryEjNS0_19CodeMemoryOperationEmmNS0_16MemoryPermissionE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417ControlCodeMemoryEjNS0_19CodeMemoryOperationEmmNS0_16MemoryPermissionE +.type _ZN3ams3svc7aarch644lp6417ControlCodeMemoryEjNS0_19CodeMemoryOperationEmmNS0_16MemoryPermissionE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417ControlCodeMemoryEjNS0_19CodeMemoryOperationEmmNS0_16MemoryPermissionE: + svc 0x4C + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6411SleepSystemEv, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6411SleepSystemEv +.type _ZN3ams3svc7aarch644lp6411SleepSystemEv, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6411SleepSystemEv: + svc 0x4D + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417ReadWriteRegisterEPjmjj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417ReadWriteRegisterEPjmjj +.type _ZN3ams3svc7aarch644lp6417ReadWriteRegisterEPjmjj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417ReadWriteRegisterEPjmjj: + str x0, [sp, #-16]! + svc 0x4E + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6418SetProcessActivityEjNS0_15ProcessActivityE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6418SetProcessActivityEjNS0_15ProcessActivityE +.type _ZN3ams3svc7aarch644lp6418SetProcessActivityEjNS0_15ProcessActivityE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6418SetProcessActivityEjNS0_15ProcessActivityE: + svc 0x4F + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6418CreateSharedMemoryEPjNS0_4SizeENS0_16MemoryPermissionES5_, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6418CreateSharedMemoryEPjNS0_4SizeENS0_16MemoryPermissionES5_ +.type _ZN3ams3svc7aarch644lp6418CreateSharedMemoryEPjNS0_4SizeENS0_16MemoryPermissionES5_, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6418CreateSharedMemoryEPjNS0_4SizeENS0_16MemoryPermissionES5_: + str x0, [sp, #-16]! + svc 0x50 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417MapTransferMemoryEjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417MapTransferMemoryEjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE +.type _ZN3ams3svc7aarch644lp6417MapTransferMemoryEjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417MapTransferMemoryEjNS0_7AddressENS0_4SizeENS0_16MemoryPermissionE: + svc 0x51 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6419UnmapTransferMemoryEjNS0_7AddressENS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6419UnmapTransferMemoryEjNS0_7AddressENS0_4SizeE +.type _ZN3ams3svc7aarch644lp6419UnmapTransferMemoryEjNS0_7AddressENS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6419UnmapTransferMemoryEjNS0_7AddressENS0_4SizeE: + svc 0x52 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6420CreateInterruptEventEPjiNS0_13InterruptTypeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6420CreateInterruptEventEPjiNS0_13InterruptTypeE +.type _ZN3ams3svc7aarch644lp6420CreateInterruptEventEPjiNS0_13InterruptTypeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6420CreateInterruptEventEPjiNS0_13InterruptTypeE: + str x0, [sp, #-16]! + svc 0x53 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6420QueryPhysicalAddressEPNS0_4lp6418PhysicalMemoryInfoENS0_7AddressE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6420QueryPhysicalAddressEPNS0_4lp6418PhysicalMemoryInfoENS0_7AddressE +.type _ZN3ams3svc7aarch644lp6420QueryPhysicalAddressEPNS0_4lp6418PhysicalMemoryInfoENS0_7AddressE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6420QueryPhysicalAddressEPNS0_4lp6418PhysicalMemoryInfoENS0_7AddressE: + str x0, [sp, #-16]! + svc 0x54 + ldr x4, [sp], #16 + stp x1, x2, [x4] + str x3, [x4, #16] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6414QueryIoMappingEPNS0_7AddressEPNS0_4SizeEmS5_, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6414QueryIoMappingEPNS0_7AddressEPNS0_4SizeEmS5_ +.type _ZN3ams3svc7aarch644lp6414QueryIoMappingEPNS0_7AddressEPNS0_4SizeEmS5_, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6414QueryIoMappingEPNS0_7AddressEPNS0_4SizeEmS5_: + stp x0, x1, [sp, #-16]! + svc 0x55 + ldp x3, x4, [sp], #16 + str x1, [x3] + str x2, [x4] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6420LegacyQueryIoMappingEPNS0_7AddressEmNS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6420LegacyQueryIoMappingEPNS0_7AddressEmNS0_4SizeE +.type _ZN3ams3svc7aarch644lp6420LegacyQueryIoMappingEPNS0_7AddressEmNS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6420LegacyQueryIoMappingEPNS0_7AddressEmNS0_4SizeE: + str x0, [sp, #-16]! + svc 0x55 + ldr x2, [sp], #16 + str x1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6424CreateDeviceAddressSpaceEPjmm, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6424CreateDeviceAddressSpaceEPjmm +.type _ZN3ams3svc7aarch644lp6424CreateDeviceAddressSpaceEPjmm, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6424CreateDeviceAddressSpaceEPjmm: + str x0, [sp, #-16]! + svc 0x56 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6428MapDeviceAddressSpaceByForceEjjmNS0_4SizeEmNS0_16MemoryPermissionE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6428MapDeviceAddressSpaceByForceEjjmNS0_4SizeEmNS0_16MemoryPermissionE +.type _ZN3ams3svc7aarch644lp6428MapDeviceAddressSpaceByForceEjjmNS0_4SizeEmNS0_16MemoryPermissionE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6428MapDeviceAddressSpaceByForceEjjmNS0_4SizeEmNS0_16MemoryPermissionE: + svc 0x59 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6428MapDeviceAddressSpaceAlignedEjjmNS0_4SizeEmNS0_16MemoryPermissionE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6428MapDeviceAddressSpaceAlignedEjjmNS0_4SizeEmNS0_16MemoryPermissionE +.type _ZN3ams3svc7aarch644lp6428MapDeviceAddressSpaceAlignedEjjmNS0_4SizeEmNS0_16MemoryPermissionE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6428MapDeviceAddressSpaceAlignedEjjmNS0_4SizeEmNS0_16MemoryPermissionE: + svc 0x5A + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6423UnmapDeviceAddressSpaceEjjmNS0_4SizeEm, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6423UnmapDeviceAddressSpaceEjjmNS0_4SizeEm +.type _ZN3ams3svc7aarch644lp6423UnmapDeviceAddressSpaceEjjmNS0_4SizeEm, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6423UnmapDeviceAddressSpaceEjjmNS0_4SizeEm: + svc 0x5C + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6426InvalidateProcessDataCacheEjmm, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6426InvalidateProcessDataCacheEjmm +.type _ZN3ams3svc7aarch644lp6426InvalidateProcessDataCacheEjmm, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6426InvalidateProcessDataCacheEjmm: + svc 0x5D + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6421StoreProcessDataCacheEjmm, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6421StoreProcessDataCacheEjmm +.type _ZN3ams3svc7aarch644lp6421StoreProcessDataCacheEjmm, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6421StoreProcessDataCacheEjmm: + svc 0x5E + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6421FlushProcessDataCacheEjmm, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6421FlushProcessDataCacheEjmm +.type _ZN3ams3svc7aarch644lp6421FlushProcessDataCacheEjmm, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6421FlushProcessDataCacheEjmm: + svc 0x5F + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6418DebugActiveProcessEPjm, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6418DebugActiveProcessEPjm +.type _ZN3ams3svc7aarch644lp6418DebugActiveProcessEPjm, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6418DebugActiveProcessEPjm: + str x0, [sp, #-16]! + svc 0x60 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417BreakDebugProcessEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417BreakDebugProcessEj +.type _ZN3ams3svc7aarch644lp6417BreakDebugProcessEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417BreakDebugProcessEj: + svc 0x61 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6421TerminateDebugProcessEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6421TerminateDebugProcessEj +.type _ZN3ams3svc7aarch644lp6421TerminateDebugProcessEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6421TerminateDebugProcessEj: + svc 0x62 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6413GetDebugEventENS0_11UserPointerIPNS0_4lp6414DebugEventInfoEEEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6413GetDebugEventENS0_11UserPointerIPNS0_4lp6414DebugEventInfoEEEj +.type _ZN3ams3svc7aarch644lp6413GetDebugEventENS0_11UserPointerIPNS0_4lp6414DebugEventInfoEEEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6413GetDebugEventENS0_11UserPointerIPNS0_4lp6414DebugEventInfoEEEj: + svc 0x63 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6418ContinueDebugEventEjjNS0_11UserPointerIPKmEEi, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6418ContinueDebugEventEjjNS0_11UserPointerIPKmEEi +.type _ZN3ams3svc7aarch644lp6418ContinueDebugEventEjjNS0_11UserPointerIPKmEEi, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6418ContinueDebugEventEjjNS0_11UserPointerIPKmEEi: + svc 0x64 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6424LegacyContinueDebugEventEjjm, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6424LegacyContinueDebugEventEjjm +.type _ZN3ams3svc7aarch644lp6424LegacyContinueDebugEventEjjm, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6424LegacyContinueDebugEventEjjm: + svc 0x64 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6414GetProcessListEPiNS0_11UserPointerIPmEEi, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6414GetProcessListEPiNS0_11UserPointerIPmEEi +.type _ZN3ams3svc7aarch644lp6414GetProcessListEPiNS0_11UserPointerIPmEEi, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6414GetProcessListEPiNS0_11UserPointerIPmEEi: + str x0, [sp, #-16]! + svc 0x65 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6413GetThreadListEPiNS0_11UserPointerIPmEEij, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6413GetThreadListEPiNS0_11UserPointerIPmEEij +.type _ZN3ams3svc7aarch644lp6413GetThreadListEPiNS0_11UserPointerIPmEEij, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6413GetThreadListEPiNS0_11UserPointerIPmEEij: + str x0, [sp, #-16]! + svc 0x66 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6421GetDebugThreadContextENS0_11UserPointerIPNS0_13ThreadContextEEEjmj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6421GetDebugThreadContextENS0_11UserPointerIPNS0_13ThreadContextEEEjmj +.type _ZN3ams3svc7aarch644lp6421GetDebugThreadContextENS0_11UserPointerIPNS0_13ThreadContextEEEjmj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6421GetDebugThreadContextENS0_11UserPointerIPNS0_13ThreadContextEEEjmj: + svc 0x67 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6421SetDebugThreadContextEjmNS0_11UserPointerIPKNS0_13ThreadContextEEEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6421SetDebugThreadContextEjmNS0_11UserPointerIPKNS0_13ThreadContextEEEj +.type _ZN3ams3svc7aarch644lp6421SetDebugThreadContextEjmNS0_11UserPointerIPKNS0_13ThreadContextEEEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6421SetDebugThreadContextEjmNS0_11UserPointerIPKNS0_13ThreadContextEEEj: + svc 0x68 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6423QueryDebugProcessMemoryENS0_11UserPointerIPNS0_4lp6410MemoryInfoEEEPNS0_8PageInfoEjNS0_7AddressE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6423QueryDebugProcessMemoryENS0_11UserPointerIPNS0_4lp6410MemoryInfoEEEPNS0_8PageInfoEjNS0_7AddressE +.type _ZN3ams3svc7aarch644lp6423QueryDebugProcessMemoryENS0_11UserPointerIPNS0_4lp6410MemoryInfoEEEPNS0_8PageInfoEjNS0_7AddressE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6423QueryDebugProcessMemoryENS0_11UserPointerIPNS0_4lp6410MemoryInfoEEEPNS0_8PageInfoEjNS0_7AddressE: + str x1, [sp, #-16]! + svc 0x69 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6422ReadDebugProcessMemoryENS0_7AddressEjS3_NS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6422ReadDebugProcessMemoryENS0_7AddressEjS3_NS0_4SizeE +.type _ZN3ams3svc7aarch644lp6422ReadDebugProcessMemoryENS0_7AddressEjS3_NS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6422ReadDebugProcessMemoryENS0_7AddressEjS3_NS0_4SizeE: + svc 0x6A + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6423WriteDebugProcessMemoryEjNS0_7AddressES3_NS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6423WriteDebugProcessMemoryEjNS0_7AddressES3_NS0_4SizeE +.type _ZN3ams3svc7aarch644lp6423WriteDebugProcessMemoryEjNS0_7AddressES3_NS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6423WriteDebugProcessMemoryEjNS0_7AddressES3_NS0_4SizeE: + svc 0x6B + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6421SetHardwareBreakPointENS0_30HardwareBreakPointRegisterNameEmm, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6421SetHardwareBreakPointENS0_30HardwareBreakPointRegisterNameEmm +.type _ZN3ams3svc7aarch644lp6421SetHardwareBreakPointENS0_30HardwareBreakPointRegisterNameEmm, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6421SetHardwareBreakPointENS0_30HardwareBreakPointRegisterNameEmm: + svc 0x6C + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6419GetDebugThreadParamEPmPjjmNS0_16DebugThreadParamE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6419GetDebugThreadParamEPmPjjmNS0_16DebugThreadParamE +.type _ZN3ams3svc7aarch644lp6419GetDebugThreadParamEPmPjjmNS0_16DebugThreadParamE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6419GetDebugThreadParamEPmPjjmNS0_16DebugThreadParamE: + stp x0, x1, [sp, #-16]! + svc 0x6D + ldp x3, x4, [sp], #16 + str x1, [x3] + str w2, [x4] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6413GetSystemInfoEPmNS0_14SystemInfoTypeEjm, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6413GetSystemInfoEPmNS0_14SystemInfoTypeEjm +.type _ZN3ams3svc7aarch644lp6413GetSystemInfoEPmNS0_14SystemInfoTypeEjm, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6413GetSystemInfoEPmNS0_14SystemInfoTypeEjm: + str x0, [sp, #-16]! + svc 0x6F + ldr x2, [sp], #16 + str x1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6410CreatePortEPjS3_ibNS0_7AddressE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6410CreatePortEPjS3_ibNS0_7AddressE +.type _ZN3ams3svc7aarch644lp6410CreatePortEPjS3_ibNS0_7AddressE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6410CreatePortEPjS3_ibNS0_7AddressE: + stp x0, x1, [sp, #-16]! + svc 0x70 + ldp x3, x4, [sp], #16 + str w1, [x3] + str w2, [x4] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6415ManageNamedPortEPjNS0_11UserPointerIPKcEEi, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6415ManageNamedPortEPjNS0_11UserPointerIPKcEEi +.type _ZN3ams3svc7aarch644lp6415ManageNamedPortEPjNS0_11UserPointerIPKcEEi, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6415ManageNamedPortEPjNS0_11UserPointerIPKcEEi: + str x0, [sp, #-16]! + svc 0x71 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6413ConnectToPortEPjj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6413ConnectToPortEPjj +.type _ZN3ams3svc7aarch644lp6413ConnectToPortEPjj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6413ConnectToPortEPjj: + str x0, [sp, #-16]! + svc 0x72 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6426SetProcessMemoryPermissionEjmmNS0_16MemoryPermissionE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6426SetProcessMemoryPermissionEjmmNS0_16MemoryPermissionE +.type _ZN3ams3svc7aarch644lp6426SetProcessMemoryPermissionEjmmNS0_16MemoryPermissionE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6426SetProcessMemoryPermissionEjmmNS0_16MemoryPermissionE: + svc 0x73 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6416MapProcessMemoryENS0_7AddressEjmNS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6416MapProcessMemoryENS0_7AddressEjmNS0_4SizeE +.type _ZN3ams3svc7aarch644lp6416MapProcessMemoryENS0_7AddressEjmNS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6416MapProcessMemoryENS0_7AddressEjmNS0_4SizeE: + svc 0x74 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6418UnmapProcessMemoryENS0_7AddressEjmNS0_4SizeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6418UnmapProcessMemoryENS0_7AddressEjmNS0_4SizeE +.type _ZN3ams3svc7aarch644lp6418UnmapProcessMemoryENS0_7AddressEjmNS0_4SizeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6418UnmapProcessMemoryENS0_7AddressEjmNS0_4SizeE: + svc 0x75 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6418QueryProcessMemoryENS0_11UserPointerIPNS0_4lp6410MemoryInfoEEEPNS0_8PageInfoEjm, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6418QueryProcessMemoryENS0_11UserPointerIPNS0_4lp6410MemoryInfoEEEPNS0_8PageInfoEjm +.type _ZN3ams3svc7aarch644lp6418QueryProcessMemoryENS0_11UserPointerIPNS0_4lp6410MemoryInfoEEEPNS0_8PageInfoEjm, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6418QueryProcessMemoryENS0_11UserPointerIPNS0_4lp6410MemoryInfoEEEPNS0_8PageInfoEjm: + str x1, [sp, #-16]! + svc 0x76 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6420MapProcessCodeMemoryEjmmm, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6420MapProcessCodeMemoryEjmmm +.type _ZN3ams3svc7aarch644lp6420MapProcessCodeMemoryEjmmm, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6420MapProcessCodeMemoryEjmmm: + svc 0x77 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6422UnmapProcessCodeMemoryEjmmm, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6422UnmapProcessCodeMemoryEjmmm +.type _ZN3ams3svc7aarch644lp6422UnmapProcessCodeMemoryEjmmm, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6422UnmapProcessCodeMemoryEjmmm: + svc 0x78 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6413CreateProcessEPjNS0_11UserPointerIPKNS0_4lp6422CreateProcessParameterEEENS4_IPKjEEi, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6413CreateProcessEPjNS0_11UserPointerIPKNS0_4lp6422CreateProcessParameterEEENS4_IPKjEEi +.type _ZN3ams3svc7aarch644lp6413CreateProcessEPjNS0_11UserPointerIPKNS0_4lp6422CreateProcessParameterEEENS4_IPKjEEi, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6413CreateProcessEPjNS0_11UserPointerIPKNS0_4lp6422CreateProcessParameterEEENS4_IPKjEEi: + str x0, [sp, #-16]! + svc 0x79 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6412StartProcessEjiim, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6412StartProcessEjiim +.type _ZN3ams3svc7aarch644lp6412StartProcessEjiim, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6412StartProcessEjiim: + svc 0x7A + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6416TerminateProcessEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6416TerminateProcessEj +.type _ZN3ams3svc7aarch644lp6416TerminateProcessEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6416TerminateProcessEj: + svc 0x7B + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6414GetProcessInfoEPljNS0_15ProcessInfoTypeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6414GetProcessInfoEPljNS0_15ProcessInfoTypeE +.type _ZN3ams3svc7aarch644lp6414GetProcessInfoEPljNS0_15ProcessInfoTypeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6414GetProcessInfoEPljNS0_15ProcessInfoTypeE: + str x0, [sp, #-16]! + svc 0x7C + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6419CreateResourceLimitEPj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6419CreateResourceLimitEPj +.type _ZN3ams3svc7aarch644lp6419CreateResourceLimitEPj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6419CreateResourceLimitEPj: + str x0, [sp, #-16]! + svc 0x7D + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6426SetResourceLimitLimitValueEjNS0_17LimitableResourceEl, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6426SetResourceLimitLimitValueEjNS0_17LimitableResourceEl +.type _ZN3ams3svc7aarch644lp6426SetResourceLimitLimitValueEjNS0_17LimitableResourceEl, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6426SetResourceLimitLimitValueEjNS0_17LimitableResourceEl: + svc 0x7E + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6417CallSecureMonitorEPNS0_4lp6422SecureMonitorArgumentsE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6417CallSecureMonitorEPNS0_4lp6422SecureMonitorArgumentsE +.type _ZN3ams3svc7aarch644lp6417CallSecureMonitorEPNS0_4lp6422SecureMonitorArgumentsE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6417CallSecureMonitorEPNS0_4lp6422SecureMonitorArgumentsE: + str x0, [sp, #-16]! + mov x8, x0 + ldp x0, x1, [x8] + ldp x2, x3, [x8, #0x10] + ldp x4, x5, [x8, #0x20] + ldp x6, x7, [x8, #0x30] + svc 0x7F + ldr x8, [sp], #16 + stp x0, x1, [x8] + stp x2, x3, [x8, #0x10] + stp x4, x5, [x8, #0x20] + stp x6, x7, [x8, #0x30] + ret +.cfi_endproc diff --git a/libraries/libstratosphere/source/svc/os/horizon/ams_svc_shims.board.nintendo_nx.s b/libraries/libstratosphere/source/svc/os/horizon/ams_svc_shims.board.nintendo_nx.s new file mode 100644 index 000000000..a2595192a --- /dev/null +++ b/libraries/libstratosphere/source/svc/os/horizon/ams_svc_shims.board.nintendo_nx.s @@ -0,0 +1,32 @@ +.section .text._ZN3ams3svc7aarch644lp6412CreateIoPoolEPjNS0_5board8nintendo2nx10IoPoolTypeE, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6412CreateIoPoolEPjNS0_5board8nintendo2nx10IoPoolTypeE +.type _ZN3ams3svc7aarch644lp6412CreateIoPoolEPjNS0_5board8nintendo2nx10IoPoolTypeE, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6412CreateIoPoolEPjNS0_5board8nintendo2nx10IoPoolTypeE: + str x0, [sp, #-16]! + svc 0x39 + ldr x2, [sp], #16 + str w1, [x2] + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6424AttachDeviceAddressSpaceENS0_5board8nintendo2nx10DeviceNameEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6424AttachDeviceAddressSpaceENS0_5board8nintendo2nx10DeviceNameEj +.type _ZN3ams3svc7aarch644lp6424AttachDeviceAddressSpaceENS0_5board8nintendo2nx10DeviceNameEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6424AttachDeviceAddressSpaceENS0_5board8nintendo2nx10DeviceNameEj: + svc 0x57 + ret +.cfi_endproc + +.section .text._ZN3ams3svc7aarch644lp6424DetachDeviceAddressSpaceENS0_5board8nintendo2nx10DeviceNameEj, "ax", %progbits +.global _ZN3ams3svc7aarch644lp6424DetachDeviceAddressSpaceENS0_5board8nintendo2nx10DeviceNameEj +.type _ZN3ams3svc7aarch644lp6424DetachDeviceAddressSpaceENS0_5board8nintendo2nx10DeviceNameEj, %function +.align 2 +.cfi_startproc +_ZN3ams3svc7aarch644lp6424DetachDeviceAddressSpaceENS0_5board8nintendo2nx10DeviceNameEj: + svc 0x58 + ret +.cfi_endproc