diff --git a/libraries/libmesosphere/include/mesosphere/svc/kern_svc_prototypes.hpp b/libraries/libmesosphere/include/mesosphere/svc/kern_svc_prototypes.hpp
index dd71d5722..66798bd8d 100644
--- a/libraries/libmesosphere/include/mesosphere/svc/kern_svc_prototypes.hpp
+++ b/libraries/libmesosphere/include/mesosphere/svc/kern_svc_prototypes.hpp
@@ -21,9 +21,9 @@
namespace ams::kern::svc {
#define AMS_KERN_SVC_DECLARE_PROTOTYPE_64(ID, RETURN_TYPE, NAME, ...) \
- RETURN_TYPE NAME##64(__VA_ARGS__);
+ NOINLINE RETURN_TYPE NAME##64(__VA_ARGS__);
#define AMS_KERN_SVC_DECLARE_PROTOTYPE_64_FROM_32(ID, RETURN_TYPE, NAME, ...) \
- RETURN_TYPE NAME##64From32(__VA_ARGS__);
+ NOINLINE RETURN_TYPE NAME##64From32(__VA_ARGS__);
AMS_SVC_FOREACH_KERN_DEFINITION(AMS_KERN_SVC_DECLARE_PROTOTYPE_64, lp64)
AMS_SVC_FOREACH_KERN_DEFINITION(AMS_KERN_SVC_DECLARE_PROTOTYPE_64_FROM_32, ilp32)
diff --git a/libraries/libmesosphere/source/arch/arm64/svc/kern_svc_tables.cpp b/libraries/libmesosphere/source/arch/arm64/svc/kern_svc_tables.cpp
index 0e68435ca..0455290e5 100644
--- a/libraries/libmesosphere/source/arch/arm64/svc/kern_svc_tables.cpp
+++ b/libraries/libmesosphere/source/arch/arm64/svc/kern_svc_tables.cpp
@@ -13,7 +13,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
+#ifdef MESOSPHERE_USE_STUBBED_SVC_TABLES
#include
+#endif
+
#include
#include
@@ -21,8 +24,7 @@ namespace ams::kern::svc {
namespace {
- /* TODO: Enable compilation of this file when the kernel supports supervisor calls. */
- #if 0
+ #ifndef MESOSPHERE_USE_STUBBED_SVC_TABLES
#define DECLARE_SVC_STRUCT(ID, RETURN_TYPE, NAME, ...) \
class NAME { \
private: \
@@ -35,8 +37,8 @@ namespace ams::kern::svc {
#define DECLARE_SVC_STRUCT(ID, RETURN_TYPE, NAME, ...) \
class NAME { \
public: \
- static NOINLINE void Call64() { MESOSPHERE_LOG("Stubbed Svc"#NAME"64 was called\n"); } \
- static NOINLINE void Call64From32() { MESOSPHERE_LOG("Stubbed Svc"#NAME"64From32 was called\n"); } \
+ static NOINLINE void Call64() { MESOSPHERE_PANIC("Stubbed Svc"#NAME"64 was called"); } \
+ static NOINLINE void Call64From32() { MESOSPHERE_PANIC("Stubbed Svc"#NAME"64From32 was called"); } \
};
#endif
diff --git a/libraries/libmesosphere/source/svc/kern_svc_activity.cpp b/libraries/libmesosphere/source/svc/kern_svc_activity.cpp
new file mode 100644
index 000000000..67e1e53b6
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_activity.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result SetThreadActivity64(ams::svc::Handle thread_handle, ams::svc::ThreadActivity thread_activity) {
+ MESOSPHERE_PANIC("Stubbed SvcSetThreadActivity64 was called.");
+ }
+
+ Result SetProcessActivity64(ams::svc::Handle process_handle, ams::svc::ProcessActivity process_activity) {
+ MESOSPHERE_PANIC("Stubbed SvcSetProcessActivity64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result SetThreadActivity64From32(ams::svc::Handle thread_handle, ams::svc::ThreadActivity thread_activity) {
+ MESOSPHERE_PANIC("Stubbed SvcSetThreadActivity64From32 was called.");
+ }
+
+ Result SetProcessActivity64From32(ams::svc::Handle process_handle, ams::svc::ProcessActivity process_activity) {
+ MESOSPHERE_PANIC("Stubbed SvcSetProcessActivity64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_address_arbiter.cpp b/libraries/libmesosphere/source/svc/kern_svc_address_arbiter.cpp
new file mode 100644
index 000000000..a5bb9f184
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_address_arbiter.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result WaitForAddress64(ams::svc::Address address, ams::svc::ArbitrationType arb_type, int32_t value, int64_t timeout_ns) {
+ MESOSPHERE_PANIC("Stubbed SvcWaitForAddress64 was called.");
+ }
+
+ Result SignalToAddress64(ams::svc::Address address, ams::svc::SignalType signal_type, int32_t value, int32_t count) {
+ MESOSPHERE_PANIC("Stubbed SvcSignalToAddress64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result WaitForAddress64From32(ams::svc::Address address, ams::svc::ArbitrationType arb_type, int32_t value, int64_t timeout_ns) {
+ MESOSPHERE_PANIC("Stubbed SvcWaitForAddress64From32 was called.");
+ }
+
+ Result SignalToAddress64From32(ams::svc::Address address, ams::svc::SignalType signal_type, int32_t value, int32_t count) {
+ MESOSPHERE_PANIC("Stubbed SvcSignalToAddress64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_address_translation.cpp b/libraries/libmesosphere/source/svc/kern_svc_address_translation.cpp
new file mode 100644
index 000000000..949dd7dee
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_address_translation.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result QueryPhysicalAddress64(ams::svc::lp64::PhysicalMemoryInfo *out_info, ams::svc::Address address) {
+ MESOSPHERE_PANIC("Stubbed SvcQueryPhysicalAddress64 was called.");
+ }
+
+ Result QueryIoMapping64(ams::svc::Address *out_address, ams::svc::PhysicalAddress physical_address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcQueryIoMapping64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result QueryPhysicalAddress64From32(ams::svc::ilp32::PhysicalMemoryInfo *out_info, ams::svc::Address address) {
+ MESOSPHERE_PANIC("Stubbed SvcQueryPhysicalAddress64From32 was called.");
+ }
+
+ Result QueryIoMapping64From32(ams::svc::Address *out_address, ams::svc::PhysicalAddress physical_address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcQueryIoMapping64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_cache.cpp b/libraries/libmesosphere/source/svc/kern_svc_cache.cpp
new file mode 100644
index 000000000..c8e574f97
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_cache.cpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ void FlushEntireDataCache64() {
+ MESOSPHERE_PANIC("Stubbed SvcFlushEntireDataCache64 was called.");
+ }
+
+ Result FlushDataCache64(ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcFlushDataCache64 was called.");
+ }
+
+ Result InvalidateProcessDataCache64(ams::svc::Handle process_handle, uint64_t address, uint64_t size) {
+ MESOSPHERE_PANIC("Stubbed SvcInvalidateProcessDataCache64 was called.");
+ }
+
+ Result StoreProcessDataCache64(ams::svc::Handle process_handle, uint64_t address, uint64_t size) {
+ MESOSPHERE_PANIC("Stubbed SvcStoreProcessDataCache64 was called.");
+ }
+
+ Result FlushProcessDataCache64(ams::svc::Handle process_handle, uint64_t address, uint64_t size) {
+ MESOSPHERE_PANIC("Stubbed SvcFlushProcessDataCache64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ void FlushEntireDataCache64From32() {
+ MESOSPHERE_PANIC("Stubbed SvcFlushEntireDataCache64From32 was called.");
+ }
+
+ Result FlushDataCache64From32(ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcFlushDataCache64From32 was called.");
+ }
+
+ Result InvalidateProcessDataCache64From32(ams::svc::Handle process_handle, uint64_t address, uint64_t size) {
+ MESOSPHERE_PANIC("Stubbed SvcInvalidateProcessDataCache64From32 was called.");
+ }
+
+ Result StoreProcessDataCache64From32(ams::svc::Handle process_handle, uint64_t address, uint64_t size) {
+ MESOSPHERE_PANIC("Stubbed SvcStoreProcessDataCache64From32 was called.");
+ }
+
+ Result FlushProcessDataCache64From32(ams::svc::Handle process_handle, uint64_t address, uint64_t size) {
+ MESOSPHERE_PANIC("Stubbed SvcFlushProcessDataCache64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_code_memory.cpp b/libraries/libmesosphere/source/svc/kern_svc_code_memory.cpp
new file mode 100644
index 000000000..30b044dfb
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_code_memory.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result CreateCodeMemory64(ams::svc::Handle *out_handle, ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateCodeMemory64 was called.");
+ }
+
+ Result ControlCodeMemory64(ams::svc::Handle code_memory_handle, ams::svc::CodeMemoryOperation operation, uint64_t address, uint64_t size, ams::svc::MemoryPermission perm) {
+ MESOSPHERE_PANIC("Stubbed SvcControlCodeMemory64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result CreateCodeMemory64From32(ams::svc::Handle *out_handle, ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateCodeMemory64From32 was called.");
+ }
+
+ Result ControlCodeMemory64From32(ams::svc::Handle code_memory_handle, ams::svc::CodeMemoryOperation operation, uint64_t address, uint64_t size, ams::svc::MemoryPermission perm) {
+ MESOSPHERE_PANIC("Stubbed SvcControlCodeMemory64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_condition_variable.cpp b/libraries/libmesosphere/source/svc/kern_svc_condition_variable.cpp
new file mode 100644
index 000000000..f3801b8d2
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_condition_variable.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result WaitProcessWideKeyAtomic64(ams::svc::Address address, ams::svc::Address cv_key, uint32_t tag, int64_t timeout_ns) {
+ MESOSPHERE_PANIC("Stubbed SvcWaitProcessWideKeyAtomic64 was called.");
+ }
+
+ void SignalProcessWideKey64(ams::svc::Address cv_key, int32_t count) {
+ MESOSPHERE_PANIC("Stubbed SvcSignalProcessWideKey64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result WaitProcessWideKeyAtomic64From32(ams::svc::Address address, ams::svc::Address cv_key, uint32_t tag, int64_t timeout_ns) {
+ MESOSPHERE_PANIC("Stubbed SvcWaitProcessWideKeyAtomic64From32 was called.");
+ }
+
+ void SignalProcessWideKey64From32(ams::svc::Address cv_key, int32_t count) {
+ MESOSPHERE_PANIC("Stubbed SvcSignalProcessWideKey64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_debug.cpp b/libraries/libmesosphere/source/svc/kern_svc_debug.cpp
new file mode 100644
index 000000000..73dcbd133
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_debug.cpp
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result DebugActiveProcess64(ams::svc::Handle *out_handle, uint64_t process_id) {
+ MESOSPHERE_PANIC("Stubbed SvcDebugActiveProcess64 was called.");
+ }
+
+ Result BreakDebugProcess64(ams::svc::Handle debug_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcBreakDebugProcess64 was called.");
+ }
+
+ Result TerminateDebugProcess64(ams::svc::Handle debug_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcTerminateDebugProcess64 was called.");
+ }
+
+ Result GetDebugEvent64(KUserPointer out_info, ams::svc::Handle debug_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcGetDebugEvent64 was called.");
+ }
+
+ Result ContinueDebugEvent64(ams::svc::Handle debug_handle, uint32_t flags, KUserPointer thread_ids, int32_t num_thread_ids) {
+ MESOSPHERE_PANIC("Stubbed SvcContinueDebugEvent64 was called.");
+ }
+
+ Result GetDebugThreadContext64(KUserPointer out_context, ams::svc::Handle debug_handle, uint64_t thread_id, uint32_t context_flags) {
+ MESOSPHERE_PANIC("Stubbed SvcGetDebugThreadContext64 was called.");
+ }
+
+ Result SetDebugThreadContext64(ams::svc::Handle debug_handle, uint64_t thread_id, KUserPointer context, uint32_t context_flags) {
+ MESOSPHERE_PANIC("Stubbed SvcSetDebugThreadContext64 was called.");
+ }
+
+ Result QueryDebugProcessMemory64(KUserPointer out_memory_info, ams::svc::PageInfo *out_page_info, ams::svc::Handle process_handle, ams::svc::Address address) {
+ MESOSPHERE_PANIC("Stubbed SvcQueryDebugProcessMemory64 was called.");
+ }
+
+ Result ReadDebugProcessMemory64(ams::svc::Address buffer, ams::svc::Handle debug_handle, ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcReadDebugProcessMemory64 was called.");
+ }
+
+ Result WriteDebugProcessMemory64(ams::svc::Handle debug_handle, ams::svc::Address buffer, ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcWriteDebugProcessMemory64 was called.");
+ }
+
+ Result SetHardwareBreakPoint64(ams::svc::HardwareBreakPointRegisterName name, uint64_t flags, uint64_t value) {
+ MESOSPHERE_PANIC("Stubbed SvcSetHardwareBreakPoint64 was called.");
+ }
+
+ Result GetDebugThreadParam64(uint64_t *out_64, uint32_t *out_32, ams::svc::Handle debug_handle, uint64_t thread_id, ams::svc::DebugThreadParam param) {
+ MESOSPHERE_PANIC("Stubbed SvcGetDebugThreadParam64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result DebugActiveProcess64From32(ams::svc::Handle *out_handle, uint64_t process_id) {
+ MESOSPHERE_PANIC("Stubbed SvcDebugActiveProcess64From32 was called.");
+ }
+
+ Result BreakDebugProcess64From32(ams::svc::Handle debug_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcBreakDebugProcess64From32 was called.");
+ }
+
+ Result TerminateDebugProcess64From32(ams::svc::Handle debug_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcTerminateDebugProcess64From32 was called.");
+ }
+
+ Result GetDebugEvent64From32(KUserPointer out_info, ams::svc::Handle debug_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcGetDebugEvent64From32 was called.");
+ }
+
+ Result ContinueDebugEvent64From32(ams::svc::Handle debug_handle, uint32_t flags, KUserPointer thread_ids, int32_t num_thread_ids) {
+ MESOSPHERE_PANIC("Stubbed SvcContinueDebugEvent64From32 was called.");
+ }
+
+ Result GetDebugThreadContext64From32(KUserPointer out_context, ams::svc::Handle debug_handle, uint64_t thread_id, uint32_t context_flags) {
+ MESOSPHERE_PANIC("Stubbed SvcGetDebugThreadContext64From32 was called.");
+ }
+
+ Result SetDebugThreadContext64From32(ams::svc::Handle debug_handle, uint64_t thread_id, KUserPointer context, uint32_t context_flags) {
+ MESOSPHERE_PANIC("Stubbed SvcSetDebugThreadContext64From32 was called.");
+ }
+
+ Result QueryDebugProcessMemory64From32(KUserPointer out_memory_info, ams::svc::PageInfo *out_page_info, ams::svc::Handle process_handle, ams::svc::Address address) {
+ MESOSPHERE_PANIC("Stubbed SvcQueryDebugProcessMemory64From32 was called.");
+ }
+
+ Result ReadDebugProcessMemory64From32(ams::svc::Address buffer, ams::svc::Handle debug_handle, ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcReadDebugProcessMemory64From32 was called.");
+ }
+
+ Result WriteDebugProcessMemory64From32(ams::svc::Handle debug_handle, ams::svc::Address buffer, ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcWriteDebugProcessMemory64From32 was called.");
+ }
+
+ Result SetHardwareBreakPoint64From32(ams::svc::HardwareBreakPointRegisterName name, uint64_t flags, uint64_t value) {
+ MESOSPHERE_PANIC("Stubbed SvcSetHardwareBreakPoint64From32 was called.");
+ }
+
+ Result GetDebugThreadParam64From32(uint64_t *out_64, uint32_t *out_32, ams::svc::Handle debug_handle, uint64_t thread_id, ams::svc::DebugThreadParam param) {
+ MESOSPHERE_PANIC("Stubbed SvcGetDebugThreadParam64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_debug_string.cpp b/libraries/libmesosphere/source/svc/kern_svc_debug_string.cpp
new file mode 100644
index 000000000..41f854ef1
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_debug_string.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result OutputDebugString64(KUserPointer debug_str, ams::svc::Size len) {
+ MESOSPHERE_PANIC("Stubbed SvcOutputDebugString64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result OutputDebugString64From32(KUserPointer debug_str, ams::svc::Size len) {
+ MESOSPHERE_PANIC("Stubbed SvcOutputDebugString64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_device_address_space.cpp b/libraries/libmesosphere/source/svc/kern_svc_device_address_space.cpp
new file mode 100644
index 000000000..882f08335
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_device_address_space.cpp
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result CreateDeviceAddressSpace64(ams::svc::Handle *out_handle, uint64_t das_address, uint64_t das_size) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateDeviceAddressSpace64 was called.");
+ }
+
+ Result AttachDeviceAddressSpace64(ams::svc::DeviceName device_name, ams::svc::Handle das_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcAttachDeviceAddressSpace64 was called.");
+ }
+
+ Result DetachDeviceAddressSpace64(ams::svc::DeviceName device_name, ams::svc::Handle das_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcDetachDeviceAddressSpace64 was called.");
+ }
+
+ Result MapDeviceAddressSpaceByForce64(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) {
+ MESOSPHERE_PANIC("Stubbed SvcMapDeviceAddressSpaceByForce64 was called.");
+ }
+
+ Result MapDeviceAddressSpaceAligned64(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) {
+ MESOSPHERE_PANIC("Stubbed SvcMapDeviceAddressSpaceAligned64 was called.");
+ }
+
+ Result MapDeviceAddressSpace64(ams::svc::Size *out_mapped_size, 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) {
+ MESOSPHERE_PANIC("Stubbed SvcMapDeviceAddressSpace64 was called.");
+ }
+
+ Result UnmapDeviceAddressSpace64(ams::svc::Handle das_handle, ams::svc::Handle process_handle, uint64_t process_address, ams::svc::Size size, uint64_t device_address) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapDeviceAddressSpace64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result CreateDeviceAddressSpace64From32(ams::svc::Handle *out_handle, uint64_t das_address, uint64_t das_size) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateDeviceAddressSpace64From32 was called.");
+ }
+
+ Result AttachDeviceAddressSpace64From32(ams::svc::DeviceName device_name, ams::svc::Handle das_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcAttachDeviceAddressSpace64From32 was called.");
+ }
+
+ Result DetachDeviceAddressSpace64From32(ams::svc::DeviceName device_name, ams::svc::Handle das_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcDetachDeviceAddressSpace64From32 was called.");
+ }
+
+ Result MapDeviceAddressSpaceByForce64From32(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) {
+ MESOSPHERE_PANIC("Stubbed SvcMapDeviceAddressSpaceByForce64From32 was called.");
+ }
+
+ Result MapDeviceAddressSpaceAligned64From32(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) {
+ MESOSPHERE_PANIC("Stubbed SvcMapDeviceAddressSpaceAligned64From32 was called.");
+ }
+
+ Result MapDeviceAddressSpace64From32(ams::svc::Size *out_mapped_size, 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) {
+ MESOSPHERE_PANIC("Stubbed SvcMapDeviceAddressSpace64From32 was called.");
+ }
+
+ Result UnmapDeviceAddressSpace64From32(ams::svc::Handle das_handle, ams::svc::Handle process_handle, uint64_t process_address, ams::svc::Size size, uint64_t device_address) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapDeviceAddressSpace64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_event.cpp b/libraries/libmesosphere/source/svc/kern_svc_event.cpp
new file mode 100644
index 000000000..c7bd2e5ca
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_event.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result SignalEvent64(ams::svc::Handle event_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcSignalEvent64 was called.");
+ }
+
+ Result ClearEvent64(ams::svc::Handle event_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcClearEvent64 was called.");
+ }
+
+ Result CreateEvent64(ams::svc::Handle *out_write_handle, ams::svc::Handle *out_read_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateEvent64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result SignalEvent64From32(ams::svc::Handle event_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcSignalEvent64From32 was called.");
+ }
+
+ Result ClearEvent64From32(ams::svc::Handle event_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcClearEvent64From32 was called.");
+ }
+
+ Result CreateEvent64From32(ams::svc::Handle *out_write_handle, ams::svc::Handle *out_read_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateEvent64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_exception.cpp b/libraries/libmesosphere/source/svc/kern_svc_exception.cpp
new file mode 100644
index 000000000..54c16e800
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_exception.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ void Break64(ams::svc::BreakReason break_reason, ams::svc::Address arg, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcBreak64 was called.");
+ }
+
+ void ReturnFromException64(ams::Result result) {
+ MESOSPHERE_PANIC("Stubbed SvcReturnFromException64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ void Break64From32(ams::svc::BreakReason break_reason, ams::svc::Address arg, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcBreak64From32 was called.");
+ }
+
+ void ReturnFromException64From32(ams::Result result) {
+ MESOSPHERE_PANIC("Stubbed SvcReturnFromException64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_info.cpp b/libraries/libmesosphere/source/svc/kern_svc_info.cpp
new file mode 100644
index 000000000..ecf9ad55c
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_info.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result GetInfo64(uint64_t *out, ams::svc::InfoType info_type, ams::svc::Handle handle, uint64_t info_subtype) {
+ MESOSPHERE_PANIC("Stubbed SvcGetInfo64 was called.");
+ }
+
+ Result GetSystemInfo64(uint64_t *out, ams::svc::SystemInfoType info_type, ams::svc::Handle handle, uint64_t info_subtype) {
+ MESOSPHERE_PANIC("Stubbed SvcGetSystemInfo64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result GetInfo64From32(uint64_t *out, ams::svc::InfoType info_type, ams::svc::Handle handle, uint64_t info_subtype) {
+ MESOSPHERE_PANIC("Stubbed SvcGetInfo64From32 was called.");
+ }
+
+ Result GetSystemInfo64From32(uint64_t *out, ams::svc::SystemInfoType info_type, ams::svc::Handle handle, uint64_t info_subtype) {
+ MESOSPHERE_PANIC("Stubbed SvcGetSystemInfo64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_interrupt_event.cpp b/libraries/libmesosphere/source/svc/kern_svc_interrupt_event.cpp
new file mode 100644
index 000000000..d1e04718d
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_interrupt_event.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result CreateInterruptEvent64(ams::svc::Handle *out_read_handle, int32_t interrupt_id, ams::svc::InterruptType interrupt_type) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateInterruptEvent64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result CreateInterruptEvent64From32(ams::svc::Handle *out_read_handle, int32_t interrupt_id, ams::svc::InterruptType interrupt_type) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateInterruptEvent64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_ipc.cpp b/libraries/libmesosphere/source/svc/kern_svc_ipc.cpp
new file mode 100644
index 000000000..a03cb53dc
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_ipc.cpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result SendSyncRequest64(ams::svc::Handle session_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcSendSyncRequest64 was called.");
+ }
+
+ Result SendSyncRequestWithUserBuffer64(ams::svc::Address message_buffer, ams::svc::Size message_buffer_size, ams::svc::Handle session_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcSendSyncRequestWithUserBuffer64 was called.");
+ }
+
+ Result SendAsyncRequestWithUserBuffer64(ams::svc::Handle *out_event_handle, ams::svc::Address message_buffer, ams::svc::Size message_buffer_size, ams::svc::Handle session_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcSendAsyncRequestWithUserBuffer64 was called.");
+ }
+
+ Result ReplyAndReceive64(int32_t *out_index, KUserPointer handles, int32_t num_handles, ams::svc::Handle reply_target, int64_t timeout_ns) {
+ MESOSPHERE_PANIC("Stubbed SvcReplyAndReceive64 was called.");
+ }
+
+ Result ReplyAndReceiveWithUserBuffer64(int32_t *out_index, ams::svc::Address message_buffer, ams::svc::Size message_buffer_size, KUserPointer handles, int32_t num_handles, ams::svc::Handle reply_target, int64_t timeout_ns) {
+ MESOSPHERE_PANIC("Stubbed SvcReplyAndReceiveWithUserBuffer64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result SendSyncRequest64From32(ams::svc::Handle session_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcSendSyncRequest64From32 was called.");
+ }
+
+ Result SendSyncRequestWithUserBuffer64From32(ams::svc::Address message_buffer, ams::svc::Size message_buffer_size, ams::svc::Handle session_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcSendSyncRequestWithUserBuffer64From32 was called.");
+ }
+
+ Result SendAsyncRequestWithUserBuffer64From32(ams::svc::Handle *out_event_handle, ams::svc::Address message_buffer, ams::svc::Size message_buffer_size, ams::svc::Handle session_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcSendAsyncRequestWithUserBuffer64From32 was called.");
+ }
+
+ Result ReplyAndReceive64From32(int32_t *out_index, KUserPointer handles, int32_t num_handles, ams::svc::Handle reply_target, int64_t timeout_ns) {
+ MESOSPHERE_PANIC("Stubbed SvcReplyAndReceive64From32 was called.");
+ }
+
+ Result ReplyAndReceiveWithUserBuffer64From32(int32_t *out_index, ams::svc::Address message_buffer, ams::svc::Size message_buffer_size, KUserPointer handles, int32_t num_handles, ams::svc::Handle reply_target, int64_t timeout_ns) {
+ MESOSPHERE_PANIC("Stubbed SvcReplyAndReceiveWithUserBuffer64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_kernel_debug.cpp b/libraries/libmesosphere/source/svc/kern_svc_kernel_debug.cpp
new file mode 100644
index 000000000..039f4aafd
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_kernel_debug.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ void KernelDebug64(ams::svc::KernelDebugType kern_debug_type, uint64_t arg0, uint64_t arg1, uint64_t arg2) {
+ MESOSPHERE_PANIC("Stubbed SvcKernelDebug64 was called.");
+ }
+
+ void ChangeKernelTraceState64(ams::svc::KernelTraceState kern_trace_state) {
+ MESOSPHERE_PANIC("Stubbed SvcChangeKernelTraceState64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ void KernelDebug64From32(ams::svc::KernelDebugType kern_debug_type, uint64_t arg0, uint64_t arg1, uint64_t arg2) {
+ MESOSPHERE_PANIC("Stubbed SvcKernelDebug64From32 was called.");
+ }
+
+ void ChangeKernelTraceState64From32(ams::svc::KernelTraceState kern_trace_state) {
+ MESOSPHERE_PANIC("Stubbed SvcChangeKernelTraceState64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_light_ipc.cpp b/libraries/libmesosphere/source/svc/kern_svc_light_ipc.cpp
new file mode 100644
index 000000000..38cde5665
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_light_ipc.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result SendSyncRequestLight64(ams::svc::Handle session_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcSendSyncRequestLight64 was called.");
+ }
+
+ Result ReplyAndReceiveLight64(ams::svc::Handle handle) {
+ MESOSPHERE_PANIC("Stubbed SvcReplyAndReceiveLight64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result SendSyncRequestLight64From32(ams::svc::Handle session_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcSendSyncRequestLight64From32 was called.");
+ }
+
+ Result ReplyAndReceiveLight64From32(ams::svc::Handle handle) {
+ MESOSPHERE_PANIC("Stubbed SvcReplyAndReceiveLight64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_lock.cpp b/libraries/libmesosphere/source/svc/kern_svc_lock.cpp
new file mode 100644
index 000000000..ddcf3b64a
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_lock.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result ArbitrateLock64(ams::svc::Handle thread_handle, ams::svc::Address address, uint32_t tag) {
+ MESOSPHERE_PANIC("Stubbed SvcArbitrateLock64 was called.");
+ }
+
+ Result ArbitrateUnlock64(ams::svc::Address address) {
+ MESOSPHERE_PANIC("Stubbed SvcArbitrateUnlock64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result ArbitrateLock64From32(ams::svc::Handle thread_handle, ams::svc::Address address, uint32_t tag) {
+ MESOSPHERE_PANIC("Stubbed SvcArbitrateLock64From32 was called.");
+ }
+
+ Result ArbitrateUnlock64From32(ams::svc::Address address) {
+ MESOSPHERE_PANIC("Stubbed SvcArbitrateUnlock64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_memory.cpp b/libraries/libmesosphere/source/svc/kern_svc_memory.cpp
new file mode 100644
index 000000000..014f41e27
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_memory.cpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result SetMemoryPermission64(ams::svc::Address address, ams::svc::Size size, ams::svc::MemoryPermission perm) {
+ MESOSPHERE_PANIC("Stubbed SvcSetMemoryPermission64 was called.");
+ }
+
+ Result SetMemoryAttribute64(ams::svc::Address address, ams::svc::Size size, uint32_t mask, uint32_t attr) {
+ MESOSPHERE_PANIC("Stubbed SvcSetMemoryAttribute64 was called.");
+ }
+
+ Result MapMemory64(ams::svc::Address dst_address, ams::svc::Address src_address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcMapMemory64 was called.");
+ }
+
+ Result UnmapMemory64(ams::svc::Address dst_address, ams::svc::Address src_address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapMemory64 was called.");
+ }
+
+ Result QueryMemory64(KUserPointer out_memory_info, ams::svc::PageInfo *out_page_info, ams::svc::Address address) {
+ MESOSPHERE_PANIC("Stubbed SvcQueryMemory64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result SetMemoryPermission64From32(ams::svc::Address address, ams::svc::Size size, ams::svc::MemoryPermission perm) {
+ MESOSPHERE_PANIC("Stubbed SvcSetMemoryPermission64From32 was called.");
+ }
+
+ Result SetMemoryAttribute64From32(ams::svc::Address address, ams::svc::Size size, uint32_t mask, uint32_t attr) {
+ MESOSPHERE_PANIC("Stubbed SvcSetMemoryAttribute64From32 was called.");
+ }
+
+ Result MapMemory64From32(ams::svc::Address dst_address, ams::svc::Address src_address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcMapMemory64From32 was called.");
+ }
+
+ Result UnmapMemory64From32(ams::svc::Address dst_address, ams::svc::Address src_address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapMemory64From32 was called.");
+ }
+
+ Result QueryMemory64From32(KUserPointer out_memory_info, ams::svc::PageInfo *out_page_info, ams::svc::Address address) {
+ MESOSPHERE_PANIC("Stubbed SvcQueryMemory64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_physical_memory.cpp b/libraries/libmesosphere/source/svc/kern_svc_physical_memory.cpp
new file mode 100644
index 000000000..01ae47e8d
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_physical_memory.cpp
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result SetHeapSize64(ams::svc::Address *out_address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcSetHeapSize64 was called.");
+ }
+
+ Result MapPhysicalMemory64(ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcMapPhysicalMemory64 was called.");
+ }
+
+ Result UnmapPhysicalMemory64(ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapPhysicalMemory64 was called.");
+ }
+
+ Result MapPhysicalMemoryUnsafe64(ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcMapPhysicalMemoryUnsafe64 was called.");
+ }
+
+ Result UnmapPhysicalMemoryUnsafe64(ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapPhysicalMemoryUnsafe64 was called.");
+ }
+
+ Result SetUnsafeLimit64(ams::svc::Size limit) {
+ MESOSPHERE_PANIC("Stubbed SvcSetUnsafeLimit64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result SetHeapSize64From32(ams::svc::Address *out_address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcSetHeapSize64From32 was called.");
+ }
+
+ Result MapPhysicalMemory64From32(ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcMapPhysicalMemory64From32 was called.");
+ }
+
+ Result UnmapPhysicalMemory64From32(ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapPhysicalMemory64From32 was called.");
+ }
+
+ Result MapPhysicalMemoryUnsafe64From32(ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcMapPhysicalMemoryUnsafe64From32 was called.");
+ }
+
+ Result UnmapPhysicalMemoryUnsafe64From32(ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapPhysicalMemoryUnsafe64From32 was called.");
+ }
+
+ Result SetUnsafeLimit64From32(ams::svc::Size limit) {
+ MESOSPHERE_PANIC("Stubbed SvcSetUnsafeLimit64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_port.cpp b/libraries/libmesosphere/source/svc/kern_svc_port.cpp
new file mode 100644
index 000000000..6aa13df48
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_port.cpp
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result ConnectToNamedPort64(ams::svc::Handle *out_handle, KUserPointer name) {
+ MESOSPHERE_PANIC("Stubbed SvcConnectToNamedPort64 was called.");
+ }
+
+ Result CreatePort64(ams::svc::Handle *out_server_handle, ams::svc::Handle *out_client_handle, int32_t max_sessions, bool is_light, ams::svc::Address name) {
+ MESOSPHERE_PANIC("Stubbed SvcCreatePort64 was called.");
+ }
+
+ Result ManageNamedPort64(ams::svc::Handle *out_server_handle, KUserPointer name, int32_t max_sessions) {
+ MESOSPHERE_PANIC("Stubbed SvcManageNamedPort64 was called.");
+ }
+
+ Result ConnectToPort64(ams::svc::Handle *out_handle, ams::svc::Handle port) {
+ MESOSPHERE_PANIC("Stubbed SvcConnectToPort64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result ConnectToNamedPort64From32(ams::svc::Handle *out_handle, KUserPointer name) {
+ MESOSPHERE_PANIC("Stubbed SvcConnectToNamedPort64From32 was called.");
+ }
+
+ Result CreatePort64From32(ams::svc::Handle *out_server_handle, ams::svc::Handle *out_client_handle, int32_t max_sessions, bool is_light, ams::svc::Address name) {
+ MESOSPHERE_PANIC("Stubbed SvcCreatePort64From32 was called.");
+ }
+
+ Result ManageNamedPort64From32(ams::svc::Handle *out_server_handle, KUserPointer name, int32_t max_sessions) {
+ MESOSPHERE_PANIC("Stubbed SvcManageNamedPort64From32 was called.");
+ }
+
+ Result ConnectToPort64From32(ams::svc::Handle *out_handle, ams::svc::Handle port) {
+ MESOSPHERE_PANIC("Stubbed SvcConnectToPort64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_power_management.cpp b/libraries/libmesosphere/source/svc/kern_svc_power_management.cpp
new file mode 100644
index 000000000..f0c5a8474
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_power_management.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ void SleepSystem64() {
+ MESOSPHERE_PANIC("Stubbed SvcSleepSystem64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ void SleepSystem64From32() {
+ MESOSPHERE_PANIC("Stubbed SvcSleepSystem64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_process.cpp b/libraries/libmesosphere/source/svc/kern_svc_process.cpp
new file mode 100644
index 000000000..a64d8a39b
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_process.cpp
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ void ExitProcess64() {
+ MESOSPHERE_PANIC("Stubbed SvcExitProcess64 was called.");
+ }
+
+ Result GetProcessId64(uint64_t *out_process_id, ams::svc::Handle process_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcGetProcessId64 was called.");
+ }
+
+ Result GetProcessList64(int32_t *out_num_processes, KUserPointer out_process_ids, int32_t max_out_count) {
+ MESOSPHERE_PANIC("Stubbed SvcGetProcessList64 was called.");
+ }
+
+ Result CreateProcess64(ams::svc::Handle *out_handle, KUserPointer parameters, KUserPointer caps, int32_t num_caps) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateProcess64 was called.");
+ }
+
+ Result StartProcess64(ams::svc::Handle process_handle, int32_t priority, int32_t core_id, uint64_t main_thread_stack_size) {
+ MESOSPHERE_PANIC("Stubbed SvcStartProcess64 was called.");
+ }
+
+ Result TerminateProcess64(ams::svc::Handle process_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcTerminateProcess64 was called.");
+ }
+
+ Result GetProcessInfo64(int64_t *out_info, ams::svc::Handle process_handle, ams::svc::ProcessInfoType info_type) {
+ MESOSPHERE_PANIC("Stubbed SvcGetProcessInfo64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ void ExitProcess64From32() {
+ MESOSPHERE_PANIC("Stubbed SvcExitProcess64From32 was called.");
+ }
+
+ Result GetProcessId64From32(uint64_t *out_process_id, ams::svc::Handle process_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcGetProcessId64From32 was called.");
+ }
+
+ Result GetProcessList64From32(int32_t *out_num_processes, KUserPointer out_process_ids, int32_t max_out_count) {
+ MESOSPHERE_PANIC("Stubbed SvcGetProcessList64From32 was called.");
+ }
+
+ Result CreateProcess64From32(ams::svc::Handle *out_handle, KUserPointer parameters, KUserPointer caps, int32_t num_caps) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateProcess64From32 was called.");
+ }
+
+ Result StartProcess64From32(ams::svc::Handle process_handle, int32_t priority, int32_t core_id, uint64_t main_thread_stack_size) {
+ MESOSPHERE_PANIC("Stubbed SvcStartProcess64From32 was called.");
+ }
+
+ Result TerminateProcess64From32(ams::svc::Handle process_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcTerminateProcess64From32 was called.");
+ }
+
+ Result GetProcessInfo64From32(int64_t *out_info, ams::svc::Handle process_handle, ams::svc::ProcessInfoType info_type) {
+ MESOSPHERE_PANIC("Stubbed SvcGetProcessInfo64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_process_memory.cpp b/libraries/libmesosphere/source/svc/kern_svc_process_memory.cpp
new file mode 100644
index 000000000..8daffbb21
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_process_memory.cpp
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result SetProcessMemoryPermission64(ams::svc::Handle process_handle, uint64_t address, uint64_t size, ams::svc::MemoryPermission perm) {
+ MESOSPHERE_PANIC("Stubbed SvcSetProcessMemoryPermission64 was called.");
+ }
+
+ Result MapProcessMemory64(ams::svc::Address dst_address, ams::svc::Handle process_handle, uint64_t src_address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcMapProcessMemory64 was called.");
+ }
+
+ Result UnmapProcessMemory64(ams::svc::Address dst_address, ams::svc::Handle process_handle, uint64_t src_address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapProcessMemory64 was called.");
+ }
+
+ Result QueryProcessMemory64(KUserPointer out_memory_info, ams::svc::PageInfo *out_page_info, ams::svc::Handle process_handle, uint64_t address) {
+ MESOSPHERE_PANIC("Stubbed SvcQueryProcessMemory64 was called.");
+ }
+
+ Result MapProcessCodeMemory64(ams::svc::Handle process_handle, uint64_t dst_address, uint64_t src_address, uint64_t size) {
+ MESOSPHERE_PANIC("Stubbed SvcMapProcessCodeMemory64 was called.");
+ }
+
+ Result UnmapProcessCodeMemory64(ams::svc::Handle process_handle, uint64_t dst_address, uint64_t src_address, uint64_t size) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapProcessCodeMemory64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result SetProcessMemoryPermission64From32(ams::svc::Handle process_handle, uint64_t address, uint64_t size, ams::svc::MemoryPermission perm) {
+ MESOSPHERE_PANIC("Stubbed SvcSetProcessMemoryPermission64From32 was called.");
+ }
+
+ Result MapProcessMemory64From32(ams::svc::Address dst_address, ams::svc::Handle process_handle, uint64_t src_address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcMapProcessMemory64From32 was called.");
+ }
+
+ Result UnmapProcessMemory64From32(ams::svc::Address dst_address, ams::svc::Handle process_handle, uint64_t src_address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapProcessMemory64From32 was called.");
+ }
+
+ Result QueryProcessMemory64From32(KUserPointer out_memory_info, ams::svc::PageInfo *out_page_info, ams::svc::Handle process_handle, uint64_t address) {
+ MESOSPHERE_PANIC("Stubbed SvcQueryProcessMemory64From32 was called.");
+ }
+
+ Result MapProcessCodeMemory64From32(ams::svc::Handle process_handle, uint64_t dst_address, uint64_t src_address, uint64_t size) {
+ MESOSPHERE_PANIC("Stubbed SvcMapProcessCodeMemory64From32 was called.");
+ }
+
+ Result UnmapProcessCodeMemory64From32(ams::svc::Handle process_handle, uint64_t dst_address, uint64_t src_address, uint64_t size) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapProcessCodeMemory64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_processor.cpp b/libraries/libmesosphere/source/svc/kern_svc_processor.cpp
new file mode 100644
index 000000000..96fbddbcd
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_processor.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ int32_t GetCurrentProcessorNumber64() {
+ MESOSPHERE_PANIC("Stubbed SvcGetCurrentProcessorNumber64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ int32_t GetCurrentProcessorNumber64From32() {
+ MESOSPHERE_PANIC("Stubbed SvcGetCurrentProcessorNumber64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_register.cpp b/libraries/libmesosphere/source/svc/kern_svc_register.cpp
new file mode 100644
index 000000000..485208fb1
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_register.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result ReadWriteRegister64(uint32_t *out_value, ams::svc::PhysicalAddress address, uint32_t mask, uint32_t value) {
+ MESOSPHERE_PANIC("Stubbed SvcReadWriteRegister64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result ReadWriteRegister64From32(uint32_t *out_value, ams::svc::PhysicalAddress address, uint32_t mask, uint32_t value) {
+ MESOSPHERE_PANIC("Stubbed SvcReadWriteRegister64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_resource_limit.cpp b/libraries/libmesosphere/source/svc/kern_svc_resource_limit.cpp
new file mode 100644
index 000000000..9f354c03d
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_resource_limit.cpp
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result GetResourceLimitLimitValue64(int64_t *out_limit_value, ams::svc::Handle resource_limit_handle, ams::svc::LimitableResource which) {
+ MESOSPHERE_PANIC("Stubbed SvcGetResourceLimitLimitValue64 was called.");
+ }
+
+ Result GetResourceLimitCurrentValue64(int64_t *out_current_value, ams::svc::Handle resource_limit_handle, ams::svc::LimitableResource which) {
+ MESOSPHERE_PANIC("Stubbed SvcGetResourceLimitCurrentValue64 was called.");
+ }
+
+ Result CreateResourceLimit64(ams::svc::Handle *out_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateResourceLimit64 was called.");
+ }
+
+ Result SetResourceLimitLimitValue64(ams::svc::Handle resource_limit_handle, ams::svc::LimitableResource which, int64_t limit_value) {
+ MESOSPHERE_PANIC("Stubbed SvcSetResourceLimitLimitValue64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result GetResourceLimitLimitValue64From32(int64_t *out_limit_value, ams::svc::Handle resource_limit_handle, ams::svc::LimitableResource which) {
+ MESOSPHERE_PANIC("Stubbed SvcGetResourceLimitLimitValue64From32 was called.");
+ }
+
+ Result GetResourceLimitCurrentValue64From32(int64_t *out_current_value, ams::svc::Handle resource_limit_handle, ams::svc::LimitableResource which) {
+ MESOSPHERE_PANIC("Stubbed SvcGetResourceLimitCurrentValue64From32 was called.");
+ }
+
+ Result CreateResourceLimit64From32(ams::svc::Handle *out_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateResourceLimit64From32 was called.");
+ }
+
+ Result SetResourceLimitLimitValue64From32(ams::svc::Handle resource_limit_handle, ams::svc::LimitableResource which, int64_t limit_value) {
+ MESOSPHERE_PANIC("Stubbed SvcSetResourceLimitLimitValue64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_secure_monitor_call.cpp b/libraries/libmesosphere/source/svc/kern_svc_secure_monitor_call.cpp
new file mode 100644
index 000000000..64ed3c735
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_secure_monitor_call.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ void CallSecureMonitor64(ams::svc::lp64::SecureMonitorArguments *args) {
+ MESOSPHERE_PANIC("Stubbed SvcCallSecureMonitor64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ void CallSecureMonitor64From32(ams::svc::ilp32::SecureMonitorArguments *args) {
+ MESOSPHERE_PANIC("Stubbed SvcCallSecureMonitor64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_session.cpp b/libraries/libmesosphere/source/svc/kern_svc_session.cpp
new file mode 100644
index 000000000..7cc5b78f3
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_session.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result CreateSession64(ams::svc::Handle *out_server_session_handle, ams::svc::Handle *out_client_session_handle, bool is_light, ams::svc::Address name) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateSession64 was called.");
+ }
+
+ Result AcceptSession64(ams::svc::Handle *out_handle, ams::svc::Handle port) {
+ MESOSPHERE_PANIC("Stubbed SvcAcceptSession64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result CreateSession64From32(ams::svc::Handle *out_server_session_handle, ams::svc::Handle *out_client_session_handle, bool is_light, ams::svc::Address name) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateSession64From32 was called.");
+ }
+
+ Result AcceptSession64From32(ams::svc::Handle *out_handle, ams::svc::Handle port) {
+ MESOSPHERE_PANIC("Stubbed SvcAcceptSession64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_shared_memory.cpp b/libraries/libmesosphere/source/svc/kern_svc_shared_memory.cpp
new file mode 100644
index 000000000..25cc46e21
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_shared_memory.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result MapSharedMemory64(ams::svc::Handle shmem_handle, ams::svc::Address address, ams::svc::Size size, ams::svc::MemoryPermission map_perm) {
+ MESOSPHERE_PANIC("Stubbed SvcMapSharedMemory64 was called.");
+ }
+
+ Result UnmapSharedMemory64(ams::svc::Handle shmem_handle, ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapSharedMemory64 was called.");
+ }
+
+ Result CreateSharedMemory64(ams::svc::Handle *out_handle, ams::svc::Size size, ams::svc::MemoryPermission owner_perm, ams::svc::MemoryPermission remote_perm) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateSharedMemory64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result MapSharedMemory64From32(ams::svc::Handle shmem_handle, ams::svc::Address address, ams::svc::Size size, ams::svc::MemoryPermission map_perm) {
+ MESOSPHERE_PANIC("Stubbed SvcMapSharedMemory64From32 was called.");
+ }
+
+ Result UnmapSharedMemory64From32(ams::svc::Handle shmem_handle, ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapSharedMemory64From32 was called.");
+ }
+
+ Result CreateSharedMemory64From32(ams::svc::Handle *out_handle, ams::svc::Size size, ams::svc::MemoryPermission owner_perm, ams::svc::MemoryPermission remote_perm) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateSharedMemory64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_synchronization.cpp b/libraries/libmesosphere/source/svc/kern_svc_synchronization.cpp
new file mode 100644
index 000000000..1c6a768d3
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_synchronization.cpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result CloseHandle64(ams::svc::Handle handle) {
+ MESOSPHERE_PANIC("Stubbed SvcCloseHandle64 was called.");
+ }
+
+ Result ResetSignal64(ams::svc::Handle handle) {
+ MESOSPHERE_PANIC("Stubbed SvcResetSignal64 was called.");
+ }
+
+ Result WaitSynchronization64(int32_t *out_index, KUserPointer handles, int32_t numHandles, int64_t timeout_ns) {
+ MESOSPHERE_PANIC("Stubbed SvcWaitSynchronization64 was called.");
+ }
+
+ Result CancelSynchronization64(ams::svc::Handle handle) {
+ MESOSPHERE_PANIC("Stubbed SvcCancelSynchronization64 was called.");
+ }
+
+ void SynchronizePreemptionState64() {
+ MESOSPHERE_PANIC("Stubbed SvcSynchronizePreemptionState64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result CloseHandle64From32(ams::svc::Handle handle) {
+ MESOSPHERE_PANIC("Stubbed SvcCloseHandle64From32 was called.");
+ }
+
+ Result ResetSignal64From32(ams::svc::Handle handle) {
+ MESOSPHERE_PANIC("Stubbed SvcResetSignal64From32 was called.");
+ }
+
+ Result WaitSynchronization64From32(int32_t *out_index, KUserPointer handles, int32_t numHandles, int64_t timeout_ns) {
+ MESOSPHERE_PANIC("Stubbed SvcWaitSynchronization64From32 was called.");
+ }
+
+ Result CancelSynchronization64From32(ams::svc::Handle handle) {
+ MESOSPHERE_PANIC("Stubbed SvcCancelSynchronization64From32 was called.");
+ }
+
+ void SynchronizePreemptionState64From32() {
+ MESOSPHERE_PANIC("Stubbed SvcSynchronizePreemptionState64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_thread.cpp b/libraries/libmesosphere/source/svc/kern_svc_thread.cpp
new file mode 100644
index 000000000..64d7e3c29
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_thread.cpp
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result CreateThread64(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) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateThread64 was called.");
+ }
+
+ Result StartThread64(ams::svc::Handle thread_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcStartThread64 was called.");
+ }
+
+ void ExitThread64() {
+ MESOSPHERE_PANIC("Stubbed SvcExitThread64 was called.");
+ }
+
+ void SleepThread64(int64_t ns) {
+ MESOSPHERE_PANIC("Stubbed SvcSleepThread64 was called.");
+ }
+
+ Result GetThreadPriority64(int32_t *out_priority, ams::svc::Handle thread_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcGetThreadPriority64 was called.");
+ }
+
+ Result SetThreadPriority64(ams::svc::Handle thread_handle, int32_t priority) {
+ MESOSPHERE_PANIC("Stubbed SvcSetThreadPriority64 was called.");
+ }
+
+ Result GetThreadCoreMask64(int32_t *out_core_id, uint64_t *out_affinity_mask, ams::svc::Handle thread_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcGetThreadCoreMask64 was called.");
+ }
+
+ Result SetThreadCoreMask64(ams::svc::Handle thread_handle, int32_t core_id, uint64_t affinity_mask) {
+ MESOSPHERE_PANIC("Stubbed SvcSetThreadCoreMask64 was called.");
+ }
+
+ Result GetThreadId64(uint64_t *out_thread_id, ams::svc::Handle thread_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcGetThreadId64 was called.");
+ }
+
+ Result GetDebugFutureThreadInfo64(ams::svc::lp64::LastThreadContext *out_context, uint64_t *thread_id, ams::svc::Handle debug_handle, int64_t ns) {
+ MESOSPHERE_PANIC("Stubbed SvcGetDebugFutureThreadInfo64 was called.");
+ }
+
+ Result GetLastThreadInfo64(ams::svc::lp64::LastThreadContext *out_context, ams::svc::Address *out_tls_address, uint32_t *out_flags) {
+ MESOSPHERE_PANIC("Stubbed SvcGetLastThreadInfo64 was called.");
+ }
+
+ Result GetThreadContext364(KUserPointer out_context, ams::svc::Handle thread_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcGetThreadContext364 was called.");
+ }
+
+ Result GetThreadList64(int32_t *out_num_threads, KUserPointer out_thread_ids, int32_t max_out_count, ams::svc::Handle debug_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcGetThreadList64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result CreateThread64From32(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) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateThread64From32 was called.");
+ }
+
+ Result StartThread64From32(ams::svc::Handle thread_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcStartThread64From32 was called.");
+ }
+
+ void ExitThread64From32() {
+ MESOSPHERE_PANIC("Stubbed SvcExitThread64From32 was called.");
+ }
+
+ void SleepThread64From32(int64_t ns) {
+ MESOSPHERE_PANIC("Stubbed SvcSleepThread64From32 was called.");
+ }
+
+ Result GetThreadPriority64From32(int32_t *out_priority, ams::svc::Handle thread_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcGetThreadPriority64From32 was called.");
+ }
+
+ Result SetThreadPriority64From32(ams::svc::Handle thread_handle, int32_t priority) {
+ MESOSPHERE_PANIC("Stubbed SvcSetThreadPriority64From32 was called.");
+ }
+
+ Result GetThreadCoreMask64From32(int32_t *out_core_id, uint64_t *out_affinity_mask, ams::svc::Handle thread_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcGetThreadCoreMask64From32 was called.");
+ }
+
+ Result SetThreadCoreMask64From32(ams::svc::Handle thread_handle, int32_t core_id, uint64_t affinity_mask) {
+ MESOSPHERE_PANIC("Stubbed SvcSetThreadCoreMask64From32 was called.");
+ }
+
+ Result GetThreadId64From32(uint64_t *out_thread_id, ams::svc::Handle thread_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcGetThreadId64From32 was called.");
+ }
+
+ Result GetDebugFutureThreadInfo64From32(ams::svc::ilp32::LastThreadContext *out_context, uint64_t *thread_id, ams::svc::Handle debug_handle, int64_t ns) {
+ MESOSPHERE_PANIC("Stubbed SvcGetDebugFutureThreadInfo64From32 was called.");
+ }
+
+ Result GetLastThreadInfo64From32(ams::svc::ilp32::LastThreadContext *out_context, ams::svc::Address *out_tls_address, uint32_t *out_flags) {
+ MESOSPHERE_PANIC("Stubbed SvcGetLastThreadInfo64From32 was called.");
+ }
+
+ Result GetThreadContext364From32(KUserPointer out_context, ams::svc::Handle thread_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcGetThreadContext364From32 was called.");
+ }
+
+ Result GetThreadList64From32(int32_t *out_num_threads, KUserPointer out_thread_ids, int32_t max_out_count, ams::svc::Handle debug_handle) {
+ MESOSPHERE_PANIC("Stubbed SvcGetThreadList64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_tick.cpp b/libraries/libmesosphere/source/svc/kern_svc_tick.cpp
new file mode 100644
index 000000000..af5d3ebaf
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_tick.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ int64_t GetSystemTick64() {
+ MESOSPHERE_PANIC("Stubbed SvcGetSystemTick64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ int64_t GetSystemTick64From32() {
+ MESOSPHERE_PANIC("Stubbed SvcGetSystemTick64From32 was called.");
+ }
+
+}
\ No newline at end of file
diff --git a/libraries/libmesosphere/source/svc/kern_svc_transfer_memory.cpp b/libraries/libmesosphere/source/svc/kern_svc_transfer_memory.cpp
new file mode 100644
index 000000000..dcc71ef30
--- /dev/null
+++ b/libraries/libmesosphere/source/svc/kern_svc_transfer_memory.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2018-2020 Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace ams::kern::svc {
+
+ /* ============================= Common ============================= */
+
+ namespace {
+
+
+
+ }
+
+ /* ============================= 64 ABI ============================= */
+
+ Result MapTransferMemory64From32(ams::svc::Handle trmem_handle, ams::svc::Address address, ams::svc::Size size, ams::svc::MemoryPermission owner_perm) {
+ MESOSPHERE_PANIC("Stubbed SvcMapTransferMemory64From32 was called.");
+ }
+
+ Result UnmapTransferMemory64From32(ams::svc::Handle trmem_handle, ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapTransferMemory64From32 was called.");
+ }
+
+ Result CreateTransferMemory64(ams::svc::Handle *out_handle, ams::svc::Address address, ams::svc::Size size, ams::svc::MemoryPermission map_perm) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateTransferMemory64 was called.");
+ }
+
+ /* ============================= 64From32 ABI ============================= */
+
+ Result MapTransferMemory64(ams::svc::Handle trmem_handle, ams::svc::Address address, ams::svc::Size size, ams::svc::MemoryPermission owner_perm) {
+ MESOSPHERE_PANIC("Stubbed SvcMapTransferMemory64 was called.");
+ }
+
+ Result UnmapTransferMemory64(ams::svc::Handle trmem_handle, ams::svc::Address address, ams::svc::Size size) {
+ MESOSPHERE_PANIC("Stubbed SvcUnmapTransferMemory64 was called.");
+ }
+
+ Result CreateTransferMemory64From32(ams::svc::Handle *out_handle, ams::svc::Address address, ams::svc::Size size, ams::svc::MemoryPermission map_perm) {
+ MESOSPHERE_PANIC("Stubbed SvcCreateTransferMemory64From32 was called.");
+ }
+
+}
\ No newline at end of file