namespace sts -> namespace ams

namespace sts::ams -> ams::exosphere, ams::.

This is to facilitate future use of ams:: namespace code in
mesosphere, as we'll want to include ams::util, ams::result, ams::svc...
This commit is contained in:
Michael Scire 2019-10-24 02:30:10 -07:00
parent 15def4ef63
commit 528215f443
178 changed files with 515 additions and 473 deletions

View File

@ -16,7 +16,7 @@ include $(DEVKITPRO)/libnx/switch_rules
# INCLUDES is a list of directories containing header files
#---------------------------------------------------------------------------------
TARGET := $(notdir $(CURDIR))
SOURCES := source source/ams source/result source/os source/os/impl source/dd source/sf source/sf/cmif source/sf/hipc source/dmnt source/spl source/spl/smc source/updater source/patcher source/map source/rnd source/util source/sm source/cfg source/pm source/hid source/ldr source/kvdb source/boot2
SOURCES := source source/ams source/hos source/result source/os source/os/impl source/dd source/sf source/sf/cmif source/sf/hipc source/dmnt source/spl source/spl/smc source/updater source/patcher source/map source/rnd source/util source/sm source/cfg source/pm source/hid source/ldr source/kvdb source/boot2
DATA := data
INCLUDES := include

View File

@ -17,7 +17,6 @@
#pragma once
#include "ams/ams_types.hpp"
#include "ams/ams_hos_version_api.hpp"
#include "ams/ams_exosphere_api.hpp"
#include "ams/ams_emummc_api.hpp"
#include "ams/ams_environment.hpp"

View File

@ -17,7 +17,7 @@
#pragma once
#include "ams_types.hpp"
namespace sts::ams::emummc {
namespace ams::emummc {
/* Get whether emummc is active. */
bool IsActive();

View File

@ -17,7 +17,7 @@
#pragma once
#include "ams_types.hpp"
namespace sts::ams {
namespace ams {
/* Will be called by libstratosphere on crash. */
void CrashHandler(ThreadExceptionDump *ctx);

View File

@ -17,7 +17,7 @@
#pragma once
#include "ams_types.hpp"
namespace sts::ams {
namespace ams::exosphere {
ApiInfo GetApiInfo();
@ -30,32 +30,24 @@ namespace sts::ams {
void CopyToIram(uintptr_t iram_dst, const void *dram_src, size_t size);
void CopyFromIram(void *dram_dst, uintptr_t iram_src, size_t size);
}
namespace ams {
/* Version checking utility. */
#ifdef ATMOSPHERE_RELEASE_VERSION_MAJOR
#define ATMOSPHERE_RELEASE_VERSION ATMOSPHERE_RELEASE_VERSION_MAJOR, ATMOSPHERE_RELEASE_VERSION_MINOR, ATMOSPHERE_RELEASE_VERSION_MICRO
inline void CheckApiVersion() {
const u32 runtime_version = GetApiInfo().GetVersion();
const u32 build_version = GetVersion(ATMOSPHERE_RELEASE_VERSION);
const u32 runtime_version = exosphere::GetApiInfo().GetVersion();
const u32 build_version = exosphere::GetVersion(ATMOSPHERE_RELEASE_VERSION);
if (runtime_version < build_version) {
R_ASSERT(ams::ResultVersionMismatch());
R_ASSERT(exosphere::ResultVersionMismatch());
}
}
#endif
#ifdef ATMOSPHERE_GIT_BRANCH
NX_CONSTEXPR const char *GetGitBranch() {
return ATMOSPHERE_GIT_BRANCH;
}
#endif
#ifdef ATMOSPHERE_GIT_REV
NX_CONSTEXPR const char *GetGitRevision() {
return ATMOSPHERE_GIT_REV;
}
#endif
}

View File

@ -15,37 +15,12 @@
*/
#pragma once
#include <switch.h>
#include "../defines.hpp"
#include "../results.hpp"
#include "../sf/sf_buffer_tags.hpp"
#include "../hos.hpp"
/* Define firmware version in global namespace, for convenience. */
namespace sts {
namespace hos {
enum Version : u16 {
Version_Min = 0,
Version_100 = Version_Min,
Version_200 = 1,
Version_300 = 2,
Version_400 = 3,
Version_500 = 4,
Version_600 = 5,
Version_700 = 6,
Version_800 = 7,
Version_810 = 8,
Version_900 = 9,
Version_Current = Version_900,
Version_Max = 32,
};
}
}
namespace sts::ams {
namespace ams::exosphere {
enum TargetFirmware : u32 {
TargetFirmware_100 = 1,
@ -73,7 +48,7 @@ namespace sts::ams {
u32 master_key_revision;
constexpr u32 GetVersion() const {
return ::sts::ams::GetVersion(this->major_version, this->minor_version, this->micro_version);
return ::ams::exosphere::GetVersion(this->major_version, this->minor_version, this->micro_version);
}
constexpr TargetFirmware GetTargetFirmware() const {
@ -85,6 +60,10 @@ namespace sts::ams {
}
};
}
namespace ams {
struct FatalErrorContext : sf::LargeData, sf::PrefersMapAliasTransferMode {
static constexpr size_t MaxStackTrace = 0x20;
static constexpr size_t MaxStackDumpSize = 0x100;
@ -124,4 +103,16 @@ namespace sts::ams {
static_assert(sizeof(FatalErrorContext) == 0x350, "sizeof(FatalErrorContext)");
static_assert(std::is_pod<FatalErrorContext>::value, "FatalErrorContext");
#ifdef ATMOSPHERE_GIT_BRANCH
NX_CONSTEXPR const char *GetGitBranch() {
return ATMOSPHERE_GIT_BRANCH;
}
#endif
#ifdef ATMOSPHERE_GIT_REV
NX_CONSTEXPR const char *GetGitRevision() {
return ATMOSPHERE_GIT_REV;
}
#endif
}

View File

@ -18,7 +18,7 @@
#include <switch.h>
#include <stratosphere.hpp>
namespace sts::boot2 {
namespace ams::boot2 {
/* Boot2 API. */

View File

@ -19,7 +19,7 @@
#include "../os/os_common_types.hpp"
#include "../ncm/ncm_types.hpp"
namespace sts::cfg {
namespace ams::cfg {
/* Privileged Process configuration. */
bool IsInitialProcess();

View File

@ -18,7 +18,7 @@
#include <switch.h>
#include "../defines.hpp"
namespace sts::dd {
namespace ams::dd {
uintptr_t QueryIoMapping(uintptr_t phys_addr, size_t size);
@ -30,7 +30,7 @@ namespace sts::dd {
inline uintptr_t GetIoMapping(uintptr_t phys_addr, size_t size) {
const uintptr_t io_mapping = QueryIoMapping(phys_addr, size);
STS_ASSERT(io_mapping);
AMS_ASSERT(io_mapping);
return io_mapping;
}
}

View File

@ -20,9 +20,9 @@
/* Any broadly useful language defines should go here. */
#define STS_ASSERT(expr) do { if (!(expr)) { std::abort(); } } while (0)
#define AMS_ASSERT(expr) do { if (!(expr)) { std::abort(); } } while (0)
#define STS_UNREACHABLE_DEFAULT_CASE() default: std::abort()
#define AMS_UNREACHABLE_DEFAULT_CASE() default: std::abort()
#define NON_COPYABLE(cls) \
cls(const cls&) = delete; \

View File

@ -20,7 +20,7 @@
#include "../ncm/ncm_types.hpp"
#include "../sf/sf_buffer_tags.hpp"
namespace sts::dmnt::cheat {
namespace ams::dmnt::cheat {
struct CheatProcessMetadata {
struct MemoryRegionExtents {

View File

@ -21,7 +21,7 @@
#include "../ncm/ncm_types.hpp"
#include "../sf/sf_buffer_tags.hpp"
namespace sts::fatal {
namespace ams::fatal {
namespace aarch64 {

View File

@ -16,7 +16,7 @@
#pragma once
namespace sts::hid {
namespace ams::hid {
/* Key API. */
Result GetKeysHeld(u64 *out);

View File

@ -0,0 +1,20 @@
/*
* Copyright (c) 2018-2019 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 <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "hos/hos_types.hpp"
#include "hos/hos_version_api.hpp"

View File

@ -0,0 +1,40 @@
/*
* Copyright (c) 2018-2019 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 <http://www.gnu.org/licenses/>.
*/
#pragma once
#include <switch.h>
#include "../defines.hpp"
#include "../results.hpp"
namespace ams::hos {
enum Version : u16 {
Version_Min = 0,
Version_100 = Version_Min,
Version_200 = 1,
Version_300 = 2,
Version_400 = 3,
Version_500 = 4,
Version_600 = 5,
Version_700 = 6,
Version_800 = 7,
Version_810 = 8,
Version_900 = 9,
Version_Current = Version_900,
Version_Max = 32,
};
}

View File

@ -15,11 +15,11 @@
*/
#pragma once
#include "ams_types.hpp"
#include "hos_types.hpp"
namespace sts::hos {
namespace ams::hos {
sts::hos::Version GetVersion();
::ams::hos::Version GetVersion();
void SetVersionForLibnx();
}

View File

@ -21,7 +21,7 @@
#include "kvdb_auto_buffer.hpp"
namespace sts::kvdb {
namespace ams::kvdb {
/* Functionality for parsing/generating a key value archive. */
class ArchiveReader {

View File

@ -19,7 +19,7 @@
#include "../defines.hpp"
#include "../results.hpp"
namespace sts::kvdb {
namespace ams::kvdb {
class AutoBuffer {
NON_COPYABLE(AutoBuffer);
@ -68,7 +68,7 @@ namespace sts::kvdb {
Result Initialize(size_t size) {
/* Check that we're not already initialized. */
STS_ASSERT(this->buffer == nullptr);
AMS_ASSERT(this->buffer == nullptr);
/* Allocate a buffer. */
this->buffer = static_cast<u8 *>(std::malloc(size));

View File

@ -21,7 +21,7 @@
#include "../defines.hpp"
#include "../results.hpp"
namespace sts::kvdb {
namespace ams::kvdb {
/* Represents a string with a backing buffer of N bytes. */
template<size_t N>
@ -32,7 +32,7 @@ namespace sts::kvdb {
private:
/* Utility. */
static inline void CheckLength(size_t len) {
STS_ASSERT(len < N);
AMS_ASSERT(len < N);
}
public:
/* Constructors. */
@ -113,8 +113,8 @@ namespace sts::kvdb {
/* Substring utilities. */
void GetSubstring(char *dst, size_t dst_size, size_t offset, size_t length) const {
/* Make sure output buffer can hold the substring. */
STS_ASSERT(offset + length <= GetLength());
STS_ASSERT(dst_size > length);
AMS_ASSERT(offset + length <= GetLength());
AMS_ASSERT(dst_size > length);
/* Copy substring to dst. */
std::strncpy(dst, this->buffer + offset, length);
dst[length] = 0;

View File

@ -19,7 +19,7 @@
#include "kvdb_bounded_string.hpp"
#include "kvdb_file_key_value_store.hpp"
namespace sts::kvdb {
namespace ams::kvdb {
namespace impl {
@ -60,7 +60,7 @@ namespace sts::kvdb {
}
private:
void RemoveIndex(size_t i) {
STS_ASSERT(i < this->GetCount());
AMS_ASSERT(i < this->GetCount());
std::memmove(this->keys + i, this->keys + i + 1, sizeof(*this->keys) * (this->GetCount() - (i + 1)));
this->DecrementCount();
}
@ -77,7 +77,7 @@ namespace sts::kvdb {
Result Initialize(const char *path, void *buf, size_t size) {
/* Only initialize once, and ensure we have sufficient memory. */
STS_ASSERT(this->keys == nullptr);
AMS_ASSERT(this->keys == nullptr);
SSS_ASSERT(size >= BufferSize);
/* Setup member variables. */
@ -145,23 +145,23 @@ namespace sts::kvdb {
}
Key Get(size_t i) const {
STS_ASSERT(i < this->GetCount());
AMS_ASSERT(i < this->GetCount());
return this->keys[i];
}
Key Peek() const {
STS_ASSERT(!this->IsEmpty());
AMS_ASSERT(!this->IsEmpty());
return this->Get(0);
}
void Push(const Key &key) {
STS_ASSERT(!this->IsFull());
AMS_ASSERT(!this->IsFull());
this->keys[this->GetCount()] = key;
this->IncrementCount();
}
Key Pop() {
STS_ASSERT(!this->IsEmpty());
AMS_ASSERT(!this->IsEmpty());
this->RemoveIndex(0);
}

View File

@ -21,7 +21,7 @@
#include "kvdb_bounded_string.hpp"
namespace sts::kvdb {
namespace ams::kvdb {
class FileKeyValueStore {
NON_COPYABLE(FileKeyValueStore);
@ -96,7 +96,7 @@ namespace sts::kvdb {
static_assert(std::is_pod<Value>::value && !std::is_pointer<Value>::value, "Invalid FileKeyValueStore Value!");
size_t size = 0;
R_TRY(this->Get(&size, out_value, sizeof(Value), key));
STS_ASSERT(size >= sizeof(Value));
AMS_ASSERT(size >= sizeof(Value));
return ResultSuccess();
}

View File

@ -25,7 +25,7 @@
#include "kvdb_archive.hpp"
#include "kvdb_bounded_string.hpp"
namespace sts::kvdb {
namespace ams::kvdb {
template<class Key>
class MemoryKeyValueStore {
@ -50,7 +50,7 @@ namespace sts::kvdb {
Value *GetValuePointer() {
/* Size check. Note: Nintendo does not size check. */
if constexpr (!std::is_same<Value, void>::value) {
STS_ASSERT(sizeof(Value) <= this->value_size);
AMS_ASSERT(sizeof(Value) <= this->value_size);
/* Ensure we only get pod. */
static_assert(std::is_pod<Value>::value, "KeyValueStore Values must be pod");
}
@ -61,7 +61,7 @@ namespace sts::kvdb {
const Value *GetValuePointer() const {
/* Size check. Note: Nintendo does not size check. */
if constexpr (!std::is_same<Value, void>::value) {
STS_ASSERT(sizeof(Value) <= this->value_size);
AMS_ASSERT(sizeof(Value) <= this->value_size);
/* Ensure we only get pod. */
static_assert(std::is_pod<Value>::value, "KeyValueStore Values must be pod");
}

View File

@ -18,7 +18,7 @@
#include "ldr_types.hpp"
namespace sts::ldr::pm {
namespace ams::ldr::pm {
/* Process Manager API. */
Result CreateProcess(Handle *out, PinId pin_id, u32 flags, Handle reslimit);

View File

@ -22,7 +22,7 @@
#include "../ncm/ncm_types.hpp"
#include "../sf/sf_buffer_tags.hpp"
namespace sts::ldr {
namespace ams::ldr {
/* General types. */
struct ProgramInfo : sf::LargeData {

View File

@ -19,7 +19,7 @@
#include "map_types.hpp"
namespace sts::map {
namespace ams::map {
/* Public API. */
Result GetProcessAddressSpaceInfo(AddressSpaceInfo *out, Handle process_h);

View File

@ -18,7 +18,7 @@
#include <switch.h>
#include "../results.hpp"
namespace sts::map {
namespace ams::map {
/* Types. */
struct AddressSpaceInfo {

View File

@ -18,7 +18,7 @@
#include <type_traits>
namespace sts::ncm {
namespace ams::ncm {
/* Storage IDs. */
enum class StorageId : u8 {

View File

@ -18,7 +18,7 @@
#include "../results.hpp"
#include "../util.hpp"
namespace sts::os {
namespace ams::os {
enum class TriBool {
False = 0,

View File

@ -17,7 +17,7 @@
#pragma once
#include "os_mutex.hpp"
namespace sts::os {
namespace ams::os {
class ConditionVariable {
NON_COPYABLE(ConditionVariable);

View File

@ -19,7 +19,7 @@
#include "os_condvar.hpp"
#include "os_timeout_helper.hpp"
namespace sts::os {
namespace ams::os {
namespace impl {

View File

@ -18,7 +18,7 @@
#include "os_common_types.hpp"
#include "os_managed_handle.hpp"
namespace sts::os {
namespace ams::os {
namespace impl {

View File

@ -19,7 +19,7 @@
#include "../defines.hpp"
#include "../results.hpp"
namespace sts::os {
namespace ams::os {
class ManagedHandle {
NON_COPYABLE(ManagedHandle);

View File

@ -20,7 +20,7 @@
#include "os_mutex.hpp"
#include "os_condvar.hpp"
namespace sts::os {
namespace ams::os {
namespace impl {

View File

@ -19,14 +19,14 @@
#include <switch.h>
#include "../util.hpp"
namespace sts::os {
namespace ams::os {
class ConditionVariable;
class Mutex {
NON_COPYABLE(Mutex);
NON_MOVEABLE(Mutex);
friend class sts::os::ConditionVariable;
friend class ams::os::ConditionVariable;
private:
::Mutex m;
private:

View File

@ -17,7 +17,7 @@
#pragma once
#include <switch.h>
namespace sts::os {
namespace ams::os {
class Semaphore {
NON_COPYABLE(Semaphore);

View File

@ -18,7 +18,7 @@
#include "os_common_types.hpp"
#include "os_event.hpp"
namespace sts::os {
namespace ams::os {
class WaitableHolder;

View File

@ -17,7 +17,7 @@
#pragma once
#include <switch.h>
namespace sts::os {
namespace ams::os {
class Thread {
NON_COPYABLE(Thread);

View File

@ -16,7 +16,7 @@
#pragma once
#include <switch.h>
namespace sts::os {
namespace ams::os {
class TimeoutHelper {
private:

View File

@ -17,7 +17,7 @@
#include "../util.hpp"
#include "os_common_types.hpp"
namespace sts::os {
namespace ams::os {
class WaitableManager;

View File

@ -18,7 +18,7 @@
#include "os_common_types.hpp"
#include "os_mutex.hpp"
namespace sts::os {
namespace ams::os {
class WaitableHolder;

View File

@ -18,7 +18,7 @@
#include "../ro/ro_types.hpp"
namespace sts::patcher {
namespace ams::patcher {
/* Helper for applying to code binaries. */
void LocateAndApplyIpsPatchesToModule(const char *patch_dir, size_t protected_size, size_t offset, const ro::ModuleId *module_id, u8 *mapped_module, size_t mapped_size);

View File

@ -18,7 +18,7 @@
#include "pm_types.hpp"
namespace sts::pm::bm {
namespace ams::pm::bm {
/* Boot Mode API. */
BootMode GetBootMode();

View File

@ -19,7 +19,7 @@
#include "../ldr.hpp"
#include "pm_types.hpp"
namespace sts::pm::dmnt {
namespace ams::pm::dmnt {
/* Debug Monitor API. */
Result StartProcess(os::ProcessId process_id);

View File

@ -19,7 +19,7 @@
#include "pm_types.hpp"
#include "../ncm/ncm_types.hpp"
namespace sts::pm::info {
namespace ams::pm::info {
/* Information API. */
Result GetTitleId(ncm::TitleId *out_title_id, os::ProcessId process_id);

View File

@ -19,7 +19,7 @@
#include "../ldr.hpp"
#include "pm_types.hpp"
namespace sts::pm::shell {
namespace ams::pm::shell {
/* Shell API. */
Result LaunchTitle(os::ProcessId *out_process_id, const ncm::TitleLocation &loc, u32 launch_flags);

View File

@ -18,7 +18,7 @@
#include <switch.h>
#include "../os/os_common_types.hpp"
namespace sts::pm {
namespace ams::pm {
enum class BootMode {
Normal = 0,

View File

@ -17,7 +17,7 @@
#pragma once
#include <switch.h>
namespace sts::reg {
namespace ams::reg {
inline void Write(volatile u32 *reg, u32 val) {
*reg = val;

View File

@ -45,4 +45,4 @@
#include "results/vi_results.hpp"
/* Unofficial. */
#include "results/ams_results.hpp"
#include "results/exosphere_results.hpp"

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::cal {
namespace ams::cal {
R_DEFINE_NAMESPACE_RESULT_MODULE(198);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::creport {
namespace ams::creport {
R_DEFINE_NAMESPACE_RESULT_MODULE(168);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::dbg {
namespace ams::dbg {
R_DEFINE_NAMESPACE_RESULT_MODULE(183);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::dmnt {
namespace ams::dmnt {
R_DEFINE_NAMESPACE_RESULT_MODULE(13);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::err {
namespace ams::err {
R_DEFINE_NAMESPACE_RESULT_MODULE(162);

View File

@ -17,22 +17,14 @@
#pragma once
#include "results_common.hpp"
namespace sts::ams {
namespace ams::exosphere {
/* Please note: These results are all custom, and not official. */
R_DEFINE_NAMESPACE_RESULT_MODULE(444);
/* Result 1-1000 reserved for Atmosphere. */
R_DEFINE_ERROR_RESULT(ExosphereNotPresent, 1);
R_DEFINE_ERROR_RESULT(VersionMismatch, 2);
/* Results 1000-2000 reserved for Atmosphere Mitm. */
namespace mitm {
R_DEFINE_ERROR_RESULT(ShouldForwardToSession, 1000);
R_DEFINE_ERROR_RESULT(ProcessNotAssociated, 1100);
}
R_DEFINE_ERROR_RESULT(NotPresent, 1);
R_DEFINE_ERROR_RESULT(VersionMismatch, 2);
}

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::fatal {
namespace ams::fatal {
R_DEFINE_NAMESPACE_RESULT_MODULE(163);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::fs {
namespace ams::fs {
R_DEFINE_NAMESPACE_RESULT_MODULE(2);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::sf::hipc {
namespace ams::sf::hipc {
R_DEFINE_NAMESPACE_RESULT_MODULE(11);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::i2c {
namespace ams::i2c {
R_DEFINE_NAMESPACE_RESULT_MODULE(101);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::kvdb {
namespace ams::kvdb {
R_DEFINE_NAMESPACE_RESULT_MODULE(20);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::ldr {
namespace ams::ldr {
R_DEFINE_NAMESPACE_RESULT_MODULE(9);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::lr {
namespace ams::lr {
R_DEFINE_NAMESPACE_RESULT_MODULE(8);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::ncm {
namespace ams::ncm {
R_DEFINE_NAMESPACE_RESULT_MODULE(5);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::os {
namespace ams::os {
R_DEFINE_NAMESPACE_RESULT_MODULE(3);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::pm {
namespace ams::pm {
R_DEFINE_NAMESPACE_RESULT_MODULE(15);

View File

@ -19,7 +19,7 @@
#include <climits>
#include "../defines.hpp"
namespace sts {
namespace ams {
namespace result::impl {
@ -179,17 +179,17 @@ namespace sts {
}
/* Macros for defining new results. */
#define R_DEFINE_NAMESPACE_RESULT_MODULE(value) namespace impl::result { static constexpr inline ::sts::result::impl::ResultTraits::BaseType ResultModuleId = value; }
#define R_DEFINE_NAMESPACE_RESULT_MODULE(value) namespace impl::result { static constexpr inline ::ams::result::impl::ResultTraits::BaseType ResultModuleId = value; }
#define R_CURRENT_NAMESPACE_RESULT_MODULE impl::result::ResultModuleId
#define R_NAMESPACE_MODULE_ID(nmspc) nmspc::R_CURRENT_NAMESPACE_RESULT_MODULE
#define R_MAKE_NAMESPACE_RESULT(nmspc, desc) static_cast<::sts::Result>(::sts::result::impl::ResultTraits::MakeValue(R_NAMESPACE_MODULE_ID(nmspc), desc))
#define R_MAKE_NAMESPACE_RESULT(nmspc, desc) static_cast<::ams::Result>(::ams::result::impl::ResultTraits::MakeValue(R_NAMESPACE_MODULE_ID(nmspc), desc))
#define R_DEFINE_ERROR_RESULT_IMPL(name, desc_start, desc_end) \
class Result##name final : public ::sts::result::impl::ResultErrorBase<R_CURRENT_NAMESPACE_RESULT_MODULE, desc_start>, public ::sts::result::impl::ResultErrorRangeBase<R_CURRENT_NAMESPACE_RESULT_MODULE, desc_start, desc_end> {}
class Result##name final : public ::ams::result::impl::ResultErrorBase<R_CURRENT_NAMESPACE_RESULT_MODULE, desc_start>, public ::ams::result::impl::ResultErrorRangeBase<R_CURRENT_NAMESPACE_RESULT_MODULE, desc_start, desc_end> {}
#define R_DEFINE_ABSTRACT_ERROR_RESULT_IMPL(name, desc_start, desc_end) \
class Result##name final : public ::sts::result::impl::ResultErrorRangeBase<R_CURRENT_NAMESPACE_RESULT_MODULE, desc_start, desc_end> {}
class Result##name final : public ::ams::result::impl::ResultErrorRangeBase<R_CURRENT_NAMESPACE_RESULT_MODULE, desc_start, desc_end> {}
#define R_DEFINE_ERROR_RESULT(name, desc) R_DEFINE_ERROR_RESULT_IMPL(name, desc, desc)
@ -211,8 +211,8 @@ namespace sts {
#undef R_FAILED
#define R_SUCCEEDED(res) (static_cast<::sts::Result>(res).IsSuccess())
#define R_FAILED(res) (static_cast<::sts::Result>(res).IsFailure())
#define R_SUCCEEDED(res) (static_cast<::ams::Result>(res).IsSuccess())
#define R_FAILED(res) (static_cast<::ams::Result>(res).IsFailure())
/// Evaluates an expression that returns a result, and returns the result if it would fail.
@ -229,7 +229,7 @@ namespace sts {
({ \
const auto _tmp_r_assert_rc = res_expr; \
if (R_FAILED(_tmp_r_assert_rc)) { \
::sts::result::impl::OnResultAssertion(_tmp_r_assert_rc); \
::ams::result::impl::OnResultAssertion(_tmp_r_assert_rc); \
} \
})
@ -237,7 +237,7 @@ namespace sts {
#define R_UNLESS(expr, res) \
({ \
if (!(expr)) { \
return static_cast<::sts::Result>(res); \
return static_cast<::ams::Result>(res); \
} \
})
@ -250,7 +250,7 @@ namespace sts {
if (R_FAILED(R_CURRENT_RESULT)) { \
if (false)
namespace sts::result::impl {
namespace ams::result::impl {
template<typename... Rs>
NX_CONSTEXPR bool AnyIncludes(Result result) {
@ -260,18 +260,18 @@ namespace sts::result::impl {
}
#define R_CATCH(...) \
} else if (::sts::result::impl::AnyIncludes<__VA_ARGS__>(R_CURRENT_RESULT)) { \
} else if (::ams::result::impl::AnyIncludes<__VA_ARGS__>(R_CURRENT_RESULT)) { \
if (true)
#define R_CONVERT(catch_type, convert_type) \
R_CATCH(catch_type) { return static_cast<::sts::Result>(convert_type); }
R_CATCH(catch_type) { return static_cast<::ams::Result>(convert_type); }
#define R_CATCH_ALL() \
} else if (R_FAILED(R_CURRENT_RESULT)) { \
if (true)
#define R_CONVERT_ALL(convert_type) \
R_CATCH_ALL() { return static_cast<::sts::Result>(convert_type); }
R_CATCH_ALL() { return static_cast<::ams::Result>(convert_type); }
#define R_END_TRY_CATCH \
else if (R_FAILED(R_CURRENT_RESULT)) { \

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::ro {
namespace ams::ro {
R_DEFINE_NAMESPACE_RESULT_MODULE(22);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::settings {
namespace ams::settings {
R_DEFINE_NAMESPACE_RESULT_MODULE(105);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::sf {
namespace ams::sf {
R_DEFINE_NAMESPACE_RESULT_MODULE(10);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::sm {
namespace ams::sm {
R_DEFINE_NAMESPACE_RESULT_MODULE(21);
@ -31,4 +31,12 @@ namespace sts::sm {
R_DEFINE_ERROR_RESULT(NotAllowed, 8);
R_DEFINE_ERROR_RESULT(TooLargeAccessControl, 9);
/* Results 1000-2000 used as extension for Atmosphere Mitm. */
namespace mitm {
R_DEFINE_ERROR_RESULT(ShouldForwardToSession, 1000);
R_DEFINE_ERROR_RESULT(ProcessNotAssociated, 1100);
}
}

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::spl {
namespace ams::spl {
R_DEFINE_NAMESPACE_RESULT_MODULE(26);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::svc {
namespace ams::svc {
R_DEFINE_NAMESPACE_RESULT_MODULE(1);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::updater {
namespace ams::updater {
R_DEFINE_NAMESPACE_RESULT_MODULE(158);

View File

@ -17,7 +17,7 @@
#pragma once
#include "results_common.hpp"
namespace sts::vi {
namespace ams::vi {
R_DEFINE_NAMESPACE_RESULT_MODULE(114);

View File

@ -18,7 +18,7 @@
#include <limits>
#include <switch.h>
namespace sts::rnd {
namespace ams::rnd {
/* Random utilities. */
void GenerateRandomBytes(void* out, size_t size);

View File

@ -20,7 +20,7 @@
#include "../defines.hpp"
#include "../ncm.hpp"
namespace sts::ro {
namespace ams::ro {
enum class ModuleType : u8 {
ForSelf = 0,
@ -63,7 +63,7 @@ namespace sts::ro {
ModuleType GetType() const {
const ModuleType type = static_cast<ModuleType>(this->type);
STS_ASSERT(type < ModuleType::Count);
AMS_ASSERT(type < ModuleType::Count);
return type;
}

View File

@ -18,7 +18,7 @@
#include "../sf_common.hpp"
#include "sf_cmif_service_object_holder.hpp"
namespace sts::sf::cmif {
namespace ams::sf::cmif {
struct DomainObjectId {
u32 value;

View File

@ -19,7 +19,7 @@
#include "sf_cmif_domain_api.hpp"
#include "sf_cmif_domain_service_object.hpp"
namespace sts::sf::cmif {
namespace ams::sf::cmif {
class ServerDomainManager {
NON_COPYABLE(ServerDomainManager);
@ -85,7 +85,7 @@ namespace sts::sf::cmif {
inline DomainObjectId GetId(Entry *e) {
const size_t index = e - this->entries;
STS_ASSERT(index < this->num_entries);
AMS_ASSERT(index < this->num_entries);
return DomainObjectId{ u32(index + 1) };
}

View File

@ -19,7 +19,7 @@
#include "sf_cmif_domain_api.hpp"
#include "sf_cmif_server_message_processor.hpp"
namespace sts::sf::cmif {
namespace ams::sf::cmif {
class DomainServiceObjectDispatchTable : public impl::ServiceDispatchTableBase {
private:
@ -41,8 +41,8 @@ namespace sts::sf::cmif {
ServerMessageRuntimeMetadata impl_metadata;
public:
DomainServiceObjectProcessor(ServerDomainBase *d, DomainObjectId *in_obj_ids, size_t num_in_objs) : domain(d), in_object_ids(in_obj_ids), num_in_objects(num_in_objs) {
STS_ASSERT(this->domain != nullptr);
STS_ASSERT(this->in_object_ids != nullptr);
AMS_ASSERT(this->domain != nullptr);
AMS_ASSERT(this->in_object_ids != nullptr);
this->impl_processor = nullptr;
this->out_object_ids = nullptr;
this->impl_metadata = {};

View File

@ -17,7 +17,7 @@
#pragma once
#include "../sf_common.hpp"
namespace sts::sf::cmif {
namespace ams::sf::cmif {
class PointerAndSize {
private:

View File

@ -18,7 +18,7 @@
#include "../sf_service_object.hpp"
#include "sf_cmif_pointer_and_size.hpp"
namespace sts::sf::cmif {
namespace ams::sf::cmif {
/* Forward declare ServiceDispatchContext, ServiceObjectHolder. */
struct ServiceDispatchContext;

View File

@ -19,14 +19,14 @@
#include "sf_cmif_pointer_and_size.hpp"
#include "sf_cmif_server_message_processor.hpp"
namespace sts::sf::hipc {
namespace ams::sf::hipc {
class ServerSessionManager;
class ServerSession;
}
namespace sts::sf::cmif {
namespace ams::sf::cmif {
class ServerMessageProcessor;

View File

@ -18,7 +18,7 @@
#include "../sf_service_object.hpp"
#include "sf_cmif_service_dispatch.hpp"
namespace sts::sf::cmif {
namespace ams::sf::cmif {
class ServiceObjectHolder {
private:

View File

@ -18,7 +18,7 @@
#include "../sf_common.hpp"
#include "../cmif/sf_cmif_pointer_and_size.hpp"
namespace sts::sf::hipc {
namespace ams::sf::hipc {
constexpr size_t TlsMessageBufferSize = 0x100;

View File

@ -18,7 +18,7 @@
#include "sf_hipc_server_session_manager.hpp"
#include "../cmif/sf_cmif_domain_manager.hpp"
namespace sts::sf::hipc {
namespace ams::sf::hipc {
class ServerDomainSessionManager : public ServerSessionManager, private cmif::ServerDomainManager {
protected:

View File

@ -17,7 +17,7 @@
#pragma once
#include "sf_hipc_server_domain_session_manager.hpp"
namespace sts::sf::hipc {
namespace ams::sf::hipc {
struct DefaultServerManagerOptions {
static constexpr size_t PointerBufferSize = 0;
@ -148,7 +148,7 @@ namespace sts::sf::hipc {
void RegisterServerImpl(Handle port_handle, sm::ServiceName service_name, bool managed, cmif::ServiceObjectHolder &&static_holder) {
/* Allocate server memory. */
auto *server = this->AllocateServer();
STS_ASSERT(server != nullptr);
AMS_ASSERT(server != nullptr);
new (server) Server<ServiceImpl, MakeShared>(port_handle, service_name, managed, std::forward<cmif::ServiceObjectHolder>(static_holder));
if constexpr (!ServiceObjectTraits<ServiceImpl>::IsMitmServiceObject) {
@ -253,13 +253,13 @@ namespace sts::sf::hipc {
private:
constexpr inline size_t GetServerIndex(const ServerBase *server) const {
const size_t i = server - GetPointer(this->server_storages[0]);
STS_ASSERT(i < MaxServers);
AMS_ASSERT(i < MaxServers);
return i;
}
constexpr inline size_t GetSessionIndex(const ServerSession *session) const {
const size_t i = session - GetPointer(this->session_storages[0]);
STS_ASSERT(i < MaxSessions);
AMS_ASSERT(i < MaxSessions);
return i;
}
@ -281,7 +281,7 @@ namespace sts::sf::hipc {
virtual void FreeSession(ServerSession *session) override final {
std::scoped_lock lk(this->resource_mutex);
const size_t index = this->GetSessionIndex(session);
STS_ASSERT(this->session_allocated[index]);
AMS_ASSERT(this->session_allocated[index]);
this->session_allocated[index] = false;
}
@ -299,7 +299,7 @@ namespace sts::sf::hipc {
virtual void DestroyServer(ServerBase *server) override final {
std::scoped_lock lk(this->resource_mutex);
const size_t index = this->GetServerIndex(server);
STS_ASSERT(this->server_allocated[index]);
AMS_ASSERT(this->server_allocated[index]);
server->~ServerBase();
this->server_allocated[index] = false;
}
@ -319,8 +319,8 @@ namespace sts::sf::hipc {
std::scoped_lock lk(this->resource_mutex);
DomainStorage *ptr = static_cast<DomainStorage *>(domain);
const size_t index = ptr - this->domain_storages;
STS_ASSERT(index < ManagerOptions::MaxDomains);
STS_ASSERT(this->domain_allocated[index]);
AMS_ASSERT(index < ManagerOptions::MaxDomains);
AMS_ASSERT(this->domain_allocated[index]);
this->domain_allocated[index] = false;
}

View File

@ -21,13 +21,13 @@
#include "../cmif/sf_cmif_service_object_holder.hpp"
#include "sf_hipc_api.hpp"
namespace sts::sf::cmif {
namespace ams::sf::cmif {
struct ServiceDispatchContext;
}
namespace sts::sf::hipc {
namespace ams::sf::hipc {
class ServerSessionManager;
class ServerManagerBase;
@ -58,14 +58,14 @@ namespace sts::sf::hipc {
this->is_closed = false;
this->has_received = false;
this->forward_service = nullptr;
STS_ASSERT(!this->IsMitmSession());
AMS_ASSERT(!this->IsMitmSession());
}
ServerSession(Handle h, cmif::ServiceObjectHolder &&obj, std::shared_ptr<::Service> &&fsrv) : WaitableHolder(h), srv_obj_holder(std::move(obj)), session_handle(h) {
this->is_closed = false;
this->has_received = false;
this->forward_service = std::move(fsrv);
STS_ASSERT(this->IsMitmSession());
AMS_ASSERT(this->IsMitmSession());
}
bool IsMitmSession() const {

View File

@ -28,7 +28,7 @@
#include "../hipc/sf_hipc_server_session_manager.hpp"
/* Serialization classes. */
namespace sts::sf {
namespace ams::sf {
namespace impl {
@ -99,7 +99,7 @@ namespace sts::sf {
}
namespace sts::sf::impl {
namespace ams::sf::impl {
/* Machinery for filtering type lists. */
template<class, class>
@ -167,7 +167,7 @@ namespace sts::sf::impl {
return ArgumentType::OutData;
} else if constexpr (std::is_trivial<T>::value && !std::is_pointer<T>::value) {
return ArgumentType::InData;
} else if constexpr (std::is_same<T, ::sts::Result>::value) {
} else if constexpr (std::is_same<T, ::ams::Result>::value) {
return ArgumentType::InData;
} else {
static_assert(!std::is_same<T, T>::value, "Invalid ArgumentType<T>");
@ -1020,7 +1020,7 @@ namespace sts::sf::impl {
/* Fake buffer. This is either InData or OutData, but serializing over buffers. */
constexpr auto Attributes = CommandMeta::BufferAttributes[Info.buffer_index];
if constexpr (Attributes & SfBufferAttr_In) {
/* TODO: STS_ASSERT()? N does not bother. */
/* TODO: AMS_ASSERT()? N does not bother. */
return *reinterpret_cast<const T *>(buffers[Info.buffer_index].GetAddress());
} else if constexpr (Attributes & SfBufferAttr_Out) {
return T(buffers[Info.buffer_index]);
@ -1139,7 +1139,7 @@ namespace sts::sf::impl {
}
namespace sts::sf {
namespace ams::sf {
template <auto CommandId, auto CommandImpl, hos::Version Low = hos::Version_Min, hos::Version High = hos::Version_Max>
inline static constexpr cmif::ServiceCommandMeta MakeServiceCommandMeta() {
@ -1147,10 +1147,10 @@ namespace sts::sf {
.hosver_low = Low,
.hosver_high = High,
.cmd_id = static_cast<u32>(CommandId),
.handler = ::sts::sf::impl::InvokeServiceCommandImpl<CommandImpl>,
.handler = ::ams::sf::impl::InvokeServiceCommandImpl<CommandImpl>,
};
}
}
#define MAKE_SERVICE_COMMAND_META(Name, ...) ::sts::sf::MakeServiceCommandMeta<ServiceImpl::CommandId::Name, &ServiceImpl::Name, ##__VA_ARGS__>()
#define MAKE_SERVICE_COMMAND_META(Name, ...) ::ams::sf::MakeServiceCommandMeta<ServiceImpl::CommandId::Name, &ServiceImpl::Name, ##__VA_ARGS__>()

View File

@ -16,7 +16,7 @@
#pragma once
namespace sts::sf {
namespace ams::sf {
/* Helper structs for serialization of buffers. */
struct LargeData{};

View File

@ -20,7 +20,7 @@
#include "cmif/sf_cmif_pointer_and_size.hpp"
#include "sf_buffer_tags.hpp"
namespace sts::sf {
namespace ams::sf {
enum class BufferTransferMode {
MapAlias,

View File

@ -19,7 +19,7 @@
#include "sf_out.hpp"
#include "cmif/sf_cmif_pointer_and_size.hpp"
namespace sts::sf {
namespace ams::sf {
namespace impl {

View File

@ -18,7 +18,7 @@
#include "sf_common.hpp"
#include "cmif/sf_cmif_pointer_and_size.hpp"
namespace sts::sf {
namespace ams::sf {
namespace impl {
@ -30,7 +30,7 @@ namespace sts::sf {
struct IsOutForceEnabled : public std::false_type{};
template<>
struct IsOutForceEnabled<::sts::Result> : public std::true_type{};
struct IsOutForceEnabled<::ams::Result> : public std::true_type{};
template<typename T>
using IsOutEnabled = typename std::enable_if<std::is_trivial<T>::value || IsOutForceEnabled<T>::value>::type;
@ -44,7 +44,7 @@ namespace sts::sf {
public:
constexpr Out(uintptr_t p) : ptr(reinterpret_cast<T *>(p)) { /* ... */ }
constexpr Out(T *p) : ptr(p) { /* ... */ }
constexpr Out(const cmif::PointerAndSize &pas) : ptr(reinterpret_cast<T *>(pas.GetAddress())) { /* TODO: Is STS_ASSERT(pas.GetSize() >= sizeof(T)); necessary? */ }
constexpr Out(const cmif::PointerAndSize &pas) : ptr(reinterpret_cast<T *>(pas.GetAddress())) { /* TODO: Is AMS_ASSERT(pas.GetSize() >= sizeof(T)); necessary? */ }
void SetValue(const T& value) const {
*this->ptr = value;

View File

@ -18,7 +18,7 @@
#include "sf_common.hpp"
#include "sf_out.hpp"
namespace sts::sf {
namespace ams::sf {
class IServiceObject{};
@ -35,7 +35,7 @@ namespace sts::sf {
template<typename T>
struct ServiceObjectTraits {
static_assert(std::is_base_of<sts::sf::IServiceObject, T>::value, "ServiceObjectTraits requires ServiceObject");
static_assert(std::is_base_of<ams::sf::IServiceObject, T>::value, "ServiceObjectTraits requires ServiceObject");
static constexpr bool IsMitmServiceObject = std::is_base_of<IMitmServiceObject, T>::value;

View File

@ -18,7 +18,7 @@
#include "sm_types.hpp"
namespace sts::sm {
namespace ams::sm {
/* Ordinary SM API. */
Result GetService(Service *out, ServiceName name);

View File

@ -20,7 +20,7 @@
#include "../ncm/ncm_types.hpp"
#include "../os/os_common_types.hpp"
namespace sts::sm::manager {
namespace ams::sm::manager {
/* Manager API. */
Result RegisterProcess(os::ProcessId process_id, ncm::TitleId title_id, const void *acid, size_t acid_size, const void *aci, size_t aci_size);

View File

@ -19,7 +19,7 @@
#include "sm_types.hpp"
#include "../ncm/ncm_types.hpp"
namespace sts::sm::mitm {
namespace ams::sm::mitm {
/* Mitm API. */
Result InstallMitm(Handle *out_port, Handle *out_query, ServiceName name);

View File

@ -18,7 +18,7 @@
#include "sm_api.hpp"
namespace sts::sm {
namespace ams::sm {
/* Utility, for scoped access to libnx services. */
template<auto Initializer(), void Finalizer()>
@ -62,7 +62,7 @@ namespace sts::sm {
}
Result Initialize() {
STS_ASSERT(!this->has_initialized);
AMS_ASSERT(!this->has_initialized);
sm::DoWithSession([&]() {
this->result = Initializer();
@ -73,7 +73,7 @@ namespace sts::sm {
}
void Finalize() {
STS_ASSERT(this->has_initialized);
AMS_ASSERT(this->has_initialized);
Finalizer();
this->has_initialized = false;
}

View File

@ -22,7 +22,7 @@
#include "../results.hpp"
#include "../os.hpp"
namespace sts::sm {
namespace ams::sm {
struct ServiceName {
static constexpr size_t MaxLength = 8;

View File

@ -20,7 +20,7 @@
#include "../spl_types.hpp"
namespace sts::spl::smc {
namespace ams::spl::smc {
/* Helpers for converting arguments. */
inline u32 GetCryptAesMode(CipherMode mode, u32 keyslot) {

View File

@ -18,7 +18,7 @@
#include "spl_types.hpp"
namespace sts::spl {
namespace ams::spl {
HardwareType GetHardwareType();
MemoryArrangement GetMemoryArrangement();

View File

@ -18,7 +18,7 @@
#include <switch.h>
#include "../results.hpp"
namespace sts::spl {
namespace ams::spl {
namespace smc {
@ -64,12 +64,12 @@ namespace sts::spl {
NotPermitted = 6,
};
constexpr inline ::sts::Result ConvertResult(Result smc_result) {
constexpr inline ::ams::Result ConvertResult(Result smc_result) {
/* smc::Result::Success becomes ResultSuccess() directly. */
R_UNLESS(smc_result != Result::Success, ResultSuccess());
/* Convert to the list of known SecureMonitorErrors. */
const auto converted = R_MAKE_NAMESPACE_RESULT(::sts::spl, static_cast<u32>(smc_result));
const auto converted = R_MAKE_NAMESPACE_RESULT(::ams::spl, static_cast<u32>(smc_result));
if (spl::ResultSecureMonitorError::Includes(converted)) {
return converted;
}

Some files were not shown because too many files have changed in this diff Show More