diff --git a/Utilities/Config.h b/Utilities/Config.h index 49f316ff70..6bf8a5070f 100644 --- a/Utilities/Config.h +++ b/Utilities/Config.h @@ -2,7 +2,7 @@ #include "Utilities/types.h" #include "Utilities/StrFmt.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" #include "util/atomic.hpp" #include "util/shared_cptr.hpp" diff --git a/Utilities/JIT.cpp b/Utilities/JIT.cpp index 8b647537fb..cc8f8ab34d 100644 --- a/Utilities/JIT.cpp +++ b/Utilities/JIT.cpp @@ -2,7 +2,7 @@ #include "JIT.h" #include "StrFmt.h" #include "File.h" -#include "Log.h" +#include "util/logs.hpp" #include "mutex.h" #include "sysinfo.h" #include "VirtualMemory.h" diff --git a/Utilities/Log.cpp b/Utilities/Log.cpp index 429fb44c0f..cf6d787793 100644 --- a/Utilities/Log.cpp +++ b/Utilities/Log.cpp @@ -1,4 +1,4 @@ -#include "Log.h" +#include "util/logs.hpp" #include "File.h" #include "StrFmt.h" #include "sema.h" @@ -279,9 +279,12 @@ void logs::listener::add(logs::listener* _new) std::lock_guard lock(g_mutex); // Install new listener at the end of linked list - while (lis->m_next || !lis->m_next.compare_and_swap_test(nullptr, _new)) + listener* null = nullptr; + + while (lis->m_next || !lis->m_next.compare_exchange_strong(null, _new)) { lis = lis->m_next; + null = nullptr; } } diff --git a/Utilities/Thread.cpp b/Utilities/Thread.cpp index 6dad50324c..de4262ab0b 100644 --- a/Utilities/Thread.cpp +++ b/Utilities/Thread.cpp @@ -41,7 +41,7 @@ #endif #include "sync.h" -#include "Log.h" +#include "util/logs.hpp" LOG_CHANNEL(sig_log); LOG_CHANNEL(sys_log, "SYS"); diff --git a/Utilities/VirtualMemory.cpp b/Utilities/VirtualMemory.cpp index d3dc351cc1..8abb4d3164 100644 --- a/Utilities/VirtualMemory.cpp +++ b/Utilities/VirtualMemory.cpp @@ -1,5 +1,5 @@ #include "stdafx.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" #include "VirtualMemory.h" #ifdef _WIN32 #include diff --git a/rpcs3/Crypto/key_vault.h b/rpcs3/Crypto/key_vault.h index 8f313b3668..2b393b5bb0 100644 --- a/rpcs3/Crypto/key_vault.h +++ b/rpcs3/Crypto/key_vault.h @@ -1,7 +1,7 @@ #pragma once #include "Utilities/types.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" #include #include diff --git a/rpcs3/Crypto/unself.h b/rpcs3/Crypto/unself.h index ae1d6354b3..5826cf21ca 100644 --- a/rpcs3/Crypto/unself.h +++ b/rpcs3/Crypto/unself.h @@ -5,7 +5,7 @@ #include "Utilities/types.h" #include "Utilities/File.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" LOG_CHANNEL(self_log, "SELF"); diff --git a/rpcs3/Emu/Audio/XAudio2/XAudio2Backend.cpp b/rpcs3/Emu/Audio/XAudio2/XAudio2Backend.cpp index 5f9cad47b6..b93961ecb8 100644 --- a/rpcs3/Emu/Audio/XAudio2/XAudio2Backend.cpp +++ b/rpcs3/Emu/Audio/XAudio2/XAudio2Backend.cpp @@ -2,7 +2,7 @@ #error "XAudio2 can only be built on Windows." #endif -#include "Utilities/Log.h" +#include "util/logs.hpp" #include "Utilities/StrFmt.h" #include "Emu/System.h" #include "Emu/system_config.h" diff --git a/rpcs3/Emu/CPU/CPUTranslator.h b/rpcs3/Emu/CPU/CPUTranslator.h index a83e505b37..65a90b8237 100644 --- a/rpcs3/Emu/CPU/CPUTranslator.h +++ b/rpcs3/Emu/CPU/CPUTranslator.h @@ -28,7 +28,7 @@ #include "Utilities/StrFmt.h" #include "Utilities/BEType.h" #include "Utilities/BitField.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" #include "Utilities/JIT.h" #include diff --git a/rpcs3/Emu/Cell/PPUTranslator.cpp b/rpcs3/Emu/Cell/PPUTranslator.cpp index 9bdfa79505..ad23ba97cd 100644 --- a/rpcs3/Emu/Cell/PPUTranslator.cpp +++ b/rpcs3/Emu/Cell/PPUTranslator.cpp @@ -4,7 +4,7 @@ #include "PPUThread.h" #include "PPUInterpreter.h" -#include "../Utilities/Log.h" +#include "util/logs.hpp" #include using namespace llvm; diff --git a/rpcs3/Emu/GDB.cpp b/rpcs3/Emu/GDB.cpp index f5ab4a6564..1a92539d14 100644 --- a/rpcs3/Emu/GDB.cpp +++ b/rpcs3/Emu/GDB.cpp @@ -1,7 +1,7 @@ #include "stdafx.h" #include "GDB.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" #include "Utilities/StrUtil.h" #include "Emu/Memory/vm.h" #include "Emu/System.h" diff --git a/rpcs3/Emu/RSX/Common/ProgramStateCache.h b/rpcs3/Emu/RSX/Common/ProgramStateCache.h index 09610ac50d..04ad73efe8 100644 --- a/rpcs3/Emu/RSX/Common/ProgramStateCache.h +++ b/rpcs3/Emu/RSX/Common/ProgramStateCache.h @@ -5,7 +5,7 @@ #include "Utilities/hash.h" #include "Utilities/mutex.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" #include "Utilities/span.h" #include diff --git a/rpcs3/Emu/RSX/Common/ring_buffer_helper.h b/rpcs3/Emu/RSX/Common/ring_buffer_helper.h index 354eae193c..60418d322d 100644 --- a/rpcs3/Emu/RSX/Common/ring_buffer_helper.h +++ b/rpcs3/Emu/RSX/Common/ring_buffer_helper.h @@ -1,6 +1,6 @@ #pragma once -#include "Utilities/Log.h" +#include "util/logs.hpp" /** * Ring buffer memory helper : @@ -115,7 +115,7 @@ public: { return (m_put_pos > 0) ? m_put_pos - 1 : m_size - 1; } - + virtual bool is_critical() const { const size_t guard_length = std::max(m_min_guard_size, m_largest_allocated_pool); diff --git a/rpcs3/Emu/RSX/GL/GLHelpers.cpp b/rpcs3/Emu/RSX/GL/GLHelpers.cpp index b4b68758f7..012a9fe345 100644 --- a/rpcs3/Emu/RSX/GL/GLHelpers.cpp +++ b/rpcs3/Emu/RSX/GL/GLHelpers.cpp @@ -2,7 +2,7 @@ #include "GLHelpers.h" #include "GLTexture.h" #include "GLCompute.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" namespace gl { diff --git a/rpcs3/Emu/RSX/GL/GLHelpers.h b/rpcs3/Emu/RSX/GL/GLHelpers.h index 19cae8b7fe..f2b82bf221 100644 --- a/rpcs3/Emu/RSX/GL/GLHelpers.h +++ b/rpcs3/Emu/RSX/GL/GLHelpers.h @@ -14,7 +14,7 @@ #include "Emu/system_config.h" #include "Utilities/geometry.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" #define GL_FRAGMENT_TEXTURES_START 0 #define GL_VERTEX_TEXTURES_START (GL_FRAGMENT_TEXTURES_START + 16) diff --git a/rpcs3/Input/evdev_joystick_handler.cpp b/rpcs3/Input/evdev_joystick_handler.cpp index cfccf2e542..0084bc41d8 100644 --- a/rpcs3/Input/evdev_joystick_handler.cpp +++ b/rpcs3/Input/evdev_joystick_handler.cpp @@ -5,7 +5,7 @@ #include "Emu/Io/pad_config.h" #include "evdev_joystick_handler.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" #include #include diff --git a/rpcs3/emucore.vcxproj b/rpcs3/emucore.vcxproj index 35ca859685..a1fd5b0e54 100644 --- a/rpcs3/emucore.vcxproj +++ b/rpcs3/emucore.vcxproj @@ -459,7 +459,7 @@ - + diff --git a/rpcs3/emucore.vcxproj.filters b/rpcs3/emucore.vcxproj.filters index 5904971ffb..d80f3ce3a0 100644 --- a/rpcs3/emucore.vcxproj.filters +++ b/rpcs3/emucore.vcxproj.filters @@ -1024,7 +1024,7 @@ Utilities - + Utilities diff --git a/rpcs3/rpcs3qt/gui_settings.h b/rpcs3/rpcs3qt/gui_settings.h index 31e83544ca..2ddf0f3f65 100644 --- a/rpcs3/rpcs3qt/gui_settings.h +++ b/rpcs3/rpcs3qt/gui_settings.h @@ -1,7 +1,7 @@ #pragma once #include "settings.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" #include #include diff --git a/rpcs3/rpcs3qt/log_frame.h b/rpcs3/rpcs3qt/log_frame.h index 5e652e454b..dc0c4808cf 100644 --- a/rpcs3/rpcs3qt/log_frame.h +++ b/rpcs3/rpcs3qt/log_frame.h @@ -1,7 +1,7 @@ #pragma once #include "Utilities/File.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" #include "custom_dock_widget.h" #include "find_dialog.h" diff --git a/rpcs3/rpcs3qt/trophy_manager_dialog.cpp b/rpcs3/rpcs3qt/trophy_manager_dialog.cpp index e40237e927..9b0fc70fc2 100644 --- a/rpcs3/rpcs3qt/trophy_manager_dialog.cpp +++ b/rpcs3/rpcs3qt/trophy_manager_dialog.cpp @@ -7,7 +7,7 @@ #include "stdafx.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" #include "Utilities/StrUtil.h" #include "Emu/VFS.h" #include "Emu/System.h" diff --git a/rpcs3/rpcs3qt/user_account.cpp b/rpcs3/rpcs3qt/user_account.cpp index 39c67a60c4..7e2e6ab904 100644 --- a/rpcs3/rpcs3qt/user_account.cpp +++ b/rpcs3/rpcs3qt/user_account.cpp @@ -3,7 +3,7 @@ #include "Emu/System.h" #include "Utilities/File.h" #include "Utilities/StrFmt.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" LOG_CHANNEL(gui_log, "GUI"); diff --git a/rpcs3/rpcs3qt/user_manager_dialog.cpp b/rpcs3/rpcs3qt/user_manager_dialog.cpp index 185fbc037e..8876b403bc 100644 --- a/rpcs3/rpcs3qt/user_manager_dialog.cpp +++ b/rpcs3/rpcs3qt/user_manager_dialog.cpp @@ -12,7 +12,7 @@ #include "Utilities/StrUtil.h" #include "Utilities/File.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" #include #include diff --git a/rpcs3/stdafx.h b/rpcs3/stdafx.h index 5070a71fa2..d156ee0f84 100644 --- a/rpcs3/stdafx.h +++ b/rpcs3/stdafx.h @@ -25,7 +25,7 @@ namespace std { inline namespace literals { inline namespace chrono_literals {}} #include "util/atomic.hpp" #include "Utilities/StrFmt.h" #include "Utilities/File.h" -#include "Utilities/Log.h" +#include "util/logs.hpp" #include #include diff --git a/Utilities/Log.h b/rpcs3/util/logs.hpp similarity index 94% rename from Utilities/Log.h rename to rpcs3/util/logs.hpp index 76f4ed25f7..aad8f393da 100644 --- a/Utilities/Log.h +++ b/rpcs3/util/logs.hpp @@ -1,14 +1,18 @@ #pragma once -#include "types.h" -#include "StrFmt.h" -#include "util/atomic.hpp" +#include #include #include +#include +#include +#include +#include "Utilities/StrFmt.h" namespace logs { - enum class level : uint + using u64 = std::uint64_t; + + enum class level : unsigned { always, // Highest log severity (unused, cannot be disabled) fatal, @@ -46,7 +50,7 @@ namespace logs class listener { // Next listener (linked list) - atomic_t m_next{}; + std::atomic m_next{}; friend struct message; @@ -84,7 +88,7 @@ namespace logs #if __cpp_char8_t >= 201811 using char2 = char8_t; #else - using char2 = uchar; + using char2 = unsigned char; #endif #define GEN_LOG_METHOD(_sev)\