ams: support building unit test programs on windows/linux/macos
This commit is contained in:
@@ -29,7 +29,7 @@ namespace ams::lm::srv {
|
||||
size_t m_used_buffer_size;
|
||||
FlushFunction m_flush_function;
|
||||
public:
|
||||
constexpr explicit CustomSinkBuffer(void *buffer, size_t buffer_size, FlushFunction f) : m_buffer(static_cast<u8 *>(buffer)), m_buffer_size(buffer_size), m_used_buffer_size(0), m_flush_function(f) {
|
||||
constexpr explicit CustomSinkBuffer(u8 *buffer, size_t buffer_size, FlushFunction f) : m_buffer(buffer), m_buffer_size(buffer_size), m_used_buffer_size(0), m_flush_function(f) {
|
||||
AMS_ASSERT(m_buffer != nullptr);
|
||||
AMS_ASSERT(m_buffer_size > 0);
|
||||
AMS_ASSERT(m_flush_function != nullptr);
|
||||
|
||||
@@ -30,7 +30,7 @@ namespace ams::lm::srv {
|
||||
constinit u8 g_fs_heap[32_KB];
|
||||
constinit lmem::HeapHandle g_fs_heap_handle;
|
||||
|
||||
constinit os::ThreadType g_flush_thread;
|
||||
constinit os::ThreadType g_flush_thread = {};
|
||||
|
||||
os::Event g_stop_event(os::EventClearMode_ManualClear);
|
||||
os::Event g_sd_logging_event(os::EventClearMode_ManualClear);
|
||||
|
||||
@@ -39,12 +39,12 @@ namespace ams::lm::srv {
|
||||
|
||||
using ServerManager = sf::hipc::ServerManager<PortCountMax, ServerManagerOptions, SessionCountMax>;
|
||||
|
||||
constinit util::TypedStorage<ServerManager> g_server_manager_storage;
|
||||
constinit util::TypedStorage<ServerManager> g_server_manager_storage = {};
|
||||
constinit ServerManager *g_server_manager = nullptr;
|
||||
|
||||
constinit util::TypedStorage<psc::PmModule> g_pm_module_storage;
|
||||
constinit psc::PmModule *g_pm_module;
|
||||
constinit os::MultiWaitHolderType g_pm_module_holder;
|
||||
constinit util::TypedStorage<psc::PmModule> g_pm_module_storage = {};
|
||||
constinit psc::PmModule *g_pm_module = nullptr;
|
||||
constinit os::MultiWaitHolderType g_pm_module_holder = {};
|
||||
|
||||
constexpr const psc::PmModuleId PmModuleDependencies[] = { psc::PmModuleId_TmaHostIo, psc::PmModuleId_Fs };
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace ams::lm::srv {
|
||||
bool m_push_canceled;
|
||||
size_t m_push_ready_wait_count;
|
||||
public:
|
||||
constexpr explicit LogBuffer(void *buffer, size_t buffer_size, FlushFunction f)
|
||||
constexpr explicit LogBuffer(u8 *buffer, size_t buffer_size, FlushFunction f)
|
||||
: m_buffers{}, m_push_buffer(m_buffers + 0), m_flush_buffer(m_buffers + 1),
|
||||
m_buffer_size(buffer_size / 2), m_flush_function(f), m_push_buffer_mutex{},
|
||||
m_flush_buffer_mutex{}, m_cv_push_ready{}, m_cv_flush_ready{},
|
||||
@@ -52,8 +52,8 @@ namespace ams::lm::srv {
|
||||
AMS_ASSERT(buffer_size > 0);
|
||||
AMS_ASSERT(f != nullptr);
|
||||
|
||||
m_buffers[0].m_head = static_cast<u8 *>(buffer);
|
||||
m_buffers[1].m_head = static_cast<u8 *>(buffer) + (buffer_size / 2);
|
||||
m_buffers[0].m_head = buffer;
|
||||
m_buffers[1].m_head = buffer + (buffer_size / 2);
|
||||
}
|
||||
|
||||
static LogBuffer &GetDefaultInstance();
|
||||
|
||||
@@ -256,7 +256,7 @@ namespace ams::lm::srv {
|
||||
}
|
||||
|
||||
if (is_text_log) {
|
||||
const size_t sendable_size = std::min(size, remaining);
|
||||
const size_t sendable_size = std::min<size_t>(size, remaining);
|
||||
callback(reinterpret_cast<const char *>(cur), sendable_size, arg);
|
||||
}
|
||||
|
||||
|
||||
@@ -133,7 +133,7 @@ namespace ams::lm::srv {
|
||||
|
||||
/* Ensure the directory. */
|
||||
/* NOTE: Nintendo does not perform recusrive directory ensure, only a single CreateDirectory level. */
|
||||
return R_SUCCEEDED(fs::EnsureDirectoryRecursively(path));
|
||||
return R_SUCCEEDED(fs::EnsureDirectory(path));
|
||||
}
|
||||
|
||||
bool MakeLogFilePathWithoutExtension(char *dst, size_t size, const char *dir) {
|
||||
|
||||
Reference in New Issue
Block a user