diff --git a/exosphere/Makefile b/exosphere/Makefile
index 09630e14d..c51328901 100644
--- a/exosphere/Makefile
+++ b/exosphere/Makefile
@@ -33,7 +33,7 @@ INCLUDES := include ../libraries/libvapours/include
#---------------------------------------------------------------------------------
# options for code generation
#---------------------------------------------------------------------------------
-ARCH := -march=armv8-a -mtune=cortex-a57 -mgeneral-regs-only #<- important
+ARCH := -march=armv8-a -mtune=cortex-a57 -mgeneral-regs-only -mno-outline-atomics #<- important
DEFINES := -D__CCPLEX__ -DATMOSPHERE_GIT_BRANCH=\"$(AMSBRANCH)\" -DATMOSPHERE_GIT_REV=\"$(AMSREV)\" -DATMOSPHERE_RELEASE_VERSION_HASH="0x$(AMSHASH)"
CFLAGS := \
-g \
@@ -156,6 +156,8 @@ $(OUTPUT).bin : $(OUTPUT).elf
$(OUTPUT).elf : $(OFILES)
+my_libc.o: CFLAGS += -fno-builtin
+
%.elf:
@echo linking $(notdir $@)
$(LD) $(LDFLAGS) $(OFILES) $(LIBPATHS) $(LIBS) -o $@
diff --git a/exosphere/src/mmu.h b/exosphere/src/mmu.h
index e1ded58fe..ed4cba784 100644
--- a/exosphere/src/mmu.h
+++ b/exosphere/src/mmu.h
@@ -13,7 +13,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-
+
#ifndef EXOSPHERE_MMU_H
#define EXOSPHERE_MMU_H
@@ -134,7 +134,7 @@
#define TCR_EL2_RSVD (BIT(31) | BIT(23))
#define TCR_EL3_RSVD (BIT(31) | BIT(23))
-static inline void mmu_init_table(uintptr_t *tbl, size_t num_entries) {
+static inline void mmu_init_table(volatile uintptr_t *tbl, size_t num_entries) {
for(size_t i = 0; i < num_entries / 8; i++) {
tbl[i] = MMU_PTE_TYPE_FAULT;
}
diff --git a/exosphere/src/my_libc.c b/exosphere/src/my_libc.c
index 2117f2483..ffd1b595b 100644
--- a/exosphere/src/my_libc.c
+++ b/exosphere/src/my_libc.c
@@ -75,7 +75,7 @@ __libc_fini_array (void)
{
size_t count;
size_t i;
-
+
count = __fini_array_end - __fini_array_start;
for (i = count; i > 0; i--)
__fini_array_start[i-1] ();
@@ -170,7 +170,7 @@ memmove (void *dst_void,
}
else
{
- /* Use optimizing algorithm for a non-destructive copy to closely
+ /* Use optimizing algorithm for a non-destructive copy to closely
match memcpy. If the size is small or either SRC or DST is unaligned,
then punt into the byte copy loop. This should be rare. */
if (!TOO_SMALL(length) && !UNALIGNED (src, dst))
@@ -561,7 +561,7 @@ memcmp (const void *m1,
s2++;
}
return 0;
-#else
+#else
unsigned char *s1 = (unsigned char *) m1;
unsigned char *s2 = (unsigned char *) m2;
unsigned long *a1;
@@ -572,13 +572,13 @@ memcmp (const void *m1,
not turn up in inner loops. */
if (!TOO_SMALL(n) && !UNALIGNED(s1,s2))
{
- /* Otherwise, load and compare the blocks of memory one
+ /* Otherwise, load and compare the blocks of memory one
word at a time. */
a1 = (unsigned long*) s1;
a2 = (unsigned long*) s2;
while (n >= LBLOCKSIZE)
{
- if (*a1 != *a2)
+ if (*a1 != *a2)
break;
a1++;
a2++;
@@ -703,7 +703,7 @@ strchr (const char *s1,
/*
FUNCTION
<>---character string compare
-
+
INDEX
strcmp
SYNOPSIS
@@ -736,7 +736,7 @@ QUICKREF
int
strcmp (const char *s1,
const char *s2)
-{
+{
#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__)
while (*s1 != '\0' && *s1 == *s2)
{
@@ -751,7 +751,7 @@ strcmp (const char *s1,
/* If s1 or s2 are unaligned, then compare bytes. */
if (!UNALIGNED (s1, s2))
- {
+ {
/* If s1 and s2 are word-aligned, compare them a word at a time. */
a1 = (unsigned long*)s1;
a2 = (unsigned long*)s2;
@@ -915,7 +915,7 @@ strlen (const char *str)
/*
FUNCTION
<>---character string compare
-
+
INDEX
strncmp
SYNOPSIS
@@ -944,7 +944,7 @@ QUICKREF
#define UNALIGNED(X, Y) \
(((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1)))
-int
+int
strncmp (const char *s1,
const char *s2,
size_t n)
@@ -1103,10 +1103,10 @@ strncpy (char *__restrict dst0,
#endif /* not PREFER_SIZE_OVER_SPEED */
}
-/*
+/*
FUNCTION
<>---character string length
-
+
INDEX
strnlen
SYNOPSIS
diff --git a/libraries/config/arch/arm64/arch.mk b/libraries/config/arch/arm64/arch.mk
index e3162d2dd..960cbabf5 100644
--- a/libraries/config/arch/arm64/arch.mk
+++ b/libraries/config/arch/arm64/arch.mk
@@ -5,7 +5,7 @@ endif
include $(DEVKITPRO)/devkitA64/base_rules
export ATMOSPHERE_DEFINES += -DATMOSPHERE_ARCH_ARM64
-export ATMOSPHERE_SETTINGS += -march=armv8-a+crc+crypto -mtp=soft
+export ATMOSPHERE_SETTINGS += -march=armv8-a+crc+crypto -mno-outline-atomics -mtp=soft
export ATMOSPHERE_CFLAGS +=
export ATMOSPHERE_CXXFLAGS +=
export ATMOSPHERE_ASFLAGS +=
diff --git a/libraries/config/common.mk b/libraries/config/common.mk
index 964a7d0aa..5bd48dfb3 100644
--- a/libraries/config/common.mk
+++ b/libraries/config/common.mk
@@ -18,7 +18,7 @@ export ATMOSPHERE_DEFINES := -DATMOSPHERE
export ATMOSPHERE_SETTINGS := -fPIE -g
export ATMOSPHERE_CFLAGS := -Wall -ffunction-sections -fdata-sections -fno-strict-aliasing -fwrapv \
-fno-asynchronous-unwind-tables -fno-unwind-tables -fno-stack-protector
-export ATMOSPHERE_CXXFLAGS := -fno-rtti -fno-exceptions -std=gnu++17
+export ATMOSPHERE_CXXFLAGS := -fno-rtti -fno-exceptions -std=gnu++2a
export ATMOSPHERE_ASFLAGS :=
diff --git a/libraries/libmesosphere/Makefile b/libraries/libmesosphere/Makefile
index c9c190e90..a4744653d 100644
--- a/libraries/libmesosphere/Makefile
+++ b/libraries/libmesosphere/Makefile
@@ -122,6 +122,8 @@ $(filter-out kern_svc_tables.o, $(OFILES)) : $(GCH_FILES)
$(OFILES_SRC) : $(HFILES_BIN)
+kern_libc_generic.o: CFLAGS += -fno-builtin
+
#---------------------------------------------------------------------------------
%_bin.h %.bin.o : %.bin
#---------------------------------------------------------------------------------
diff --git a/libraries/libmesosphere/include/mesosphere/arch/arm64/kern_k_interrupt_controller.hpp b/libraries/libmesosphere/include/mesosphere/arch/arm64/kern_k_interrupt_controller.hpp
index a6d7a180e..ce276c1a7 100644
--- a/libraries/libmesosphere/include/mesosphere/arch/arm64/kern_k_interrupt_controller.hpp
+++ b/libraries/libmesosphere/include/mesosphere/arch/arm64/kern_k_interrupt_controller.hpp
@@ -72,7 +72,7 @@ namespace ams::kern::arch::arm64 {
SgirTargetListFilter_Reserved = (3 << 24),
};
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(sizeof(GicDistributor) == 0x1000);
struct GicCpuInterface {
@@ -98,7 +98,7 @@ namespace ams::kern::arch::arm64 {
u32 dir;
u32 _0x1004[1023];
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(sizeof(GicCpuInterface) == 0x2000);
struct KInterruptController {
@@ -164,11 +164,11 @@ namespace ams::kern::arch::arm64 {
}
void SetTarget(s32 irq, s32 core_id) const {
- this->gicd->itargetsr.bytes[irq] |= GetGicMask(core_id);
+ this->gicd->itargetsr.bytes[irq] = this->gicd->itargetsr.bytes[irq] | GetGicMask(core_id);
}
void ClearTarget(s32 irq, s32 core_id) const {
- this->gicd->itargetsr.bytes[irq] &= ~GetGicMask(core_id);
+ this->gicd->itargetsr.bytes[irq] = this->gicd->itargetsr.bytes[irq] & ~GetGicMask(core_id);
}
void SetPriorityLevel(s32 irq, s32 level) const {
diff --git a/libraries/libmesosphere/include/mesosphere/init/kern_init_layout.hpp b/libraries/libmesosphere/include/mesosphere/init/kern_init_layout.hpp
index 620ef85fe..3d379ca03 100644
--- a/libraries/libmesosphere/include/mesosphere/init/kern_init_layout.hpp
+++ b/libraries/libmesosphere/include/mesosphere/init/kern_init_layout.hpp
@@ -32,7 +32,7 @@ namespace ams::kern::init {
u32 init_array_offset;
u32 init_array_end_offset;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(sizeof(KernelLayout) == 0x30);
}
\ No newline at end of file
diff --git a/libraries/libmesosphere/include/mesosphere/kern_k_current_context.hpp b/libraries/libmesosphere/include/mesosphere/kern_k_current_context.hpp
index ae8a7947d..442f04fed 100644
--- a/libraries/libmesosphere/include/mesosphere/kern_k_current_context.hpp
+++ b/libraries/libmesosphere/include/mesosphere/kern_k_current_context.hpp
@@ -31,8 +31,10 @@ namespace ams::kern {
s32 core_id;
void *exception_stack_top;
};
- static_assert(std::is_pod::value);
+ static_assert(std::is_standard_layout::value && std::is_trivially_destructible::value);
static_assert(sizeof(KCurrentContext) <= cpu::DataCacheLineSize);
+ static_assert(sizeof(std::atomic) == sizeof(KThread *));
+ static_assert(sizeof(std::atomic) == sizeof(KProcess *));
namespace impl {
diff --git a/libraries/libmesosphere/include/mesosphere/kern_k_page_table_base.hpp b/libraries/libmesosphere/include/mesosphere/kern_k_page_table_base.hpp
index 0ebfb206d..2298dd9dd 100644
--- a/libraries/libmesosphere/include/mesosphere/kern_k_page_table_base.hpp
+++ b/libraries/libmesosphere/include/mesosphere/kern_k_page_table_base.hpp
@@ -65,7 +65,7 @@ namespace ams::kern {
Node *next;
u8 buffer[PageSize - sizeof(Node *)];
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
private:
Node *root;
public:
diff --git a/libraries/libmesosphere/source/kern_k_address_space_info.cpp b/libraries/libmesosphere/source/kern_k_address_space_info.cpp
index e8c04ec91..1d81e14d7 100644
--- a/libraries/libmesosphere/source/kern_k_address_space_info.cpp
+++ b/libraries/libmesosphere/source/kern_k_address_space_info.cpp
@@ -22,19 +22,19 @@ namespace ams::kern {
constexpr uintptr_t Invalid = std::numeric_limits::max();
constexpr KAddressSpaceInfo AddressSpaceInfos[] = {
- { .bit_width = 32, .address = 2_MB, .size = 1_GB - 2_MB, KAddressSpaceInfo::Type_32Bit, },
- { .bit_width = 32, .address = 1_GB, .size = 4_GB - 1_GB, KAddressSpaceInfo::Type_Small64Bit, },
- { .bit_width = 32, .address = Invalid, .size = 1_GB, KAddressSpaceInfo::Type_Heap, },
- { .bit_width = 32, .address = Invalid, .size = 1_GB, KAddressSpaceInfo::Type_Alias, },
- { .bit_width = 36, .address = 128_MB, .size = 2_GB - 128_MB, KAddressSpaceInfo::Type_32Bit, },
- { .bit_width = 36, .address = 2_GB, .size = 64_GB - 2_GB, KAddressSpaceInfo::Type_Small64Bit, },
- { .bit_width = 36, .address = Invalid, .size = 6_GB, KAddressSpaceInfo::Type_Heap, },
- { .bit_width = 36, .address = Invalid, .size = 6_GB, KAddressSpaceInfo::Type_Alias, },
- { .bit_width = 39, .address = 128_MB, .size = 512_GB - 128_MB, KAddressSpaceInfo::Type_Large64Bit, },
- { .bit_width = 39, .address = Invalid, .size = 64_GB, KAddressSpaceInfo::Type_32Bit, },
- { .bit_width = 39, .address = Invalid, .size = 6_GB, KAddressSpaceInfo::Type_Heap, },
- { .bit_width = 39, .address = Invalid, .size = 64_GB, KAddressSpaceInfo::Type_Alias, },
- { .bit_width = 39, .address = Invalid, .size = 2_GB, KAddressSpaceInfo::Type_Stack, },
+ { .bit_width = 32, .address = 2_MB, .size = 1_GB - 2_MB, .type = KAddressSpaceInfo::Type_32Bit, },
+ { .bit_width = 32, .address = 1_GB, .size = 4_GB - 1_GB, .type = KAddressSpaceInfo::Type_Small64Bit, },
+ { .bit_width = 32, .address = Invalid, .size = 1_GB, .type = KAddressSpaceInfo::Type_Heap, },
+ { .bit_width = 32, .address = Invalid, .size = 1_GB, .type = KAddressSpaceInfo::Type_Alias, },
+ { .bit_width = 36, .address = 128_MB, .size = 2_GB - 128_MB, .type = KAddressSpaceInfo::Type_32Bit, },
+ { .bit_width = 36, .address = 2_GB, .size = 64_GB - 2_GB, .type = KAddressSpaceInfo::Type_Small64Bit, },
+ { .bit_width = 36, .address = Invalid, .size = 6_GB, .type = KAddressSpaceInfo::Type_Heap, },
+ { .bit_width = 36, .address = Invalid, .size = 6_GB, .type = KAddressSpaceInfo::Type_Alias, },
+ { .bit_width = 39, .address = 128_MB, .size = 512_GB - 128_MB, .type = KAddressSpaceInfo::Type_Large64Bit, },
+ { .bit_width = 39, .address = Invalid, .size = 64_GB, .type = KAddressSpaceInfo::Type_32Bit, },
+ { .bit_width = 39, .address = Invalid, .size = 6_GB, .type = KAddressSpaceInfo::Type_Heap, },
+ { .bit_width = 39, .address = Invalid, .size = 64_GB, .type = KAddressSpaceInfo::Type_Alias, },
+ { .bit_width = 39, .address = Invalid, .size = 2_GB, .type = KAddressSpaceInfo::Type_Stack, },
};
constexpr bool IsAllowedIndexForAddress(size_t index) {
diff --git a/libraries/libstratosphere/include/stratosphere/ams/ams_types.hpp b/libraries/libstratosphere/include/stratosphere/ams/ams_types.hpp
index 73b69fba7..b16de724b 100644
--- a/libraries/libstratosphere/include/stratosphere/ams/ams_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/ams/ams_types.hpp
@@ -104,7 +104,7 @@ namespace ams {
};
static_assert(sizeof(FatalErrorContext) == 0x450, "sizeof(FatalErrorContext)");
- static_assert(std::is_pod::value, "FatalErrorContext");
+ static_assert(util::is_pod::value, "FatalErrorContext");
#ifdef ATMOSPHERE_GIT_BRANCH
NX_CONSTEXPR const char *GetGitBranch() {
diff --git a/libraries/libstratosphere/include/stratosphere/capsrv/capsrv_screen_shot_decode_option.hpp b/libraries/libstratosphere/include/stratosphere/capsrv/capsrv_screen_shot_decode_option.hpp
index 5b0ba29e1..6606470b5 100644
--- a/libraries/libstratosphere/include/stratosphere/capsrv/capsrv_screen_shot_decode_option.hpp
+++ b/libraries/libstratosphere/include/stratosphere/capsrv/capsrv_screen_shot_decode_option.hpp
@@ -41,6 +41,6 @@ namespace ams::capsrv {
};
static_assert(sizeof(ScreenShotDecodeOption) == 0x20);
static_assert(sizeof(ScreenShotDecodeOption) == sizeof(::CapsScreenShotDecodeOption));
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
}
diff --git a/libraries/libstratosphere/include/stratosphere/cfg/cfg_types.hpp b/libraries/libstratosphere/include/stratosphere/cfg/cfg_types.hpp
index 6f2bffc40..b7d5847f0 100644
--- a/libraries/libstratosphere/include/stratosphere/cfg/cfg_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/cfg/cfg_types.hpp
@@ -49,7 +49,7 @@ namespace ams::cfg {
};
static_assert(sizeof(OverrideStatus) == 0x10, "sizeof(OverrideStatus)");
- static_assert(std::is_pod::value, "std::is_pod::value");
+ static_assert(util::is_pod::value, "util::is_pod::value");
constexpr inline bool operator==(const OverrideStatus &lhs, const OverrideStatus &rhs) {
return std::memcmp(&lhs, &rhs, sizeof(lhs)) == 0;
diff --git a/libraries/libstratosphere/include/stratosphere/dmnt/dmnt_cheat_types.hpp b/libraries/libstratosphere/include/stratosphere/dmnt/dmnt_cheat_types.hpp
index 017e73407..53ab40bf8 100644
--- a/libraries/libstratosphere/include/stratosphere/dmnt/dmnt_cheat_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/dmnt/dmnt_cheat_types.hpp
@@ -36,7 +36,7 @@ namespace ams::dmnt::cheat {
u8 main_nso_build_id[0x20];
};
- static_assert(std::is_pod::value && sizeof(CheatProcessMetadata) == 0x70, "CheatProcessMetadata definition!");
+ static_assert(util::is_pod::value && sizeof(CheatProcessMetadata) == 0x70, "CheatProcessMetadata definition!");
struct CheatDefinition : sf::LargeData, sf::PrefersMapAliasTransferMode {
char readable_name[0x40];
@@ -50,8 +50,8 @@ namespace ams::dmnt::cheat {
CheatDefinition definition;
};
- static_assert(std::is_pod::value, "CheatDefinition");
- static_assert(std::is_pod::value, "CheatEntry");
+ static_assert(util::is_pod::value, "CheatDefinition");
+ static_assert(util::is_pod::value, "CheatEntry");
struct FrozenAddressValue {
u64 value;
diff --git a/libraries/libstratosphere/include/stratosphere/erpt/erpt_types.hpp b/libraries/libstratosphere/include/stratosphere/erpt/erpt_types.hpp
index bc29605e2..d26cf6e16 100644
--- a/libraries/libstratosphere/include/stratosphere/erpt/erpt_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/erpt/erpt_types.hpp
@@ -108,7 +108,7 @@ namespace ams::erpt {
};
using ReportFlagSet = util::BitFlagSet;
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(sizeof(ReportFlagSet) == sizeof(u32));
struct ReportInfo {
@@ -149,7 +149,7 @@ namespace ams::erpt {
};
using AttachmentFlagSet = util::BitFlagSet;
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(sizeof(AttachmentFlagSet) == sizeof(u32));
constexpr inline u32 AttachmentNameSizeMax = 0x20;
diff --git a/libraries/libstratosphere/include/stratosphere/fatal/fatal_types.hpp b/libraries/libstratosphere/include/stratosphere/fatal/fatal_types.hpp
index f2a9dc917..1228e7af5 100644
--- a/libraries/libstratosphere/include/stratosphere/fatal/fatal_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fatal/fatal_types.hpp
@@ -75,44 +75,44 @@ namespace ams::fatal {
static constexpr size_t MaxStackTraceDepth = 0x20;
static constexpr const char *RegisterNameStrings[RegisterName_Count] = {
- u8"X0",
- u8"X1",
- u8"X2",
- u8"X3",
- u8"X4",
- u8"X5",
- u8"X6",
- u8"X7",
- u8"X8",
- u8"X9",
- u8"X10",
- u8"X11",
- u8"X12",
- u8"X13",
- u8"X14",
- u8"X15",
- u8"X16",
- u8"X17",
- u8"X18",
- u8"X19",
- u8"X20",
- u8"X21",
- u8"X22",
- u8"X23",
- u8"X24",
- u8"X25",
- u8"X26",
- u8"X27",
- u8"X28",
- u8"FP",
- u8"LR",
- u8"SP",
- u8"PC",
- u8"PState",
- u8"Afsr0",
- u8"Afsr1",
- u8"Esr",
- u8"Far",
+ "X0",
+ "X1",
+ "X2",
+ "X3",
+ "X4",
+ "X5",
+ "X6",
+ "X7",
+ "X8",
+ "X9",
+ "X10",
+ "X11",
+ "X12",
+ "X13",
+ "X14",
+ "X15",
+ "X16",
+ "X17",
+ "X18",
+ "X19",
+ "X20",
+ "X21",
+ "X22",
+ "X23",
+ "X24",
+ "X25",
+ "X26",
+ "X27",
+ "X28",
+ "FP",
+ "LR",
+ "SP",
+ "PC",
+ "PState",
+ "Afsr0",
+ "Afsr1",
+ "Esr",
+ "Far",
};
/* Registers, exception context. N left names for these fields in fatal .rodata. */
@@ -209,27 +209,27 @@ namespace ams::fatal {
static constexpr size_t MaxStackTraceDepth = 0x20;
static constexpr const char *RegisterNameStrings[RegisterName_Count] = {
- u8"R0",
- u8"R1",
- u8"R2",
- u8"R3",
- u8"R4",
- u8"R5",
- u8"R6",
- u8"R7",
- u8"R8",
- u8"R9",
- u8"R10",
- u8"FP",
- u8"IP",
- u8"LR",
- u8"SP",
- u8"PC",
- u8"PState",
- u8"Afsr0",
- u8"Afsr1",
- u8"Esr",
- u8"Far",
+ "R0",
+ "R1",
+ "R2",
+ "R3",
+ "R4",
+ "R5",
+ "R6",
+ "R7",
+ "R8",
+ "R9",
+ "R10",
+ "FP",
+ "IP",
+ "LR",
+ "SP",
+ "PC",
+ "PState",
+ "Afsr0",
+ "Afsr1",
+ "Esr",
+ "Far",
};
/* Registers, exception context. N left names for these fields in fatal .rodata. */
@@ -311,9 +311,9 @@ namespace ams::fatal {
}
};
- static_assert(std::is_pod::value && sizeof(aarch64::CpuContext) == 0x248, "aarch64::CpuContext definition!");
- static_assert(std::is_pod::value && sizeof(aarch32::CpuContext) == 0xE0, "aarch32::CpuContext definition!");
- static_assert(std::is_pod::value && sizeof(CpuContext) == 0x250, "CpuContext definition!");
+ static_assert(util::is_pod::value && sizeof(aarch64::CpuContext) == 0x248, "aarch64::CpuContext definition!");
+ static_assert(util::is_pod::value && sizeof(aarch32::CpuContext) == 0xE0, "aarch32::CpuContext definition!");
+ static_assert(util::is_pod::value && sizeof(CpuContext) == 0x250, "CpuContext definition!");
namespace srv {
diff --git a/libraries/libstratosphere/include/stratosphere/fs/fs_common.hpp b/libraries/libstratosphere/include/stratosphere/fs/fs_common.hpp
index 4f6a6436d..e91ae9835 100644
--- a/libraries/libstratosphere/include/stratosphere/fs/fs_common.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fs/fs_common.hpp
@@ -43,6 +43,6 @@ namespace ams::fs {
return this->Get();
}
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
}
\ No newline at end of file
diff --git a/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_hierarchical_rom_file_table.hpp b/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_hierarchical_rom_file_table.hpp
index d2306154b..25651f7e3 100644
--- a/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_hierarchical_rom_file_table.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_hierarchical_rom_file_table.hpp
@@ -28,7 +28,7 @@ namespace ams::fs {
Position next_dir;
Position next_file;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
using DirectoryInfo = RomDirectoryInfo;
using FileInfo = RomFileInfo;
@@ -56,13 +56,13 @@ namespace ams::fs {
Position dir;
Position file;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
struct RomFileEntry {
Position next;
FileInfo info;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static constexpr inline u32 MaxKeyLength = RomPathTool::MaxPathLength;
@@ -109,7 +109,7 @@ namespace ams::fs {
return RomPathTool::IsEqualPath(reinterpret_cast(aux_lhs), reinterpret_cast(aux_rhs), aux_lhs_size / sizeof(RomPathChar));
}
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
struct EntryKey {
RomEntryKey key;
@@ -126,7 +126,7 @@ namespace ams::fs {
return hash;
}
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
using DirectoryEntryMapTable = EntryMapTable;
using FileEntryMapTable = EntryMapTable;
diff --git a/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_rom_key_value_storage.hpp b/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_rom_key_value_storage.hpp
index 044e17b78..455f1cdff 100644
--- a/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_rom_key_value_storage.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_rom_key_value_storage.hpp
@@ -31,7 +31,7 @@ namespace ams::fs {
BucketIndex ind;
Position pos;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
private:
static constexpr inline Position InvalidPosition = ~Position();
@@ -41,7 +41,7 @@ namespace ams::fs {
Position next;
u32 size;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
private:
s64 bucket_count;
SubStorage bucket_storage;
diff --git a/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_rom_path_tool.hpp b/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_rom_path_tool.hpp
index c57b1fe9d..7fc957c92 100644
--- a/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_rom_path_tool.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_rom_path_tool.hpp
@@ -26,7 +26,7 @@ namespace ams::fs {
size_t length;
const RomPathChar *path;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
constexpr void InitializeRomEntryName(RomEntryName *entry) {
AMS_ABORT_UNLESS(entry != nullptr);
diff --git a/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_rom_types.hpp b/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_rom_types.hpp
index 86a646e45..f746af65e 100644
--- a/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_rom_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fs/fs_dbm_rom_types.hpp
@@ -34,19 +34,19 @@ namespace ams::fs {
s64 file_entry_size;
s64 body_offset;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(sizeof(RomFileSystemInformation) == 0x50);
struct RomDirectoryInfo {
/* ... */
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
struct RomFileInfo {
Int64 offset;
Int64 size;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
namespace RomStringTraits {
diff --git a/libraries/libstratosphere/include/stratosphere/fs/fs_file.hpp b/libraries/libstratosphere/include/stratosphere/fs/fs_file.hpp
index 51fab7070..36e7d790b 100644
--- a/libraries/libstratosphere/include/stratosphere/fs/fs_file.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fs/fs_file.hpp
@@ -34,7 +34,7 @@ namespace ams::fs {
return !(lhs == rhs);
}
- static_assert(std::is_pod::value && sizeof(ReadOption) == sizeof(u32));
+ static_assert(util::is_pod::value && sizeof(ReadOption) == sizeof(u32));
struct WriteOption {
u32 value;
@@ -58,7 +58,7 @@ namespace ams::fs {
return !(lhs == rhs);
}
- static_assert(std::is_pod::value && sizeof(WriteOption) == sizeof(u32));
+ static_assert(util::is_pod::value && sizeof(WriteOption) == sizeof(u32));
struct FileHandle {
void *handle;
diff --git a/libraries/libstratosphere/include/stratosphere/fs/fs_memory_management.hpp b/libraries/libstratosphere/include/stratosphere/fs/fs_memory_management.hpp
index cc9a31a2f..03e344745 100644
--- a/libraries/libstratosphere/include/stratosphere/fs/fs_memory_management.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fs/fs_memory_management.hpp
@@ -42,7 +42,7 @@ namespace ams::fs {
template
std::unique_ptr MakeUnique() {
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
return std::unique_ptr(static_cast(::ams::fs::impl::Allocate(sizeof(T))), Deleter(sizeof(T)));
}
diff --git a/libraries/libstratosphere/include/stratosphere/fs/fs_query_range.hpp b/libraries/libstratosphere/include/stratosphere/fs/fs_query_range.hpp
index 5cdc45c21..1c0fbdebf 100644
--- a/libraries/libstratosphere/include/stratosphere/fs/fs_query_range.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fs/fs_query_range.hpp
@@ -36,7 +36,7 @@ namespace ams::fs {
}
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(sizeof(QueryRangeInfo) == 0x40);
static_assert(sizeof(QueryRangeInfo) == sizeof(::FsRangeInfo));
diff --git a/libraries/libstratosphere/include/stratosphere/fs/fs_rights_id.hpp b/libraries/libstratosphere/include/stratosphere/fs/fs_rights_id.hpp
index e13bca7bf..9dae55eb5 100644
--- a/libraries/libstratosphere/include/stratosphere/fs/fs_rights_id.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fs/fs_rights_id.hpp
@@ -23,7 +23,7 @@ namespace ams::fs {
u64 data64[2];
};
static_assert(sizeof(RightsId) == 0x10);
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
inline bool operator==(const RightsId &lhs, const RightsId &rhs) {
return std::memcmp(std::addressof(lhs), std::addressof(rhs), sizeof(RightsId)) == 0;
diff --git a/libraries/libstratosphere/include/stratosphere/fs/fs_save_data_types.hpp b/libraries/libstratosphere/include/stratosphere/fs/fs_save_data_types.hpp
index 8d49efe3f..e663d67dc 100644
--- a/libraries/libstratosphere/include/stratosphere/fs/fs_save_data_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fs/fs_save_data_types.hpp
@@ -51,7 +51,7 @@ namespace ams::fs {
struct UserId {
u64 data[2];
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
constexpr inline bool operator<(const UserId &lhs, const UserId &rhs) {
if (lhs.data[0] < rhs.data[0]) {
@@ -92,7 +92,7 @@ namespace ams::fs {
bool pseudo;
u8 reserved[0x1A];
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(sizeof(SaveDataCreationInfo) == 0x40);
struct SaveDataAttribute {
@@ -154,6 +154,6 @@ namespace ams::fs {
u8 unused[0x190];
};
static_assert(sizeof(SaveDataExtraData) == 0x200);
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
}
diff --git a/libraries/libstratosphere/include/stratosphere/fssrv/fssrv_sf_path.hpp b/libraries/libstratosphere/include/stratosphere/fssrv/fssrv_sf_path.hpp
index a847a258d..16d7976de 100644
--- a/libraries/libstratosphere/include/stratosphere/fssrv/fssrv_sf_path.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fssrv/fssrv_sf_path.hpp
@@ -43,7 +43,7 @@ namespace ams::fssrv::sf {
}
};
- static_assert(std::is_pod::value && sizeof(Path) == FS_MAX_PATH);
+ static_assert(util::is_pod::value && sizeof(Path) == FS_MAX_PATH);
using FspPath = Path;
diff --git a/libraries/libstratosphere/include/stratosphere/fssystem/buffers/fssystem_file_system_buddy_heap.hpp b/libraries/libstratosphere/include/stratosphere/fssystem/buffers/fssystem_file_system_buddy_heap.hpp
index 0da255696..dad54e2a6 100644
--- a/libraries/libstratosphere/include/stratosphere/fssystem/buffers/fssystem_file_system_buddy_heap.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fssystem/buffers/fssystem_file_system_buddy_heap.hpp
@@ -30,7 +30,7 @@ namespace ams::fssystem {
class PageList;
struct PageEntry { PageEntry *next; };
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(sizeof(PageEntry) <= BlockSizeMin);
class PageList : public ::ams::fs::impl::Newable {
diff --git a/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_hierarchical_rom_file_table.hpp b/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_hierarchical_rom_file_table.hpp
index 98d27b059..8ee5f4da6 100644
--- a/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_hierarchical_rom_file_table.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_hierarchical_rom_file_table.hpp
@@ -35,7 +35,7 @@ namespace ams::fssystem {
Position next_dir;
Position next_file;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
using DirectoryInfo = RomDirectoryInfo;
using FileInfo = RomFileInfo;
@@ -63,13 +63,13 @@ namespace ams::fssystem {
Position dir;
Position file;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
struct RomFileEntry {
Position next;
FileInfo info;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static constexpr inline u32 MaxKeyLength = RomPathTool::MaxPathLength;
@@ -115,7 +115,7 @@ namespace ams::fssystem {
return RomPathTool::IsEqualPath(reinterpret_cast(aux_lhs), reinterpret_cast(aux_rhs), aux_lhs_size / sizeof(RomPathChar));
}
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
struct EntryKey {
RomEntryKey key;
@@ -132,7 +132,7 @@ namespace ams::fssystem {
return hash;
}
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
using DirectoryEntryMapTable = EntryMapTable;
using FileEntryMapTable = EntryMapTable;
diff --git a/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_rom_key_value_storage.hpp b/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_rom_key_value_storage.hpp
index f47569f68..1bbea7a5c 100644
--- a/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_rom_key_value_storage.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_rom_key_value_storage.hpp
@@ -37,7 +37,7 @@ namespace ams::fssystem {
BucketIndex ind;
Position pos;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
private:
static constexpr inline Position InvalidPosition = ~Position();
@@ -47,7 +47,7 @@ namespace ams::fssystem {
Position next;
u32 size;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
private:
s64 bucket_offset;
u32 bucket_count;
diff --git a/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_rom_path_tool.hpp b/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_rom_path_tool.hpp
index d6cd961ac..6c40eac59 100644
--- a/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_rom_path_tool.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_rom_path_tool.hpp
@@ -26,7 +26,7 @@ namespace ams::fssystem {
size_t length;
const RomPathChar *path;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
constexpr void InitializeRomEntryName(RomEntryName *entry) {
entry->length = 0;
diff --git a/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_rom_types.hpp b/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_rom_types.hpp
index 304cf9dd5..1baf32eb6 100644
--- a/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_rom_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_dbm_rom_types.hpp
@@ -34,19 +34,19 @@ namespace ams::fssystem {
s64 file_entry_size;
s64 body_offset;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(sizeof(RomFileSystemInformation) == 0x50);
struct RomDirectoryInfo {
/* ... */
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
struct RomFileInfo {
fs::Int64 offset;
fs::Int64 size;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
namespace RomStringTraits {
diff --git a/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_partition_file_system_meta.hpp b/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_partition_file_system_meta.hpp
index 5e34906d6..a45ad3d02 100644
--- a/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_partition_file_system_meta.hpp
+++ b/libraries/libstratosphere/include/stratosphere/fssystem/fssystem_partition_file_system_meta.hpp
@@ -29,7 +29,7 @@ namespace ams::fssystem {
u32 name_offset;
u32 reserved;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
#pragma pack(pop)
static constexpr const char VersionSignature[] = { 'P', 'F', 'S', '0' };
@@ -52,7 +52,7 @@ namespace ams::fssystem {
u64 hash_target_offset;
char hash[HashSize];
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
#pragma pack(pop)
static constexpr const char VersionSignature[] = { 'H', 'F', 'S', '0' };
diff --git a/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_file_key_value_cache.hpp b/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_file_key_value_cache.hpp
index 52f8b2708..07c7008a9 100644
--- a/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_file_key_value_cache.hpp
+++ b/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_file_key_value_cache.hpp
@@ -186,7 +186,7 @@ namespace ams::kvdb {
template
class FileKeyValueCache {
- static_assert(std::is_pod::value, "FileKeyValueCache Key must be pod!");
+ static_assert(util::is_pod::value, "FileKeyValueCache Key must be pod!");
static_assert(sizeof(Key) <= FileKeyValueStore::MaxKeySize, "FileKeyValueCache Key is too big!");
public:
using LeastRecentlyUsedList = impl::LruList;
diff --git a/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_file_key_value_store.hpp b/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_file_key_value_store.hpp
index ce204dfbe..047562ff1 100644
--- a/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_file_key_value_store.hpp
+++ b/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_file_key_value_store.hpp
@@ -38,7 +38,7 @@ namespace ams::kvdb {
size_t key_size;
size_t value_size;
};
- static_assert(std::is_pod::value, "FileKeyValueStore::Entry definition!");
+ static_assert(util::is_pod::value, "FileKeyValueStore::Entry definition!");
class Cache {
private:
@@ -83,13 +83,13 @@ namespace ams::kvdb {
/* Niceties. */
template
Result Get(size_t *out_size, void *out_value, size_t max_out_size, const Key &key) {
- static_assert(std::is_pod::value && sizeof(Key) <= MaxKeySize, "Invalid FileKeyValueStore Key!");
+ static_assert(util::is_pod::value && sizeof(Key) <= MaxKeySize, "Invalid FileKeyValueStore Key!");
return this->Get(out_size, out_value, max_out_size, &key, sizeof(Key));
}
template
Result Get(Value *out_value, const Key &key) {
- static_assert(std::is_pod::value && !std::is_pointer::value, "Invalid FileKeyValueStore Value!");
+ static_assert(util::is_pod::value && !std::is_pointer::value, "Invalid FileKeyValueStore Value!");
size_t size = 0;
R_TRY(this->Get(&size, out_value, sizeof(Value), key));
AMS_ABORT_UNLESS(size >= sizeof(Value));
@@ -103,13 +103,13 @@ namespace ams::kvdb {
template
Result Set(const Key &key, const void *value, size_t value_size) {
- static_assert(std::is_pod::value && sizeof(Key) <= MaxKeySize, "Invalid FileKeyValueStore Key!");
+ static_assert(util::is_pod::value && sizeof(Key) <= MaxKeySize, "Invalid FileKeyValueStore Key!");
return this->Set(&key, sizeof(Key), value, value_size);
}
template
Result Set(const Key &key, const Value &value) {
- static_assert(std::is_pod::value && !std::is_pointer::value, "Invalid FileKeyValueStore Value!");
+ static_assert(util::is_pod::value && !std::is_pointer::value, "Invalid FileKeyValueStore Value!");
return this->Set(key, &value, sizeof(Value));
}
diff --git a/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_memory_key_value_store.hpp b/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_memory_key_value_store.hpp
index 1ec2b2fc7..f64ee96f2 100644
--- a/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_memory_key_value_store.hpp
+++ b/libraries/libstratosphere/include/stratosphere/kvdb/kvdb_memory_key_value_store.hpp
@@ -26,7 +26,7 @@ namespace ams::kvdb {
template
class MemoryKeyValueStore {
- static_assert(std::is_pod::value, "KeyValueStore Keys must be pod!");
+ static_assert(util::is_pod::value, "KeyValueStore Keys must be pod!");
NON_COPYABLE(MemoryKeyValueStore);
NON_MOVEABLE(MemoryKeyValueStore);
public:
@@ -49,7 +49,7 @@ namespace ams::kvdb {
if constexpr (!std::is_same::value) {
AMS_ABORT_UNLESS(sizeof(Value) <= this->value_size);
/* Ensure we only get pod. */
- static_assert(std::is_pod::value, "KeyValueStore Values must be pod");
+ static_assert(util::is_pod::value, "KeyValueStore Values must be pod");
}
return reinterpret_cast(this->value);
}
@@ -60,7 +60,7 @@ namespace ams::kvdb {
if constexpr (!std::is_same::value) {
AMS_ABORT_UNLESS(sizeof(Value) <= this->value_size);
/* Ensure we only get pod. */
- static_assert(std::is_pod::value, "KeyValueStore Values must be pod");
+ static_assert(util::is_pod::value, "KeyValueStore Values must be pod");
}
return reinterpret_cast(this->value);
}
@@ -366,14 +366,14 @@ namespace ams::kvdb {
template
Result Set(const Key &key, const Value &value) {
/* Only allow setting pod. */
- static_assert(std::is_pod::value, "KeyValueStore Values must be pod");
+ static_assert(util::is_pod::value, "KeyValueStore Values must be pod");
return this->Set(key, &value, sizeof(Value));
}
template
Result Set(const Key &key, const Value *value) {
/* Only allow setting pod. */
- static_assert(std::is_pod::value, "KeyValueStore Values must be pod");
+ static_assert(util::is_pod::value, "KeyValueStore Values must be pod");
return this->Set(key, value, sizeof(Value));
}
diff --git a/libraries/libstratosphere/include/stratosphere/ldr/ldr_types.hpp b/libraries/libstratosphere/include/stratosphere/ldr/ldr_types.hpp
index 933fc1d99..4c83687c4 100644
--- a/libraries/libstratosphere/include/stratosphere/ldr/ldr_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/ldr/ldr_types.hpp
@@ -35,7 +35,7 @@ namespace ams::ldr {
u32 aci_fah_size;
u8 ac_buffer[0x3E0];
};
- static_assert(std::is_pod::value && sizeof(ProgramInfo) == 0x400, "ProgramInfo definition!");
+ static_assert(util::is_pod::value && sizeof(ProgramInfo) == 0x400, "ProgramInfo definition!");
enum ProgramInfoFlag {
ProgramInfoFlag_SystemModule = (0 << 0),
@@ -71,7 +71,7 @@ namespace ams::ldr {
inline bool operator!=(const PinId &lhs, const PinId &rhs) {
return lhs.value != rhs.value;
}
- static_assert(sizeof(PinId) == sizeof(u64) && std::is_pod::value, "PinId definition!");
+ static_assert(sizeof(PinId) == sizeof(u64) && util::is_pod::value, "PinId definition!");
/* Import ModuleInfo from libnx. */
using ModuleInfo = ::LoaderModuleInfo;
@@ -142,7 +142,7 @@ namespace ams::ldr {
};
};
};
- static_assert(sizeof(NsoHeader) == 0x100 && std::is_pod::value, "NsoHeader definition!");
+ static_assert(sizeof(NsoHeader) == 0x100 && util::is_pod::value, "NsoHeader definition!");
/* NPDM types. */
struct Aci {
@@ -160,7 +160,7 @@ namespace ams::ldr {
u32 kac_size;
u8 reserved_38[0x8];
};
- static_assert(sizeof(Aci) == 0x40 && std::is_pod::value, "Aci definition!");
+ static_assert(sizeof(Aci) == 0x40 && util::is_pod::value, "Aci definition!");
struct Acid {
static constexpr u32 Magic = util::FourCC<'A','C','I','D'>::Code;
@@ -199,7 +199,7 @@ namespace ams::ldr {
u32 kac_size;
u8 reserved_238[0x8];
};
- static_assert(sizeof(Acid) == 0x240 && std::is_pod::value, "Acid definition!");
+ static_assert(sizeof(Acid) == 0x240 && util::is_pod::value, "Acid definition!");
struct Npdm {
static constexpr u32 Magic = util::FourCC<'M','E','T','A'>::Code;
@@ -239,6 +239,6 @@ namespace ams::ldr {
u32 acid_offset;
u32 acid_size;
};
- static_assert(sizeof(Npdm) == 0x80 && std::is_pod::value, "Npdm definition!");
+ static_assert(sizeof(Npdm) == 0x80 && util::is_pod::value, "Npdm definition!");
}
diff --git a/libraries/libstratosphere/include/stratosphere/lr/lr_types.hpp b/libraries/libstratosphere/include/stratosphere/lr/lr_types.hpp
index 5b15c5135..4a684470e 100644
--- a/libraries/libstratosphere/include/stratosphere/lr/lr_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/lr/lr_types.hpp
@@ -56,6 +56,6 @@ namespace ams::lr {
}
};
- static_assert(std::is_pod::value && sizeof(Path) == fs::EntryNameLengthMax);
+ static_assert(util::is_pod::value && sizeof(Path) == fs::EntryNameLengthMax);
}
diff --git a/libraries/libstratosphere/include/stratosphere/mem/impl/mem_impl_common.hpp b/libraries/libstratosphere/include/stratosphere/mem/impl/mem_impl_common.hpp
index ff0bbaf56..314a3d3b5 100644
--- a/libraries/libstratosphere/include/stratosphere/mem/impl/mem_impl_common.hpp
+++ b/libraries/libstratosphere/include/stratosphere/mem/impl/mem_impl_common.hpp
@@ -65,6 +65,6 @@ namespace ams::mem::impl {
size_t alloc_size;
size_t hash;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
}
diff --git a/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_info.hpp b/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_info.hpp
index c0fcd21f8..16f784289 100644
--- a/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_info.hpp
+++ b/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_info.hpp
@@ -55,7 +55,7 @@ namespace ams::ncm {
}
};
- static_assert(sizeof(std::is_pod::value));
+ static_assert(sizeof(util::is_pod::value));
static_assert(sizeof(ContentInfo) == 0x18);
}
diff --git a/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_manager_impl.hpp b/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_manager_impl.hpp
index 9f4fd8ae2..244aa3ffb 100644
--- a/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_manager_impl.hpp
+++ b/libraries/libstratosphere/include/stratosphere/ncm/ncm_content_manager_impl.hpp
@@ -65,7 +65,7 @@ namespace ams::ncm {
u32 flags;
fs::SaveDataSpaceId space_id;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
class ContentManagerImpl final : public IContentManager {
private:
diff --git a/libraries/libstratosphere/include/stratosphere/ncm/ncm_program_location.hpp b/libraries/libstratosphere/include/stratosphere/ncm/ncm_program_location.hpp
index 3e2e53567..097f83eb3 100644
--- a/libraries/libstratosphere/include/stratosphere/ncm/ncm_program_location.hpp
+++ b/libraries/libstratosphere/include/stratosphere/ncm/ncm_program_location.hpp
@@ -27,7 +27,7 @@ namespace ams::ncm {
return { .program_id = program_id, .storage_id = static_cast(storage_id), };
}
};
- static_assert(sizeof(ProgramLocation) == 0x10 && std::is_pod::value);
+ static_assert(sizeof(ProgramLocation) == 0x10 && util::is_pod::value);
static_assert(sizeof(ProgramLocation) == sizeof(::NcmProgramLocation) && alignof(ProgramLocation) == alignof(::NcmProgramLocation), "ProgramLocation Libnx Compatibility");
diff --git a/libraries/libstratosphere/include/stratosphere/ncm/ncm_rights_id.hpp b/libraries/libstratosphere/include/stratosphere/ncm/ncm_rights_id.hpp
index 6806fa7f5..f025407c2 100644
--- a/libraries/libstratosphere/include/stratosphere/ncm/ncm_rights_id.hpp
+++ b/libraries/libstratosphere/include/stratosphere/ncm/ncm_rights_id.hpp
@@ -25,7 +25,7 @@ namespace ams::ncm {
u8 reserved[7];
};
static_assert(sizeof(RightsId) == 0x18);
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
inline bool operator==(const RightsId &lhs, const RightsId &rhs) {
return std::tie(lhs.id, lhs.key_generation) == std::tie(rhs.id, rhs.key_generation);
diff --git a/libraries/libstratosphere/include/stratosphere/os/os_rw_lock_types.hpp b/libraries/libstratosphere/include/stratosphere/os/os_rw_lock_types.hpp
index 4d6acf17e..166d9de8d 100644
--- a/libraries/libstratosphere/include/stratosphere/os/os_rw_lock_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/os/os_rw_lock_types.hpp
@@ -36,7 +36,7 @@ namespace ams::os {
};
util::BitPack32 counter;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(std::is_trivial::value);
union {
diff --git a/libraries/libstratosphere/include/stratosphere/pgl/pgl_types.hpp b/libraries/libstratosphere/include/stratosphere/pgl/pgl_types.hpp
index 08aceb8f8..3cbd21b2c 100644
--- a/libraries/libstratosphere/include/stratosphere/pgl/pgl_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/pgl/pgl_types.hpp
@@ -52,6 +52,6 @@ namespace ams::pgl {
};
}
};
- static_assert(sizeof(ContentMetaInfo) == 0x10 && std::is_pod::value);
+ static_assert(sizeof(ContentMetaInfo) == 0x10 && util::is_pod::value);
}
diff --git a/libraries/libstratosphere/include/stratosphere/pm/pm_types.hpp b/libraries/libstratosphere/include/stratosphere/pm/pm_types.hpp
index f433bddb4..a26fe88aa 100644
--- a/libraries/libstratosphere/include/stratosphere/pm/pm_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/pm/pm_types.hpp
@@ -97,6 +97,6 @@ namespace ams::pm {
u32 event;
os::ProcessId process_id;
};
- static_assert(sizeof(ProcessEventInfo) == 0x10 && std::is_pod::value, "ProcessEventInfo definition!");
+ static_assert(sizeof(ProcessEventInfo) == 0x10 && util::is_pod::value, "ProcessEventInfo definition!");
}
diff --git a/libraries/libstratosphere/include/stratosphere/reg.hpp b/libraries/libstratosphere/include/stratosphere/reg.hpp
index 6321d53b8..6b5076f93 100644
--- a/libraries/libstratosphere/include/stratosphere/reg.hpp
+++ b/libraries/libstratosphere/include/stratosphere/reg.hpp
@@ -36,7 +36,7 @@ namespace ams::reg {
}
inline void SetBits(volatile u32 *reg, u32 mask) {
- *reg |= mask;
+ *reg = *reg | mask;
}
inline void SetBits(uintptr_t reg, u32 mask) {
@@ -44,7 +44,7 @@ namespace ams::reg {
}
inline void ClearBits(volatile u32 *reg, u32 mask) {
- *reg &= ~mask;
+ *reg = *reg & ~mask;
}
inline void ClearBits(uintptr_t reg, u32 mask) {
@@ -52,7 +52,7 @@ namespace ams::reg {
}
inline void MaskBits(volatile u32 *reg, u32 mask) {
- *reg &= mask;
+ *reg = *reg & mask;
}
inline void MaskBits(uintptr_t reg, u32 mask) {
diff --git a/libraries/libstratosphere/include/stratosphere/settings/factory/settings_device_certificate.hpp b/libraries/libstratosphere/include/stratosphere/settings/factory/settings_device_certificate.hpp
index b9be05258..4c445a951 100644
--- a/libraries/libstratosphere/include/stratosphere/settings/factory/settings_device_certificate.hpp
+++ b/libraries/libstratosphere/include/stratosphere/settings/factory/settings_device_certificate.hpp
@@ -22,18 +22,18 @@ namespace ams::settings::factory {
u8 data[0x180];
};
static_assert(sizeof(EccP256DeviceCertificate) == 0x180);
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
struct EccB233DeviceCertificate {
u8 data[0x180];
};
static_assert(sizeof(EccB233DeviceCertificate) == 0x180);
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
struct Rsa2048DeviceCertificate {
u8 data[0x240];
};
static_assert(sizeof(Rsa2048DeviceCertificate) == 0x240);
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
}
diff --git a/libraries/libstratosphere/include/stratosphere/settings/factory/settings_serial_number.hpp b/libraries/libstratosphere/include/stratosphere/settings/factory/settings_serial_number.hpp
index 068d7d655..301139cca 100644
--- a/libraries/libstratosphere/include/stratosphere/settings/factory/settings_serial_number.hpp
+++ b/libraries/libstratosphere/include/stratosphere/settings/factory/settings_serial_number.hpp
@@ -22,6 +22,6 @@ namespace ams::settings::factory {
char str[0x18];
};
static_assert(sizeof(SerialNumber) == 0x18);
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
}
diff --git a/libraries/libstratosphere/include/stratosphere/settings/settings_fwdbg_types.hpp b/libraries/libstratosphere/include/stratosphere/settings/settings_fwdbg_types.hpp
index 461e36b0a..7fee0800c 100644
--- a/libraries/libstratosphere/include/stratosphere/settings/settings_fwdbg_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/settings/settings_fwdbg_types.hpp
@@ -27,12 +27,12 @@ namespace ams::settings::fwdbg {
char value[util::AlignUp(SettingsNameLengthMax + 1, alignof(u64))];
};
- static_assert(std::is_pod::value && sizeof(SettingsName) > SettingsNameLengthMax);
+ static_assert(util::is_pod::value && sizeof(SettingsName) > SettingsNameLengthMax);
struct SettingsItemKey : sf::LargeData {
char value[util::AlignUp(SettingsItemKeyLengthMax + 1, alignof(u64))];
};
- static_assert(std::is_pod::value && sizeof(SettingsItemKey) > SettingsItemKeyLengthMax);
+ static_assert(util::is_pod::value && sizeof(SettingsItemKey) > SettingsItemKeyLengthMax);
}
diff --git a/libraries/libstratosphere/include/stratosphere/settings/settings_types.hpp b/libraries/libstratosphere/include/stratosphere/settings/settings_types.hpp
index 0b9600624..2930d1ffd 100644
--- a/libraries/libstratosphere/include/stratosphere/settings/settings_types.hpp
+++ b/libraries/libstratosphere/include/stratosphere/settings/settings_types.hpp
@@ -152,7 +152,7 @@ namespace ams::settings {
return impl::IsValidLanguageCode(lc, std::make_index_sequence{});
}
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(sizeof(LanguageCode) == sizeof(u64));
/* Not an official type, but convenient. */
@@ -193,7 +193,7 @@ namespace ams::settings {
}
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(sizeof(FirmwareVersion) == sizeof(::SetSysFirmwareVersion));
constexpr inline bool operator==(const FirmwareVersion &lhs, const FirmwareVersion &rhs) {
diff --git a/libraries/libstratosphere/include/stratosphere/sf/cmif/sf_cmif_server_message_processor.hpp b/libraries/libstratosphere/include/stratosphere/sf/cmif/sf_cmif_server_message_processor.hpp
index 65dd2701d..f96c6fd49 100644
--- a/libraries/libstratosphere/include/stratosphere/sf/cmif/sf_cmif_server_message_processor.hpp
+++ b/libraries/libstratosphere/include/stratosphere/sf/cmif/sf_cmif_server_message_processor.hpp
@@ -63,7 +63,7 @@ namespace ams::sf::cmif {
}
};
- static_assert(std::is_pod::value, "std::is_pod::value");
+ static_assert(util::is_pod::value, "util::is_pod::value");
static_assert(sizeof(ServerMessageRuntimeMetadata) == sizeof(u64), "sizeof(ServerMessageRuntimeMetadata)");
class ServerMessageProcessor {
diff --git a/libraries/libstratosphere/include/stratosphere/sf/cmif/sf_cmif_service_dispatch.hpp b/libraries/libstratosphere/include/stratosphere/sf/cmif/sf_cmif_service_dispatch.hpp
index 44e35b4f7..cca03664c 100644
--- a/libraries/libstratosphere/include/stratosphere/sf/cmif/sf_cmif_service_dispatch.hpp
+++ b/libraries/libstratosphere/include/stratosphere/sf/cmif/sf_cmif_service_dispatch.hpp
@@ -61,7 +61,7 @@ namespace ams::sf::cmif {
return this->handler;
}
};
- static_assert(std::is_pod::value && sizeof(ServiceCommandMeta) == 0x18, "sizeof(ServiceCommandMeta)");
+ static_assert(util::is_pod::value && sizeof(ServiceCommandMeta) == 0x18, "sizeof(ServiceCommandMeta)");
namespace impl {
diff --git a/libraries/libstratosphere/include/stratosphere/sf/impl/sf_impl_command_serialization.hpp b/libraries/libstratosphere/include/stratosphere/sf/impl/sf_impl_command_serialization.hpp
index 3ceb664d8..0f3a646ce 100644
--- a/libraries/libstratosphere/include/stratosphere/sf/impl/sf_impl_command_serialization.hpp
+++ b/libraries/libstratosphere/include/stratosphere/sf/impl/sf_impl_command_serialization.hpp
@@ -1042,7 +1042,7 @@ namespace ams::sf::impl {
};
constexpr Result GetCmifOutHeaderPointer(CmifOutHeader **out_header_ptr, cmif::PointerAndSize &out_raw_data) {
- CmifOutHeader *header = reinterpret_cast(out_raw_data.GetPointer());
+ CmifOutHeader *header = static_cast(out_raw_data.GetPointer());
R_UNLESS(out_raw_data.GetSize() >= sizeof(*header), sf::cmif::ResultInvalidHeaderSize());
out_raw_data = cmif::PointerAndSize(out_raw_data.GetAddress() + sizeof(*header), out_raw_data.GetSize() - sizeof(*header));
*out_header_ptr = header;
diff --git a/libraries/libstratosphere/source/ams/ams_environment.cpp b/libraries/libstratosphere/source/ams/ams_environment.cpp
index 47babfb92..507b38435 100644
--- a/libraries/libstratosphere/source/ams/ams_environment.cpp
+++ b/libraries/libstratosphere/source/ams/ams_environment.cpp
@@ -182,6 +182,9 @@ extern "C" {
/* Custom abort handler, so that std::abort will trigger these. */
void abort() {
+ static ams::os::Mutex abort_lock(true);
+ std::scoped_lock lk(abort_lock);
+
ams::AbortImpl();
__builtin_unreachable();
}
diff --git a/libraries/libstratosphere/source/capsrv/server/decodersrv/decodersrv_decoder_work_memory.hpp b/libraries/libstratosphere/source/capsrv/server/decodersrv/decodersrv_decoder_work_memory.hpp
index cf590c573..11b380882 100644
--- a/libraries/libstratosphere/source/capsrv/server/decodersrv/decodersrv_decoder_work_memory.hpp
+++ b/libraries/libstratosphere/source/capsrv/server/decodersrv/decodersrv_decoder_work_memory.hpp
@@ -23,6 +23,6 @@ namespace ams::capsrv::server {
};
static_assert(sizeof(DecoderWorkMemory) == SoftwareJpegDecoderWorkMemorySize);
static_assert(alignof(DecoderWorkMemory) == os::MemoryPageSize);
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
}
diff --git a/libraries/libstratosphere/source/fs/fs_file_path_hash.hpp b/libraries/libstratosphere/source/fs/fs_file_path_hash.hpp
index bbc580839..3fa00fbcb 100644
--- a/libraries/libstratosphere/source/fs/fs_file_path_hash.hpp
+++ b/libraries/libstratosphere/source/fs/fs_file_path_hash.hpp
@@ -23,7 +23,7 @@ namespace ams::fs::impl {
struct FilePathHash : public Newable {
u8 data[FilePathHashSize];
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
inline bool operator==(const FilePathHash &lhs, const FilePathHash &rhs) {
return std::memcmp(lhs.data, rhs.data, FilePathHashSize) == 0;
diff --git a/libraries/libstratosphere/source/fs/fsa/fs_mount_name.hpp b/libraries/libstratosphere/source/fs/fsa/fs_mount_name.hpp
index 8f77d3fe2..de999277c 100644
--- a/libraries/libstratosphere/source/fs/fsa/fs_mount_name.hpp
+++ b/libraries/libstratosphere/source/fs/fsa/fs_mount_name.hpp
@@ -21,6 +21,6 @@ namespace ams::fs {
struct MountName {
char str[MountNameLengthMax + 1];
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
}
diff --git a/libraries/libstratosphere/source/fssystem/fssystem_partition_file_system_meta.cpp b/libraries/libstratosphere/source/fssystem/fssystem_partition_file_system_meta.cpp
index dc598e492..591c35a9d 100644
--- a/libraries/libstratosphere/source/fssystem/fssystem_partition_file_system_meta.cpp
+++ b/libraries/libstratosphere/source/fssystem/fssystem_partition_file_system_meta.cpp
@@ -24,7 +24,7 @@ namespace ams::fssystem {
u32 name_table_size;
u32 reserved;
};
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(sizeof(PartitionFileSystemMeta::PartitionFileSystemHeader) == 0x10);
template
diff --git a/libraries/libstratosphere/source/fssystem/fssystem_romfs_filesystem.cpp b/libraries/libstratosphere/source/fssystem/fssystem_romfs_filesystem.cpp
index 93659d160..009c51d06 100644
--- a/libraries/libstratosphere/source/fssystem/fssystem_romfs_filesystem.cpp
+++ b/libraries/libstratosphere/source/fssystem/fssystem_romfs_filesystem.cpp
@@ -37,7 +37,7 @@ namespace ams::fssystem {
virtual ~RomFsFile() { /* ... */ }
public:
virtual Result ReadImpl(size_t *out, s64 offset, void *buffer, size_t size, const fs::ReadOption &option) override {
- R_TRY(buffers::DoContinuouslyUntilBufferIsAllocated([=]() -> Result {
+ R_TRY(buffers::DoContinuouslyUntilBufferIsAllocated([=, this]() -> Result {
size_t read_size = 0;
R_TRY(this->DryRead(std::addressof(read_size), offset, size, option, fs::OpenMode_Read));
@@ -84,7 +84,7 @@ namespace ams::fssystem {
operate_size = this->GetSize() - offset;
}
- R_TRY(buffers::DoContinuouslyUntilBufferIsAllocated([=]() -> Result {
+ R_TRY(buffers::DoContinuouslyUntilBufferIsAllocated([=, this]() -> Result {
R_TRY(this->parent->GetBaseStorage()->OperateRange(dst, dst_size, op_id, this->start + offset, operate_size, src, src_size));
return ResultSuccess();
}, AMS_CURRENT_FUNCTION_NAME));
@@ -113,7 +113,7 @@ namespace ams::fssystem {
virtual ~RomFsDirectory() override { /* ... */ }
public:
virtual Result ReadImpl(s64 *out_count, fs::DirectoryEntry *out_entries, s64 max_entries) {
- R_TRY(buffers::DoContinuouslyUntilBufferIsAllocated([=]() -> Result {
+ R_TRY(buffers::DoContinuouslyUntilBufferIsAllocated([=, this]() -> Result {
return this->ReadImpl(out_count, std::addressof(this->current_find), out_entries, max_entries);
}, AMS_CURRENT_FUNCTION_NAME));
return ResultSuccess();
@@ -278,7 +278,7 @@ namespace ams::fssystem {
}
Result RomFsFileSystem::GetFileInfo(RomFileTable::FileInfo *out, const char *path) {
- R_TRY(buffers::DoContinuouslyUntilBufferIsAllocated([=]() -> Result {
+ R_TRY(buffers::DoContinuouslyUntilBufferIsAllocated([=, this]() -> Result {
R_TRY_CATCH(this->rom_file_table.OpenFile(out, path)) {
R_CONVERT(fs::ResultDbmNotFound, fs::ResultPathNotFound());
} R_END_TRY_CATCH;
@@ -325,7 +325,7 @@ namespace ams::fssystem {
}
Result RomFsFileSystem::GetEntryTypeImpl(fs::DirectoryEntryType *out, const char *path) {
- R_TRY(buffers::DoContinuouslyUntilBufferIsAllocated([=]() -> Result {
+ R_TRY(buffers::DoContinuouslyUntilBufferIsAllocated([=, this]() -> Result {
RomDirectoryInfo dir_info;
R_TRY_CATCH(this->rom_file_table.GetDirectoryInformation(std::addressof(dir_info), path)) {
diff --git a/libraries/libstratosphere/source/kvdb/kvdb_archive.cpp b/libraries/libstratosphere/source/kvdb/kvdb_archive.cpp
index f3f365752..e3819ff36 100644
--- a/libraries/libstratosphere/source/kvdb/kvdb_archive.cpp
+++ b/libraries/libstratosphere/source/kvdb/kvdb_archive.cpp
@@ -42,7 +42,7 @@ namespace ams::kvdb {
return header;
}
};
- static_assert(sizeof(ArchiveHeader) == 0xC && std::is_pod::value, "ArchiveHeader definition!");
+ static_assert(sizeof(ArchiveHeader) == 0xC && util::is_pod::value, "ArchiveHeader definition!");
struct ArchiveEntryHeader {
u8 magic[sizeof(ArchiveEntryMagic)];
@@ -62,7 +62,7 @@ namespace ams::kvdb {
return header;
}
};
- static_assert(sizeof(ArchiveEntryHeader) == 0xC && std::is_pod::value, "ArchiveEntryHeader definition!");
+ static_assert(sizeof(ArchiveEntryHeader) == 0xC && util::is_pod::value, "ArchiveEntryHeader definition!");
}
diff --git a/libraries/libstratosphere/source/mem/impl/heap/mem_impl_heap_tls_heap_static.hpp b/libraries/libstratosphere/source/mem/impl/heap/mem_impl_heap_tls_heap_static.hpp
index eace75938..523aac2ed 100644
--- a/libraries/libstratosphere/source/mem/impl/heap/mem_impl_heap_tls_heap_static.hpp
+++ b/libraries/libstratosphere/source/mem/impl/heap/mem_impl_heap_tls_heap_static.hpp
@@ -160,7 +160,7 @@ namespace ams::mem::impl::heap {
template
static ALWAYS_INLINE T *AlignUpPage(T *ptr) {
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(util::IsAligned(PageSize, alignof(T)));
return reinterpret_cast(AlignUpPage(reinterpret_cast(ptr)));
}
@@ -171,7 +171,7 @@ namespace ams::mem::impl::heap {
template
static ALWAYS_INLINE T *AlignDownPage(T *ptr) {
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(util::IsAligned(PageSize, alignof(T)));
return reinterpret_cast(AlignDownPage(reinterpret_cast(ptr)));
}
@@ -182,7 +182,7 @@ namespace ams::mem::impl::heap {
template
static ALWAYS_INLINE T *AlignUpPhysicalPage(T *ptr) {
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(util::IsAligned(PhysicalPageSize, alignof(T)));
return reinterpret_cast(AlignUpPhysicalPage(reinterpret_cast(ptr)));
}
@@ -193,7 +193,7 @@ namespace ams::mem::impl::heap {
template
static ALWAYS_INLINE T *AlignDownPhysicalPage(T *ptr) {
- static_assert(std::is_pod::value);
+ static_assert(util::is_pod::value);
static_assert(util::IsAligned(PhysicalPageSize, alignof(T)));
return reinterpret_cast(AlignDownPhysicalPage(reinterpret_cast(ptr)));
}
diff --git a/libraries/libstratosphere/source/pgl/srv/pgl_srv_shell.cpp b/libraries/libstratosphere/source/pgl/srv/pgl_srv_shell.cpp
index 9ffbb85a1..633e28aec 100644
--- a/libraries/libstratosphere/source/pgl/srv/pgl_srv_shell.cpp
+++ b/libraries/libstratosphere/source/pgl/srv/pgl_srv_shell.cpp
@@ -27,7 +27,7 @@ namespace ams::pgl::srv {
os::ProcessId process_id;
u32 flags;
};
- static_assert(std::is_pod