commit
7c1a22358a
|
@ -21,6 +21,7 @@ endif()
|
||||||
|
|
||||||
# libfmt
|
# libfmt
|
||||||
add_subdirectory(fmt)
|
add_subdirectory(fmt)
|
||||||
|
add_library(fmt::fmt ALIAS fmt)
|
||||||
|
|
||||||
# getopt
|
# getopt
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit ac5484c4e7365b59d8c7e14db6778de26635e428
|
Subproject commit 4d35f94133ed14794e53c9f8627d047b408e0dc7
|
|
@ -103,7 +103,19 @@ inline __attribute__((always_inline)) u64 swap64(u64 _data) {
|
||||||
return __builtin_bswap64(_data);
|
return __builtin_bswap64(_data);
|
||||||
}
|
}
|
||||||
#elif defined(__Bitrig__) || defined(__OpenBSD__)
|
#elif defined(__Bitrig__) || defined(__OpenBSD__)
|
||||||
// swap16, swap32, swap64 are left as is
|
// redefine swap16, swap32, swap64 as inline functions
|
||||||
|
#undef swap16
|
||||||
|
#undef swap32
|
||||||
|
#undef swap64
|
||||||
|
inline u16 swap16(u16 _data) {
|
||||||
|
return __swap16(_data);
|
||||||
|
}
|
||||||
|
inline u32 swap32(u32 _data) {
|
||||||
|
return __swap32(_data);
|
||||||
|
}
|
||||||
|
inline u64 swap64(u64 _data) {
|
||||||
|
return __swap64(_data);
|
||||||
|
}
|
||||||
#elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__)
|
#elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__)
|
||||||
inline u16 swap16(u16 _data) {
|
inline u16 swap16(u16 _data) {
|
||||||
return bswap16(_data);
|
return bswap16(_data);
|
||||||
|
|
|
@ -150,15 +150,15 @@ void ServiceFrameworkBase::ReportUnimplementedFunction(u32* cmd_buf, const Funct
|
||||||
int num_params = header.normal_params_size + header.translate_params_size;
|
int num_params = header.normal_params_size + header.translate_params_size;
|
||||||
std::string function_name = info == nullptr ? fmt::format("{:#08x}", cmd_buf[0]) : info->name;
|
std::string function_name = info == nullptr ? fmt::format("{:#08x}", cmd_buf[0]) : info->name;
|
||||||
|
|
||||||
fmt::MemoryWriter w;
|
fmt::memory_buffer buf;
|
||||||
w.write("function '{}': port='{}' cmd_buf={{[0]={:#x}", function_name, service_name,
|
fmt::format_to(buf, "function '{}': port='{}' cmd_buf={{[0]={:#x}", function_name, service_name,
|
||||||
cmd_buf[0]);
|
cmd_buf[0]);
|
||||||
for (int i = 1; i <= num_params; ++i) {
|
for (int i = 1; i <= num_params; ++i) {
|
||||||
w.write(", [{}]={:#x}", i, cmd_buf[i]);
|
fmt::format_to(buf, ", [{}]={:#x}", i, cmd_buf[i]);
|
||||||
}
|
}
|
||||||
w << '}';
|
buf.push_back('}');
|
||||||
|
|
||||||
LOG_ERROR(Service, "unknown / unimplemented %s", w.c_str());
|
LOG_ERROR(Service, "unknown / unimplemented %s", fmt::to_string(buf).c_str());
|
||||||
// TODO(bunnei): Hack - ignore error
|
// TODO(bunnei): Hack - ignore error
|
||||||
cmd_buf[1] = 0;
|
cmd_buf[1] = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,7 +94,9 @@ static const std::unordered_map<int, int> error_map = {{
|
||||||
{ERRNO(EMFILE), 33},
|
{ERRNO(EMFILE), 33},
|
||||||
{EMLINK, 34},
|
{EMLINK, 34},
|
||||||
{ERRNO(EMSGSIZE), 35},
|
{ERRNO(EMSGSIZE), 35},
|
||||||
|
#ifdef EMULTIHOP
|
||||||
{ERRNO(EMULTIHOP), 36},
|
{ERRNO(EMULTIHOP), 36},
|
||||||
|
#endif
|
||||||
{ERRNO(ENAMETOOLONG), 37},
|
{ERRNO(ENAMETOOLONG), 37},
|
||||||
{ERRNO(ENETDOWN), 38},
|
{ERRNO(ENETDOWN), 38},
|
||||||
{ERRNO(ENETRESET), 39},
|
{ERRNO(ENETRESET), 39},
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
#include <future>
|
#include <future>
|
||||||
#include <json.hpp>
|
|
||||||
#include "common/logging/log.h"
|
#include "common/logging/log.h"
|
||||||
#include "web_service/announce_room_json.h"
|
#include "web_service/announce_room_json.h"
|
||||||
|
#include "web_service/json.h"
|
||||||
#include "web_service/web_backend.h"
|
#include "web_service/web_backend.h"
|
||||||
|
|
||||||
namespace AnnounceMultiplayerRoom {
|
namespace AnnounceMultiplayerRoom {
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
// Copyright 2018 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// This hack is needed to support json.hpp on platforms where the C++17 stdlib
|
||||||
|
// lacks std::string_view. See https://github.com/nlohmann/json/issues/735.
|
||||||
|
// clang-format off
|
||||||
|
#if !__has_include(<string_view>) && __has_include(<experimental/string_view>)
|
||||||
|
# include <experimental/string_view>
|
||||||
|
# define string_view experimental::string_view
|
||||||
|
# include <json.hpp>
|
||||||
|
# undef string_view
|
||||||
|
#else
|
||||||
|
# include <json.hpp>
|
||||||
|
#endif
|
||||||
|
// clang-format on
|
|
@ -7,9 +7,9 @@
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <future>
|
#include <future>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <json.hpp>
|
|
||||||
#include "common/announce_multiplayer_room.h"
|
#include "common/announce_multiplayer_room.h"
|
||||||
#include "common/telemetry.h"
|
#include "common/telemetry.h"
|
||||||
|
#include "web_service/json.h"
|
||||||
|
|
||||||
namespace WebService {
|
namespace WebService {
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
// Licensed under GPLv2 or any later version
|
// Licensed under GPLv2 or any later version
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
#include <json.hpp>
|
#include "web_service/json.h"
|
||||||
#include "web_service/verify_login.h"
|
#include "web_service/verify_login.h"
|
||||||
#include "web_service/web_backend.h"
|
#include "web_service/web_backend.h"
|
||||||
|
|
||||||
|
|
Reference in New Issue