mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2025-05-27 05:04:10 -04:00
strat: use ams::Main() instead of main(argc, argv)
This commit is contained in:
parent
6a53726833
commit
ffc143860b
47 changed files with 2972 additions and 3609 deletions
|
@ -21,7 +21,24 @@ namespace ams::fatal::srv {
|
|||
namespace {
|
||||
|
||||
/* Global config. */
|
||||
FatalConfig g_config;
|
||||
constinit os::SdkMutex g_config_mutex;
|
||||
constinit bool g_initialized_config;
|
||||
constinit util::TypedStorage<FatalConfig> g_config;
|
||||
|
||||
FatalConfig &GetFatalConfigImpl() {
|
||||
if (AMS_UNLIKELY(!g_initialized_config)) {
|
||||
std::scoped_lock lk(g_config_mutex);
|
||||
|
||||
if (AMS_LIKELY(!g_initialized_config)) {
|
||||
util::ConstructAt(g_config);
|
||||
|
||||
g_initialized_config = true;
|
||||
}
|
||||
}
|
||||
|
||||
return util::GetReference(g_config);
|
||||
}
|
||||
|
||||
|
||||
/* Event creator. */
|
||||
os::NativeHandle GetFatalDirtyEventReadableHandle() {
|
||||
|
@ -31,18 +48,18 @@ namespace ams::fatal::srv {
|
|||
}
|
||||
|
||||
/* Global event. */
|
||||
os::SystemEventType g_fatal_dirty_event;
|
||||
os::MultiWaitHolderType g_fatal_dirty_multi_wait_holder;
|
||||
bool g_initialized;
|
||||
constinit os::SystemEventType g_fatal_dirty_event;
|
||||
constinit os::MultiWaitHolderType g_fatal_dirty_multi_wait_holder;
|
||||
constinit bool g_initialized_fatal_dirty_event;
|
||||
|
||||
}
|
||||
|
||||
os::MultiWaitHolderType *GetFatalDirtyMultiWaitHolder() {
|
||||
if (AMS_UNLIKELY(!g_initialized)) {
|
||||
if (AMS_UNLIKELY(!g_initialized_fatal_dirty_event)) {
|
||||
os::AttachReadableHandleToSystemEvent(std::addressof(g_fatal_dirty_event), GetFatalDirtyEventReadableHandle(), true, os::EventClearMode_ManualClear);
|
||||
os::InitializeMultiWaitHolder(std::addressof(g_fatal_dirty_multi_wait_holder), std::addressof(g_fatal_dirty_event));
|
||||
os::SetMultiWaitHolderUserData(std::addressof(g_fatal_dirty_multi_wait_holder), reinterpret_cast<uintptr_t>(std::addressof(g_fatal_dirty_multi_wait_holder)));
|
||||
g_initialized = true;
|
||||
g_initialized_fatal_dirty_event = true;
|
||||
}
|
||||
return std::addressof(g_fatal_dirty_multi_wait_holder);
|
||||
}
|
||||
|
@ -52,7 +69,7 @@ namespace ams::fatal::srv {
|
|||
|
||||
u64 flags_0, flags_1;
|
||||
if (R_SUCCEEDED(setsysGetFatalDirtyFlags(&flags_0, &flags_1)) && (flags_0 & 1)) {
|
||||
g_config.UpdateLanguageCode();
|
||||
GetFatalConfigImpl().UpdateLanguageCode();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -103,7 +120,7 @@ namespace ams::fatal::srv {
|
|||
}
|
||||
|
||||
const FatalConfig &GetFatalConfig() {
|
||||
return g_config;
|
||||
return GetFatalConfigImpl();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue