Browse Source

file loggin is safe now, settings too

eden-orbis-ps4
lizzie 2 weeks ago
parent
commit
b7099f4ff6
  1. 2
      src/common/host_memory.cpp
  2. 8
      src/common/logging.cpp
  3. 9
      src/common/settings.cpp
  4. 3
      src/dynarmic/tests/CMakeLists.txt

2
src/common/host_memory.cpp

@ -438,7 +438,7 @@ static void* ChooseVirtualBase(size_t virtual_size) {
#else #else
static void* ChooseVirtualBase(size_t size) { static void* ChooseVirtualBase(size_t size) {
#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) || defined(__sun__) || defined(__HAIKU__) || defined(__managarm__) || defined(__AIX__) || defined(__OPENORBIS__)
#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) || defined(__sun__) || defined(__HAIKU__) || defined(__managarm__) || defined(__AIX__)
void* virtual_base = mmap(nullptr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE | MAP_ALIGNED_SUPER, -1, 0); void* virtual_base = mmap(nullptr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE | MAP_ALIGNED_SUPER, -1, 0);
if (virtual_base != MAP_FAILED) if (virtual_base != MAP_FAILED)
return virtual_base; return virtual_base;

8
src/common/logging.cpp

@ -243,7 +243,6 @@ struct ColorConsoleBackend final : public Backend {
#endif #endif
}; };
#ifndef __OPENORBIS__
/// @brief Backend that writes to a file passed into the constructor /// @brief Backend that writes to a file passed into the constructor
struct FileBackend final : public Backend { struct FileBackend final : public Backend {
explicit FileBackend(const std::filesystem::path& filename) noexcept { explicit FileBackend(const std::filesystem::path& filename) noexcept {
@ -307,7 +306,6 @@ private:
std::size_t bytes_written = 0; std::size_t bytes_written = 0;
bool enabled = true; bool enabled = true;
}; };
#endif
#ifdef _WIN32 #ifdef _WIN32
/// @brief Backend that writes to Visual Studio's output window /// @brief Backend that writes to Visual Studio's output window
@ -379,10 +377,8 @@ struct Impl {
void ForEachBackend(auto lambda) noexcept { void ForEachBackend(auto lambda) noexcept {
lambda(static_cast<Backend&>(color_console_backend)); lambda(static_cast<Backend&>(color_console_backend));
#ifndef __OPENORBIS__
if (file_backend) if (file_backend)
lambda(static_cast<Backend&>(*file_backend)); lambda(static_cast<Backend&>(*file_backend));
#endif
#ifdef _WIN32 #ifdef _WIN32
lambda(static_cast<Backend&>(debugger_backend)); lambda(static_cast<Backend&>(debugger_backend));
#endif #endif
@ -393,9 +389,7 @@ struct Impl {
Filter filter; Filter filter;
ColorConsoleBackend color_console_backend{}; ColorConsoleBackend color_console_backend{};
#ifndef __OPENORBIS__
std::optional<FileBackend> file_backend; std::optional<FileBackend> file_backend;
#endif
#ifdef _WIN32 #ifdef _WIN32
DebuggerBackend debugger_backend{}; DebuggerBackend debugger_backend{};
#endif #endif
@ -418,12 +412,10 @@ void Initialize() {
} else { } else {
logging_instance.emplace(); logging_instance.emplace();
logging_instance->filter.ParseFilterString(Settings::values.log_filter.GetValue()); logging_instance->filter.ParseFilterString(Settings::values.log_filter.GetValue());
#ifndef __OPENORBIS__
using namespace Common::FS; using namespace Common::FS;
const auto& log_dir = GetEdenPath(EdenPath::LogDir); const auto& log_dir = GetEdenPath(EdenPath::LogDir);
void(CreateDir(log_dir)); void(CreateDir(log_dir));
logging_instance->file_backend.emplace(log_dir / LOG_FILE); logging_instance->file_backend.emplace(log_dir / LOG_FILE);
#endif
} }
} }

9
src/common/settings.cpp

@ -27,7 +27,7 @@
#include "common/settings.h" #include "common/settings.h"
#include "common/time_zone.h" #include "common/time_zone.h"
#if defined(__linux__ ) && defined(ARCHITECTURE_arm64)
#ifdef __unix__
#include <unistd.h> #include <unistd.h>
#endif #endif
@ -182,12 +182,9 @@ bool IsFastmemEnabled() {
return bool(values.cpuopt_fastmem); return bool(values.cpuopt_fastmem);
else if (values.cpu_accuracy.GetValue() == CpuAccuracy::Unsafe) else if (values.cpu_accuracy.GetValue() == CpuAccuracy::Unsafe)
return bool(values.cpuopt_unsafe_host_mmu); return bool(values.cpuopt_unsafe_host_mmu);
#if defined(__linux__) && defined(ARCHITECTURE_arm64)
// Only 4kb systems support host MMU right now
// TODO: Support this
#if defined(__unix__)
// TODO: Support this since only 4kb systems support host MMU right now
return getpagesize() == 4096; return getpagesize() == 4096;
#elif defined(__OPENORBIS__) || (!defined(__APPLE__) && !defined(__ANDROID__) && !defined(_WIN32) && !defined(__linux__) && !defined(__FreeBSD__))
return false;
#else #else
return true; return true;
#endif #endif

3
src/dynarmic/tests/CMakeLists.txt

@ -136,7 +136,6 @@ target_compile_definitions(dynarmic_tests PRIVATE FMT_USE_USER_DEFINED_LITERALS=
add_test(NAME dynarmic_tests COMMAND dynarmic_tests --durations yes) add_test(NAME dynarmic_tests COMMAND dynarmic_tests --durations yes)
if (PLATFORM_PS4) if (PLATFORM_PS4)
target_link_libraries(dynarmic_tests PRIVATE SceVideoOut SceAudioOut ScePad SceSystemService)
target_link_libraries(dynarmic_tests PRIVATE ps4sup)
target_link_libraries(dynarmic_tests PRIVATE SceVideoOut SceAudioOut ScePad SceSystemService ps4sup)
create_ps4_eboot(dynarmic_tests dynarmic_tests IV0000-BREW00090_00-DYNARMICTS000000) create_ps4_eboot(dynarmic_tests dynarmic_tests IV0000-BREW00090_00-DYNARMICTS000000)
endif() endif()
Loading…
Cancel
Save