os: refactor/rewrite entire namespace.

This commit is contained in:
Michael Scire 2020-04-08 02:21:35 -07:00
parent 6193283f03
commit 065485b971
181 changed files with 5353 additions and 1929 deletions

View file

@ -30,17 +30,24 @@ namespace ams::fatal::srv {
}
/* Global event. */
os::SystemEvent g_fatal_dirty_event(GetFatalDirtyEventReadableHandle(), true, false);
os::WaitableHolder g_fatal_dirty_waitable_holder(&g_fatal_dirty_event);
os::SystemEventType g_fatal_dirty_event;
os::WaitableHolderType g_fatal_dirty_waitable_holder;
bool g_initialized;
}
os::WaitableHolder *GetFatalDirtyWaitableHolder() {
return &g_fatal_dirty_waitable_holder;
os::WaitableHolderType *GetFatalDirtyWaitableHolder() {
if (AMS_UNLIKELY(!g_initialized)) {
os::AttachReadableHandleToSystemEvent(std::addressof(g_fatal_dirty_event), GetFatalDirtyEventReadableHandle(), true, os::EventClearMode_ManualClear);
os::InitializeWaitableHolder(std::addressof(g_fatal_dirty_waitable_holder), std::addressof(g_fatal_dirty_event));
os::SetWaitableHolderUserData(std::addressof(g_fatal_dirty_waitable_holder), reinterpret_cast<uintptr_t>(std::addressof(g_fatal_dirty_waitable_holder)));
g_initialized = true;
}
return std::addressof(g_fatal_dirty_waitable_holder);
}
void OnFatalDirtyEvent() {
g_fatal_dirty_event.Reset();
os::ClearSystemEvent(std::addressof(g_fatal_dirty_event));
u64 flags_0, flags_1;
if (R_SUCCEEDED(setsysGetFatalDirtyFlags(&flags_0, &flags_1)) && (flags_0 & 1)) {