mirror of
https://github.com/Lime3DS/Lime3DS.git
synced 2024-11-27 12:04:16 +01:00
Update the entire application to use the new clang format style
This commit is contained in:
parent
ed36edf69c
commit
f61141e86a
@ -115,8 +115,8 @@ void Mixers::DownmixAndMixIntoCurrentFrame(float gain, const QuadFrame32& sample
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case OutputFormat::Surround:
|
case OutputFormat::Surround:
|
||||||
// TODO(merry): Implement surround sound.
|
// TODO(merry): Implement surround sound.
|
||||||
// fallthrough
|
// fallthrough
|
||||||
|
|
||||||
case OutputFormat::Stereo:
|
case OutputFormat::Stereo:
|
||||||
std::transform(
|
std::transform(
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <queue>
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <queue>
|
||||||
#include "audio_core/audio_types.h"
|
#include "audio_core/audio_types.h"
|
||||||
#include "audio_core/codec.h"
|
#include "audio_core/codec.h"
|
||||||
#include "audio_core/hle/common.h"
|
#include "audio_core/hle/common.h"
|
||||||
|
@ -42,4 +42,4 @@ public:
|
|||||||
virtual std::vector<std::string> GetDeviceList() const = 0;
|
virtual std::vector<std::string> GetDeviceList() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace AudioCore
|
||||||
|
@ -49,10 +49,18 @@ static const std::array<int, Settings::NativeButton::NumButtons> default_buttons
|
|||||||
|
|
||||||
static const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> default_analogs{{
|
static const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> default_analogs{{
|
||||||
{
|
{
|
||||||
SDL_SCANCODE_UP, SDL_SCANCODE_DOWN, SDL_SCANCODE_LEFT, SDL_SCANCODE_RIGHT, SDL_SCANCODE_D,
|
SDL_SCANCODE_UP,
|
||||||
|
SDL_SCANCODE_DOWN,
|
||||||
|
SDL_SCANCODE_LEFT,
|
||||||
|
SDL_SCANCODE_RIGHT,
|
||||||
|
SDL_SCANCODE_D,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SDL_SCANCODE_I, SDL_SCANCODE_K, SDL_SCANCODE_J, SDL_SCANCODE_L, SDL_SCANCODE_D,
|
SDL_SCANCODE_I,
|
||||||
|
SDL_SCANCODE_K,
|
||||||
|
SDL_SCANCODE_J,
|
||||||
|
SDL_SCANCODE_L,
|
||||||
|
SDL_SCANCODE_D,
|
||||||
},
|
},
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
@ -24,10 +24,18 @@ const std::array<int, Settings::NativeButton::NumButtons> Config::default_button
|
|||||||
|
|
||||||
const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> Config::default_analogs{{
|
const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> Config::default_analogs{{
|
||||||
{
|
{
|
||||||
Qt::Key_Up, Qt::Key_Down, Qt::Key_Left, Qt::Key_Right, Qt::Key_D,
|
Qt::Key_Up,
|
||||||
|
Qt::Key_Down,
|
||||||
|
Qt::Key_Left,
|
||||||
|
Qt::Key_Right,
|
||||||
|
Qt::Key_D,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Qt::Key_I, Qt::Key_K, Qt::Key_J, Qt::Key_L, Qt::Key_D,
|
Qt::Key_I,
|
||||||
|
Qt::Key_K,
|
||||||
|
Qt::Key_J,
|
||||||
|
Qt::Key_L,
|
||||||
|
Qt::Key_D,
|
||||||
},
|
},
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
@ -13,7 +13,11 @@
|
|||||||
|
|
||||||
const std::array<std::string, ConfigureInput::ANALOG_SUB_BUTTONS_NUM>
|
const std::array<std::string, ConfigureInput::ANALOG_SUB_BUTTONS_NUM>
|
||||||
ConfigureInput::analog_sub_buttons{{
|
ConfigureInput::analog_sub_buttons{{
|
||||||
"up", "down", "left", "right", "modifier",
|
"up",
|
||||||
|
"down",
|
||||||
|
"left",
|
||||||
|
"right",
|
||||||
|
"modifier",
|
||||||
}};
|
}};
|
||||||
|
|
||||||
static QString getKeyName(int key_code) {
|
static QString getKeyName(int key_code) {
|
||||||
@ -35,7 +39,8 @@ static void SetAnalogButton(const Common::ParamPackage& input_param,
|
|||||||
Common::ParamPackage& analog_param, const std::string& button_name) {
|
Common::ParamPackage& analog_param, const std::string& button_name) {
|
||||||
if (analog_param.Get("engine", "") != "analog_from_button") {
|
if (analog_param.Get("engine", "") != "analog_from_button") {
|
||||||
analog_param = {
|
analog_param = {
|
||||||
{"engine", "analog_from_button"}, {"modifier_scale", "0.5"},
|
{"engine", "analog_from_button"},
|
||||||
|
{"modifier_scale", "0.5"},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
analog_param.Set(button_name, input_param.Serialize());
|
analog_param.Set(button_name, input_param.Serialize());
|
||||||
@ -102,11 +107,17 @@ ConfigureInput::ConfigureInput(QWidget* parent)
|
|||||||
|
|
||||||
analog_map_buttons = {{
|
analog_map_buttons = {{
|
||||||
{
|
{
|
||||||
ui->buttonCircleUp, ui->buttonCircleDown, ui->buttonCircleLeft, ui->buttonCircleRight,
|
ui->buttonCircleUp,
|
||||||
|
ui->buttonCircleDown,
|
||||||
|
ui->buttonCircleLeft,
|
||||||
|
ui->buttonCircleRight,
|
||||||
ui->buttonCircleMod,
|
ui->buttonCircleMod,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ui->buttonCStickUp, ui->buttonCStickDown, ui->buttonCStickLeft, ui->buttonCStickRight,
|
ui->buttonCStickUp,
|
||||||
|
ui->buttonCStickDown,
|
||||||
|
ui->buttonCStickLeft,
|
||||||
|
ui->buttonCStickRight,
|
||||||
nullptr,
|
nullptr,
|
||||||
},
|
},
|
||||||
}};
|
}};
|
||||||
|
@ -11,7 +11,18 @@
|
|||||||
#include "ui_configure_system.h"
|
#include "ui_configure_system.h"
|
||||||
|
|
||||||
static const std::array<int, 12> days_in_month = {{
|
static const std::array<int, 12> days_in_month = {{
|
||||||
31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
|
31,
|
||||||
|
29,
|
||||||
|
31,
|
||||||
|
30,
|
||||||
|
31,
|
||||||
|
30,
|
||||||
|
31,
|
||||||
|
31,
|
||||||
|
30,
|
||||||
|
31,
|
||||||
|
30,
|
||||||
|
31,
|
||||||
}};
|
}};
|
||||||
|
|
||||||
ConfigureSystem::ConfigureSystem(QWidget* parent) : QWidget(parent), ui(new Ui::ConfigureSystem) {
|
ConfigureSystem::ConfigureSystem(QWidget* parent) : QWidget(parent), ui(new Ui::ConfigureSystem) {
|
||||||
|
@ -129,8 +129,8 @@ void BreakPointModel::OnResumed() {
|
|||||||
|
|
||||||
GraphicsBreakPointsWidget::GraphicsBreakPointsWidget(
|
GraphicsBreakPointsWidget::GraphicsBreakPointsWidget(
|
||||||
std::shared_ptr<Pica::DebugContext> debug_context, QWidget* parent)
|
std::shared_ptr<Pica::DebugContext> debug_context, QWidget* parent)
|
||||||
: QDockWidget(tr("Pica Breakpoints"), parent),
|
: QDockWidget(tr("Pica Breakpoints"), parent), Pica::DebugContext::BreakPointObserver(
|
||||||
Pica::DebugContext::BreakPointObserver(debug_context) {
|
debug_context) {
|
||||||
setObjectName("PicaBreakPointsWidget");
|
setObjectName("PicaBreakPointsWidget");
|
||||||
|
|
||||||
status_text = new QLabel(tr("Emulation running"));
|
status_text = new QLabel(tr("Emulation running"));
|
||||||
|
@ -21,8 +21,8 @@
|
|||||||
#include "video_core/shader/shader.h"
|
#include "video_core/shader/shader.h"
|
||||||
#include "video_core/shader/shader_interpreter.h"
|
#include "video_core/shader/shader_interpreter.h"
|
||||||
|
|
||||||
using nihstro::OpCode;
|
|
||||||
using nihstro::Instruction;
|
using nihstro::Instruction;
|
||||||
|
using nihstro::OpCode;
|
||||||
using nihstro::SourceRegister;
|
using nihstro::SourceRegister;
|
||||||
using nihstro::SwizzlePattern;
|
using nihstro::SwizzlePattern;
|
||||||
|
|
||||||
@ -331,7 +331,7 @@ QVariant GraphicsVertexShaderModel::data(const QModelIndex& index, int role) con
|
|||||||
return QBrush(QColor(192, 192, 192));
|
return QBrush(QColor(192, 192, 192));
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Draw arrows for each "reachable" instruction to visualize control flow
|
// TODO: Draw arrows for each "reachable" instruction to visualize control flow
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -20,7 +20,7 @@ class Mutex;
|
|||||||
class Semaphore;
|
class Semaphore;
|
||||||
class Thread;
|
class Thread;
|
||||||
class Timer;
|
class Timer;
|
||||||
}
|
} // namespace Kernel
|
||||||
|
|
||||||
class WaitTreeThread;
|
class WaitTreeThread;
|
||||||
|
|
||||||
|
@ -221,7 +221,7 @@ public:
|
|||||||
IntTy m_val;
|
IntTy m_val;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // Common
|
} // namespace Common
|
||||||
|
|
||||||
typedef Common::BitSet<u8> BitSet8;
|
typedef Common::BitSet<u8> BitSet8;
|
||||||
typedef Common::BitSet<u16> BitSet16;
|
typedef Common::BitSet<u16> BitSet16;
|
||||||
|
@ -607,8 +607,9 @@ public:
|
|||||||
u32 cookie = arbitraryNumber;
|
u32 cookie = arbitraryNumber;
|
||||||
Do(cookie);
|
Do(cookie);
|
||||||
if (mode == PointerWrap::MODE_READ && cookie != arbitraryNumber) {
|
if (mode == PointerWrap::MODE_READ && cookie != arbitraryNumber) {
|
||||||
LOG_ERROR(Common, "After \"%s\", found %d (0x%X) instead of save marker %d (0x%X). "
|
LOG_ERROR(Common,
|
||||||
"Aborting savestate load...",
|
"After \"%s\", found %d (0x%X) instead of save marker %d (0x%X). "
|
||||||
|
"Aborting savestate load...",
|
||||||
prevName, cookie, cookie, arbitraryNumber, arbitraryNumber);
|
prevName, cookie, cookie, arbitraryNumber, arbitraryNumber);
|
||||||
SetError(ERROR_FAILURE);
|
SetError(ERROR_FAILURE);
|
||||||
}
|
}
|
||||||
|
@ -256,4 +256,4 @@ inline void EncodeX24S8(u8 stencil, u8* bytes) {
|
|||||||
bytes[3] = stencil;
|
bytes[3] = stencil;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace Color
|
||||||
|
@ -873,20 +873,19 @@ bool IOFile::Flush() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool IOFile::Resize(u64 size) {
|
bool IOFile::Resize(u64 size) {
|
||||||
if (!IsOpen() ||
|
if (!IsOpen() || 0 !=
|
||||||
0 !=
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
// ector: _chsize sucks, not 64-bit safe
|
// ector: _chsize sucks, not 64-bit safe
|
||||||
// F|RES: changed to _chsize_s. i think it is 64-bit safe
|
// F|RES: changed to _chsize_s. i think it is 64-bit safe
|
||||||
_chsize_s(_fileno(m_file), size)
|
_chsize_s(_fileno(m_file), size)
|
||||||
#else
|
#else
|
||||||
// TODO: handle 64bit and growing
|
// TODO: handle 64bit and growing
|
||||||
ftruncate(fileno(m_file), size)
|
ftruncate(fileno(m_file), size)
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
m_good = false;
|
m_good = false;
|
||||||
|
|
||||||
return m_good;
|
return m_good;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace FileUtil
|
||||||
|
@ -253,7 +253,7 @@ private:
|
|||||||
bool m_good = true;
|
bool m_good = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace FileUtil
|
||||||
|
|
||||||
// To deal with Windows being dumb at unicode:
|
// To deal with Windows being dumb at unicode:
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
@ -114,8 +114,8 @@ const char* GetLevelName(Level log_level) {
|
|||||||
|
|
||||||
Entry CreateEntry(Class log_class, Level log_level, const char* filename, unsigned int line_nr,
|
Entry CreateEntry(Class log_class, Level log_level, const char* filename, unsigned int line_nr,
|
||||||
const char* function, const char* format, va_list args) {
|
const char* function, const char* format, va_list args) {
|
||||||
using std::chrono::steady_clock;
|
|
||||||
using std::chrono::duration_cast;
|
using std::chrono::duration_cast;
|
||||||
|
using std::chrono::steady_clock;
|
||||||
|
|
||||||
static steady_clock::time_point time_origin = steady_clock::now();
|
static steady_clock::time_point time_origin = steady_clock::now();
|
||||||
|
|
||||||
@ -154,4 +154,4 @@ void LogMessage(Class log_class, Level log_level, const char* filename, unsigned
|
|||||||
|
|
||||||
PrintColoredMessage(entry);
|
PrintColoredMessage(entry);
|
||||||
}
|
}
|
||||||
}
|
} // namespace Log
|
||||||
|
@ -47,4 +47,4 @@ Entry CreateEntry(Class log_class, Level log_level, const char* filename, unsign
|
|||||||
const char* function, const char* format, va_list args);
|
const char* function, const char* format, va_list args);
|
||||||
|
|
||||||
void SetFilter(Filter* filter);
|
void SetFilter(Filter* filter);
|
||||||
}
|
} // namespace Log
|
||||||
|
@ -94,4 +94,4 @@ bool Filter::ParseFilterRule(const std::string::const_iterator begin,
|
|||||||
bool Filter::CheckMessage(Class log_class, Level level) const {
|
bool Filter::CheckMessage(Class log_class, Level level) const {
|
||||||
return static_cast<u8>(level) >= static_cast<u8>(class_levels[static_cast<size_t>(log_class)]);
|
return static_cast<u8>(level) >= static_cast<u8>(class_levels[static_cast<size_t>(log_class)]);
|
||||||
}
|
}
|
||||||
}
|
} // namespace Log
|
||||||
|
@ -50,4 +50,4 @@ public:
|
|||||||
private:
|
private:
|
||||||
std::array<Level, (size_t)Class::Count> class_levels;
|
std::array<Level, (size_t)Class::Count> class_levels;
|
||||||
};
|
};
|
||||||
}
|
} // namespace Log
|
||||||
|
@ -129,4 +129,4 @@ void PrintColoredMessage(const Entry& entry) {
|
|||||||
#undef ESC
|
#undef ESC
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
} // namespace Log
|
||||||
|
@ -28,4 +28,4 @@ void FormatLogMessage(const Entry& entry, char* out_text, size_t text_len);
|
|||||||
void PrintMessage(const Entry& entry);
|
void PrintMessage(const Entry& entry);
|
||||||
/// Prints the same message as `PrintMessage`, but colored acoording to the severity level.
|
/// Prints the same message as `PrintMessage`, but colored acoording to the severity level.
|
||||||
void PrintColoredMessage(const Entry& entry);
|
void PrintColoredMessage(const Entry& entry);
|
||||||
}
|
} // namespace Log
|
||||||
|
@ -40,11 +40,12 @@ void* AllocateExecutableMemory(size_t size, bool low) {
|
|||||||
if (low && (!map_hint))
|
if (low && (!map_hint))
|
||||||
map_hint = (char*)round_page(512 * 1024 * 1024); /* 0.5 GB rounded up to the next page */
|
map_hint = (char*)round_page(512 * 1024 * 1024); /* 0.5 GB rounded up to the next page */
|
||||||
#endif
|
#endif
|
||||||
void* ptr = mmap(map_hint, size, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE
|
void* ptr = mmap(map_hint, size, PROT_READ | PROT_WRITE | PROT_EXEC,
|
||||||
|
MAP_ANON | MAP_PRIVATE
|
||||||
#if defined(ARCHITECTURE_X64) && defined(MAP_32BIT)
|
#if defined(ARCHITECTURE_X64) && defined(MAP_32BIT)
|
||||||
| (low ? MAP_32BIT : 0)
|
| (low ? MAP_32BIT : 0)
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
-1, 0);
|
-1, 0);
|
||||||
#endif /* defined(_WIN32) */
|
#endif /* defined(_WIN32) */
|
||||||
|
|
||||||
|
@ -46,4 +46,4 @@ inline Quaternion<float> MakeQuaternion(const Math::Vec3<float>& axis, float ang
|
|||||||
return {axis * std::sin(angle / 2), std::cos(angle / 2)};
|
return {axis * std::sin(angle / 2), std::cos(angle / 2)};
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namspace Math
|
} // namespace Math
|
||||||
|
@ -12,4 +12,4 @@ extern const char g_scm_desc[];
|
|||||||
extern const char g_build_name[];
|
extern const char g_build_name[];
|
||||||
extern const char g_build_date[];
|
extern const char g_build_date[];
|
||||||
|
|
||||||
} // namespace
|
} // namespace Common
|
||||||
|
@ -22,7 +22,7 @@ template <typename Func>
|
|||||||
ScopeExitHelper<Func> ScopeExit(Func&& func) {
|
ScopeExitHelper<Func> ScopeExit(Func&& func) {
|
||||||
return ScopeExitHelper<Func>(std::move(func));
|
return ScopeExitHelper<Func>(std::move(func));
|
||||||
}
|
}
|
||||||
}
|
} // namespace detail
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This macro allows you to conveniently specify a block of code that will run on scope exit. Handy
|
* This macro allows you to conveniently specify a block of code that will run on scope exit. Handy
|
||||||
|
@ -202,7 +202,7 @@ bool SplitPath(const std::string& full_path, std::string* _pPath, std::string* _
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
":"
|
":"
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
if (std::string::npos == dir_end)
|
if (std::string::npos == dir_end)
|
||||||
dir_end = 0;
|
dir_end = 0;
|
||||||
else
|
else
|
||||||
@ -462,4 +462,4 @@ std::string StringFromFixedZeroTerminatedBuffer(const char* buffer, size_t max_l
|
|||||||
|
|
||||||
return std::string(buffer, len);
|
return std::string(buffer, len);
|
||||||
}
|
}
|
||||||
}
|
} // namespace Common
|
||||||
|
@ -134,4 +134,4 @@ bool ComparePartialString(InIt begin, InIt end, const char* other) {
|
|||||||
* NUL-terminated then the string ends at max_len characters.
|
* NUL-terminated then the string ends at max_len characters.
|
||||||
*/
|
*/
|
||||||
std::string StringFromFixedZeroTerminatedBuffer(const char* buffer, size_t max_len);
|
std::string StringFromFixedZeroTerminatedBuffer(const char* buffer, size_t max_len);
|
||||||
}
|
} // namespace Common
|
||||||
|
@ -158,4 +158,4 @@ private:
|
|||||||
std::array<Queue, NUM_QUEUES> queues;
|
std::array<Queue, NUM_QUEUES> queues;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace Common
|
||||||
|
@ -60,20 +60,41 @@ const Xbyak::Reg ABI_PARAM4 = Xbyak::util::r9;
|
|||||||
|
|
||||||
const BitSet32 ABI_ALL_CALLER_SAVED = BuildRegSet({
|
const BitSet32 ABI_ALL_CALLER_SAVED = BuildRegSet({
|
||||||
// GPRs
|
// GPRs
|
||||||
Xbyak::util::rcx, Xbyak::util::rdx, Xbyak::util::r8, Xbyak::util::r9, Xbyak::util::r10,
|
Xbyak::util::rcx,
|
||||||
|
Xbyak::util::rdx,
|
||||||
|
Xbyak::util::r8,
|
||||||
|
Xbyak::util::r9,
|
||||||
|
Xbyak::util::r10,
|
||||||
Xbyak::util::r11,
|
Xbyak::util::r11,
|
||||||
// XMMs
|
// XMMs
|
||||||
Xbyak::util::xmm0, Xbyak::util::xmm1, Xbyak::util::xmm2, Xbyak::util::xmm3, Xbyak::util::xmm4,
|
Xbyak::util::xmm0,
|
||||||
|
Xbyak::util::xmm1,
|
||||||
|
Xbyak::util::xmm2,
|
||||||
|
Xbyak::util::xmm3,
|
||||||
|
Xbyak::util::xmm4,
|
||||||
Xbyak::util::xmm5,
|
Xbyak::util::xmm5,
|
||||||
});
|
});
|
||||||
|
|
||||||
const BitSet32 ABI_ALL_CALLEE_SAVED = BuildRegSet({
|
const BitSet32 ABI_ALL_CALLEE_SAVED = BuildRegSet({
|
||||||
// GPRs
|
// GPRs
|
||||||
Xbyak::util::rbx, Xbyak::util::rsi, Xbyak::util::rdi, Xbyak::util::rbp, Xbyak::util::r12,
|
Xbyak::util::rbx,
|
||||||
Xbyak::util::r13, Xbyak::util::r14, Xbyak::util::r15,
|
Xbyak::util::rsi,
|
||||||
|
Xbyak::util::rdi,
|
||||||
|
Xbyak::util::rbp,
|
||||||
|
Xbyak::util::r12,
|
||||||
|
Xbyak::util::r13,
|
||||||
|
Xbyak::util::r14,
|
||||||
|
Xbyak::util::r15,
|
||||||
// XMMs
|
// XMMs
|
||||||
Xbyak::util::xmm6, Xbyak::util::xmm7, Xbyak::util::xmm8, Xbyak::util::xmm9, Xbyak::util::xmm10,
|
Xbyak::util::xmm6,
|
||||||
Xbyak::util::xmm11, Xbyak::util::xmm12, Xbyak::util::xmm13, Xbyak::util::xmm14,
|
Xbyak::util::xmm7,
|
||||||
|
Xbyak::util::xmm8,
|
||||||
|
Xbyak::util::xmm9,
|
||||||
|
Xbyak::util::xmm10,
|
||||||
|
Xbyak::util::xmm11,
|
||||||
|
Xbyak::util::xmm12,
|
||||||
|
Xbyak::util::xmm13,
|
||||||
|
Xbyak::util::xmm14,
|
||||||
Xbyak::util::xmm15,
|
Xbyak::util::xmm15,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -90,18 +111,40 @@ const Xbyak::Reg ABI_PARAM4 = Xbyak::util::rcx;
|
|||||||
|
|
||||||
const BitSet32 ABI_ALL_CALLER_SAVED = BuildRegSet({
|
const BitSet32 ABI_ALL_CALLER_SAVED = BuildRegSet({
|
||||||
// GPRs
|
// GPRs
|
||||||
Xbyak::util::rcx, Xbyak::util::rdx, Xbyak::util::rdi, Xbyak::util::rsi, Xbyak::util::r8,
|
Xbyak::util::rcx,
|
||||||
Xbyak::util::r9, Xbyak::util::r10, Xbyak::util::r11,
|
Xbyak::util::rdx,
|
||||||
|
Xbyak::util::rdi,
|
||||||
|
Xbyak::util::rsi,
|
||||||
|
Xbyak::util::r8,
|
||||||
|
Xbyak::util::r9,
|
||||||
|
Xbyak::util::r10,
|
||||||
|
Xbyak::util::r11,
|
||||||
// XMMs
|
// XMMs
|
||||||
Xbyak::util::xmm0, Xbyak::util::xmm1, Xbyak::util::xmm2, Xbyak::util::xmm3, Xbyak::util::xmm4,
|
Xbyak::util::xmm0,
|
||||||
Xbyak::util::xmm5, Xbyak::util::xmm6, Xbyak::util::xmm7, Xbyak::util::xmm8, Xbyak::util::xmm9,
|
Xbyak::util::xmm1,
|
||||||
Xbyak::util::xmm10, Xbyak::util::xmm11, Xbyak::util::xmm12, Xbyak::util::xmm13,
|
Xbyak::util::xmm2,
|
||||||
Xbyak::util::xmm14, Xbyak::util::xmm15,
|
Xbyak::util::xmm3,
|
||||||
|
Xbyak::util::xmm4,
|
||||||
|
Xbyak::util::xmm5,
|
||||||
|
Xbyak::util::xmm6,
|
||||||
|
Xbyak::util::xmm7,
|
||||||
|
Xbyak::util::xmm8,
|
||||||
|
Xbyak::util::xmm9,
|
||||||
|
Xbyak::util::xmm10,
|
||||||
|
Xbyak::util::xmm11,
|
||||||
|
Xbyak::util::xmm12,
|
||||||
|
Xbyak::util::xmm13,
|
||||||
|
Xbyak::util::xmm14,
|
||||||
|
Xbyak::util::xmm15,
|
||||||
});
|
});
|
||||||
|
|
||||||
const BitSet32 ABI_ALL_CALLEE_SAVED = BuildRegSet({
|
const BitSet32 ABI_ALL_CALLEE_SAVED = BuildRegSet({
|
||||||
// GPRs
|
// GPRs
|
||||||
Xbyak::util::rbx, Xbyak::util::rbp, Xbyak::util::r12, Xbyak::util::r13, Xbyak::util::r14,
|
Xbyak::util::rbx,
|
||||||
|
Xbyak::util::rbp,
|
||||||
|
Xbyak::util::r12,
|
||||||
|
Xbyak::util::r13,
|
||||||
|
Xbyak::util::r14,
|
||||||
Xbyak::util::r15,
|
Xbyak::util::r15,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ enum {
|
|||||||
ARMVFP3,
|
ARMVFP3,
|
||||||
ARMV6K,
|
ARMV6K,
|
||||||
};
|
};
|
||||||
}
|
} // namespace
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
const InstructionSetEncodingItem arm_instruction[] = {
|
const InstructionSetEncodingItem arm_instruction[] = {
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
/* Copyright (C)
|
/* Copyright (C)
|
||||||
* 2011 - Michael.Kang blackfin.kang@gmail.com
|
* 2011 - Michael.Kang blackfin.kang@gmail.com
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
* as published by the Free Software Foundation; either version 2
|
* as published by the Free Software Foundation; either version 2
|
||||||
* of the License, or (at your option) any later version.
|
* of the License, or (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful,
|
* This program is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
@ -1,28 +1,28 @@
|
|||||||
/* Copyright (C)
|
/* Copyright (C)
|
||||||
* 2011 - Michael.Kang blackfin.kang@gmail.com
|
* 2011 - Michael.Kang blackfin.kang@gmail.com
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
* as published by the Free Software Foundation; either version 2
|
* as published by the Free Software Foundation; either version 2
|
||||||
* of the License, or (at your option) any later version.
|
* of the License, or (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful,
|
* This program is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file arm_dyncom_thumb.h
|
* @file arm_dyncom_thumb.h
|
||||||
* @brief The thumb dyncom
|
* @brief The thumb dyncom
|
||||||
* @author Michael.Kang blackfin.kang@gmail.com
|
* @author Michael.Kang blackfin.kang@gmail.com
|
||||||
* @version 78.77
|
* @version 78.77
|
||||||
* @date 2011-11-07
|
* @date 2011-11-07
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
@ -1808,78 +1808,210 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(yield)(unsigned int inst, int index) {
|
|||||||
#undef VFP_INTERPRETER_TRANS
|
#undef VFP_INTERPRETER_TRANS
|
||||||
|
|
||||||
const transop_fp_t arm_instruction_trans[] = {
|
const transop_fp_t arm_instruction_trans[] = {
|
||||||
INTERPRETER_TRANSLATE(vmla), INTERPRETER_TRANSLATE(vmls), INTERPRETER_TRANSLATE(vnmla),
|
INTERPRETER_TRANSLATE(vmla),
|
||||||
INTERPRETER_TRANSLATE(vnmls), INTERPRETER_TRANSLATE(vnmul), INTERPRETER_TRANSLATE(vmul),
|
INTERPRETER_TRANSLATE(vmls),
|
||||||
INTERPRETER_TRANSLATE(vadd), INTERPRETER_TRANSLATE(vsub), INTERPRETER_TRANSLATE(vdiv),
|
INTERPRETER_TRANSLATE(vnmla),
|
||||||
INTERPRETER_TRANSLATE(vmovi), INTERPRETER_TRANSLATE(vmovr), INTERPRETER_TRANSLATE(vabs),
|
INTERPRETER_TRANSLATE(vnmls),
|
||||||
INTERPRETER_TRANSLATE(vneg), INTERPRETER_TRANSLATE(vsqrt), INTERPRETER_TRANSLATE(vcmp),
|
INTERPRETER_TRANSLATE(vnmul),
|
||||||
INTERPRETER_TRANSLATE(vcmp2), INTERPRETER_TRANSLATE(vcvtbds), INTERPRETER_TRANSLATE(vcvtbff),
|
INTERPRETER_TRANSLATE(vmul),
|
||||||
INTERPRETER_TRANSLATE(vcvtbfi), INTERPRETER_TRANSLATE(vmovbrs), INTERPRETER_TRANSLATE(vmsr),
|
INTERPRETER_TRANSLATE(vadd),
|
||||||
INTERPRETER_TRANSLATE(vmovbrc), INTERPRETER_TRANSLATE(vmrs), INTERPRETER_TRANSLATE(vmovbcr),
|
INTERPRETER_TRANSLATE(vsub),
|
||||||
INTERPRETER_TRANSLATE(vmovbrrss), INTERPRETER_TRANSLATE(vmovbrrd), INTERPRETER_TRANSLATE(vstr),
|
INTERPRETER_TRANSLATE(vdiv),
|
||||||
INTERPRETER_TRANSLATE(vpush), INTERPRETER_TRANSLATE(vstm), INTERPRETER_TRANSLATE(vpop),
|
INTERPRETER_TRANSLATE(vmovi),
|
||||||
INTERPRETER_TRANSLATE(vldr), INTERPRETER_TRANSLATE(vldm),
|
INTERPRETER_TRANSLATE(vmovr),
|
||||||
|
INTERPRETER_TRANSLATE(vabs),
|
||||||
|
INTERPRETER_TRANSLATE(vneg),
|
||||||
|
INTERPRETER_TRANSLATE(vsqrt),
|
||||||
|
INTERPRETER_TRANSLATE(vcmp),
|
||||||
|
INTERPRETER_TRANSLATE(vcmp2),
|
||||||
|
INTERPRETER_TRANSLATE(vcvtbds),
|
||||||
|
INTERPRETER_TRANSLATE(vcvtbff),
|
||||||
|
INTERPRETER_TRANSLATE(vcvtbfi),
|
||||||
|
INTERPRETER_TRANSLATE(vmovbrs),
|
||||||
|
INTERPRETER_TRANSLATE(vmsr),
|
||||||
|
INTERPRETER_TRANSLATE(vmovbrc),
|
||||||
|
INTERPRETER_TRANSLATE(vmrs),
|
||||||
|
INTERPRETER_TRANSLATE(vmovbcr),
|
||||||
|
INTERPRETER_TRANSLATE(vmovbrrss),
|
||||||
|
INTERPRETER_TRANSLATE(vmovbrrd),
|
||||||
|
INTERPRETER_TRANSLATE(vstr),
|
||||||
|
INTERPRETER_TRANSLATE(vpush),
|
||||||
|
INTERPRETER_TRANSLATE(vstm),
|
||||||
|
INTERPRETER_TRANSLATE(vpop),
|
||||||
|
INTERPRETER_TRANSLATE(vldr),
|
||||||
|
INTERPRETER_TRANSLATE(vldm),
|
||||||
|
|
||||||
INTERPRETER_TRANSLATE(srs), INTERPRETER_TRANSLATE(rfe), INTERPRETER_TRANSLATE(bkpt),
|
INTERPRETER_TRANSLATE(srs),
|
||||||
INTERPRETER_TRANSLATE(blx), INTERPRETER_TRANSLATE(cps), INTERPRETER_TRANSLATE(pld),
|
INTERPRETER_TRANSLATE(rfe),
|
||||||
INTERPRETER_TRANSLATE(setend), INTERPRETER_TRANSLATE(clrex), INTERPRETER_TRANSLATE(rev16),
|
INTERPRETER_TRANSLATE(bkpt),
|
||||||
INTERPRETER_TRANSLATE(usad8), INTERPRETER_TRANSLATE(sxtb), INTERPRETER_TRANSLATE(uxtb),
|
INTERPRETER_TRANSLATE(blx),
|
||||||
INTERPRETER_TRANSLATE(sxth), INTERPRETER_TRANSLATE(sxtb16), INTERPRETER_TRANSLATE(uxth),
|
INTERPRETER_TRANSLATE(cps),
|
||||||
INTERPRETER_TRANSLATE(uxtb16), INTERPRETER_TRANSLATE(cpy), INTERPRETER_TRANSLATE(uxtab),
|
INTERPRETER_TRANSLATE(pld),
|
||||||
INTERPRETER_TRANSLATE(ssub8), INTERPRETER_TRANSLATE(shsub8), INTERPRETER_TRANSLATE(ssubaddx),
|
INTERPRETER_TRANSLATE(setend),
|
||||||
INTERPRETER_TRANSLATE(strex), INTERPRETER_TRANSLATE(strexb), INTERPRETER_TRANSLATE(swp),
|
INTERPRETER_TRANSLATE(clrex),
|
||||||
INTERPRETER_TRANSLATE(swpb), INTERPRETER_TRANSLATE(ssub16), INTERPRETER_TRANSLATE(ssat16),
|
INTERPRETER_TRANSLATE(rev16),
|
||||||
INTERPRETER_TRANSLATE(shsubaddx), INTERPRETER_TRANSLATE(qsubaddx),
|
INTERPRETER_TRANSLATE(usad8),
|
||||||
INTERPRETER_TRANSLATE(shaddsubx), INTERPRETER_TRANSLATE(shadd8), INTERPRETER_TRANSLATE(shadd16),
|
INTERPRETER_TRANSLATE(sxtb),
|
||||||
INTERPRETER_TRANSLATE(sel), INTERPRETER_TRANSLATE(saddsubx), INTERPRETER_TRANSLATE(sadd8),
|
INTERPRETER_TRANSLATE(uxtb),
|
||||||
INTERPRETER_TRANSLATE(sadd16), INTERPRETER_TRANSLATE(shsub16), INTERPRETER_TRANSLATE(umaal),
|
INTERPRETER_TRANSLATE(sxth),
|
||||||
INTERPRETER_TRANSLATE(uxtab16), INTERPRETER_TRANSLATE(usubaddx), INTERPRETER_TRANSLATE(usub8),
|
INTERPRETER_TRANSLATE(sxtb16),
|
||||||
INTERPRETER_TRANSLATE(usub16), INTERPRETER_TRANSLATE(usat16), INTERPRETER_TRANSLATE(usada8),
|
INTERPRETER_TRANSLATE(uxth),
|
||||||
INTERPRETER_TRANSLATE(uqsubaddx), INTERPRETER_TRANSLATE(uqsub8), INTERPRETER_TRANSLATE(uqsub16),
|
INTERPRETER_TRANSLATE(uxtb16),
|
||||||
INTERPRETER_TRANSLATE(uqaddsubx), INTERPRETER_TRANSLATE(uqadd8), INTERPRETER_TRANSLATE(uqadd16),
|
INTERPRETER_TRANSLATE(cpy),
|
||||||
INTERPRETER_TRANSLATE(sxtab), INTERPRETER_TRANSLATE(uhsubaddx), INTERPRETER_TRANSLATE(uhsub8),
|
INTERPRETER_TRANSLATE(uxtab),
|
||||||
INTERPRETER_TRANSLATE(uhsub16), INTERPRETER_TRANSLATE(uhaddsubx), INTERPRETER_TRANSLATE(uhadd8),
|
INTERPRETER_TRANSLATE(ssub8),
|
||||||
INTERPRETER_TRANSLATE(uhadd16), INTERPRETER_TRANSLATE(uaddsubx), INTERPRETER_TRANSLATE(uadd8),
|
INTERPRETER_TRANSLATE(shsub8),
|
||||||
INTERPRETER_TRANSLATE(uadd16), INTERPRETER_TRANSLATE(sxtah), INTERPRETER_TRANSLATE(sxtab16),
|
INTERPRETER_TRANSLATE(ssubaddx),
|
||||||
INTERPRETER_TRANSLATE(qadd8), INTERPRETER_TRANSLATE(bxj), INTERPRETER_TRANSLATE(clz),
|
INTERPRETER_TRANSLATE(strex),
|
||||||
INTERPRETER_TRANSLATE(uxtah), INTERPRETER_TRANSLATE(bx), INTERPRETER_TRANSLATE(rev),
|
INTERPRETER_TRANSLATE(strexb),
|
||||||
INTERPRETER_TRANSLATE(blx), INTERPRETER_TRANSLATE(revsh), INTERPRETER_TRANSLATE(qadd),
|
INTERPRETER_TRANSLATE(swp),
|
||||||
INTERPRETER_TRANSLATE(qadd16), INTERPRETER_TRANSLATE(qaddsubx), INTERPRETER_TRANSLATE(ldrex),
|
INTERPRETER_TRANSLATE(swpb),
|
||||||
INTERPRETER_TRANSLATE(qdadd), INTERPRETER_TRANSLATE(qdsub), INTERPRETER_TRANSLATE(qsub),
|
INTERPRETER_TRANSLATE(ssub16),
|
||||||
INTERPRETER_TRANSLATE(ldrexb), INTERPRETER_TRANSLATE(qsub8), INTERPRETER_TRANSLATE(qsub16),
|
INTERPRETER_TRANSLATE(ssat16),
|
||||||
INTERPRETER_TRANSLATE(smuad), INTERPRETER_TRANSLATE(smmul), INTERPRETER_TRANSLATE(smusd),
|
INTERPRETER_TRANSLATE(shsubaddx),
|
||||||
INTERPRETER_TRANSLATE(smlsd), INTERPRETER_TRANSLATE(smlsld), INTERPRETER_TRANSLATE(smmla),
|
INTERPRETER_TRANSLATE(qsubaddx),
|
||||||
INTERPRETER_TRANSLATE(smmls), INTERPRETER_TRANSLATE(smlald), INTERPRETER_TRANSLATE(smlad),
|
INTERPRETER_TRANSLATE(shaddsubx),
|
||||||
INTERPRETER_TRANSLATE(smlaw), INTERPRETER_TRANSLATE(smulw), INTERPRETER_TRANSLATE(pkhtb),
|
INTERPRETER_TRANSLATE(shadd8),
|
||||||
INTERPRETER_TRANSLATE(pkhbt), INTERPRETER_TRANSLATE(smul), INTERPRETER_TRANSLATE(smlalxy),
|
INTERPRETER_TRANSLATE(shadd16),
|
||||||
INTERPRETER_TRANSLATE(smla), INTERPRETER_TRANSLATE(mcrr), INTERPRETER_TRANSLATE(mrrc),
|
INTERPRETER_TRANSLATE(sel),
|
||||||
INTERPRETER_TRANSLATE(cmp), INTERPRETER_TRANSLATE(tst), INTERPRETER_TRANSLATE(teq),
|
INTERPRETER_TRANSLATE(saddsubx),
|
||||||
INTERPRETER_TRANSLATE(cmn), INTERPRETER_TRANSLATE(smull), INTERPRETER_TRANSLATE(umull),
|
INTERPRETER_TRANSLATE(sadd8),
|
||||||
INTERPRETER_TRANSLATE(umlal), INTERPRETER_TRANSLATE(smlal), INTERPRETER_TRANSLATE(mul),
|
INTERPRETER_TRANSLATE(sadd16),
|
||||||
INTERPRETER_TRANSLATE(mla), INTERPRETER_TRANSLATE(ssat), INTERPRETER_TRANSLATE(usat),
|
INTERPRETER_TRANSLATE(shsub16),
|
||||||
INTERPRETER_TRANSLATE(mrs), INTERPRETER_TRANSLATE(msr), INTERPRETER_TRANSLATE(and),
|
INTERPRETER_TRANSLATE(umaal),
|
||||||
INTERPRETER_TRANSLATE(bic), INTERPRETER_TRANSLATE(ldm), INTERPRETER_TRANSLATE(eor),
|
INTERPRETER_TRANSLATE(uxtab16),
|
||||||
INTERPRETER_TRANSLATE(add), INTERPRETER_TRANSLATE(rsb), INTERPRETER_TRANSLATE(rsc),
|
INTERPRETER_TRANSLATE(usubaddx),
|
||||||
INTERPRETER_TRANSLATE(sbc), INTERPRETER_TRANSLATE(adc), INTERPRETER_TRANSLATE(sub),
|
INTERPRETER_TRANSLATE(usub8),
|
||||||
INTERPRETER_TRANSLATE(orr), INTERPRETER_TRANSLATE(mvn), INTERPRETER_TRANSLATE(mov),
|
INTERPRETER_TRANSLATE(usub16),
|
||||||
INTERPRETER_TRANSLATE(stm), INTERPRETER_TRANSLATE(ldm), INTERPRETER_TRANSLATE(ldrsh),
|
INTERPRETER_TRANSLATE(usat16),
|
||||||
INTERPRETER_TRANSLATE(stm), INTERPRETER_TRANSLATE(ldm), INTERPRETER_TRANSLATE(ldrsb),
|
INTERPRETER_TRANSLATE(usada8),
|
||||||
INTERPRETER_TRANSLATE(strd), INTERPRETER_TRANSLATE(ldrh), INTERPRETER_TRANSLATE(strh),
|
INTERPRETER_TRANSLATE(uqsubaddx),
|
||||||
INTERPRETER_TRANSLATE(ldrd), INTERPRETER_TRANSLATE(strt), INTERPRETER_TRANSLATE(strbt),
|
INTERPRETER_TRANSLATE(uqsub8),
|
||||||
INTERPRETER_TRANSLATE(ldrbt), INTERPRETER_TRANSLATE(ldrt), INTERPRETER_TRANSLATE(mrc),
|
INTERPRETER_TRANSLATE(uqsub16),
|
||||||
INTERPRETER_TRANSLATE(mcr), INTERPRETER_TRANSLATE(msr), INTERPRETER_TRANSLATE(msr),
|
INTERPRETER_TRANSLATE(uqaddsubx),
|
||||||
INTERPRETER_TRANSLATE(msr), INTERPRETER_TRANSLATE(msr), INTERPRETER_TRANSLATE(msr),
|
INTERPRETER_TRANSLATE(uqadd8),
|
||||||
INTERPRETER_TRANSLATE(ldrb), INTERPRETER_TRANSLATE(strb), INTERPRETER_TRANSLATE(ldr),
|
INTERPRETER_TRANSLATE(uqadd16),
|
||||||
INTERPRETER_TRANSLATE(ldrcond), INTERPRETER_TRANSLATE(str), INTERPRETER_TRANSLATE(cdp),
|
INTERPRETER_TRANSLATE(sxtab),
|
||||||
INTERPRETER_TRANSLATE(stc), INTERPRETER_TRANSLATE(ldc), INTERPRETER_TRANSLATE(ldrexd),
|
INTERPRETER_TRANSLATE(uhsubaddx),
|
||||||
INTERPRETER_TRANSLATE(strexd), INTERPRETER_TRANSLATE(ldrexh), INTERPRETER_TRANSLATE(strexh),
|
INTERPRETER_TRANSLATE(uhsub8),
|
||||||
INTERPRETER_TRANSLATE(nop), INTERPRETER_TRANSLATE(yield), INTERPRETER_TRANSLATE(wfe),
|
INTERPRETER_TRANSLATE(uhsub16),
|
||||||
INTERPRETER_TRANSLATE(wfi), INTERPRETER_TRANSLATE(sev), INTERPRETER_TRANSLATE(swi),
|
INTERPRETER_TRANSLATE(uhaddsubx),
|
||||||
|
INTERPRETER_TRANSLATE(uhadd8),
|
||||||
|
INTERPRETER_TRANSLATE(uhadd16),
|
||||||
|
INTERPRETER_TRANSLATE(uaddsubx),
|
||||||
|
INTERPRETER_TRANSLATE(uadd8),
|
||||||
|
INTERPRETER_TRANSLATE(uadd16),
|
||||||
|
INTERPRETER_TRANSLATE(sxtah),
|
||||||
|
INTERPRETER_TRANSLATE(sxtab16),
|
||||||
|
INTERPRETER_TRANSLATE(qadd8),
|
||||||
|
INTERPRETER_TRANSLATE(bxj),
|
||||||
|
INTERPRETER_TRANSLATE(clz),
|
||||||
|
INTERPRETER_TRANSLATE(uxtah),
|
||||||
|
INTERPRETER_TRANSLATE(bx),
|
||||||
|
INTERPRETER_TRANSLATE(rev),
|
||||||
|
INTERPRETER_TRANSLATE(blx),
|
||||||
|
INTERPRETER_TRANSLATE(revsh),
|
||||||
|
INTERPRETER_TRANSLATE(qadd),
|
||||||
|
INTERPRETER_TRANSLATE(qadd16),
|
||||||
|
INTERPRETER_TRANSLATE(qaddsubx),
|
||||||
|
INTERPRETER_TRANSLATE(ldrex),
|
||||||
|
INTERPRETER_TRANSLATE(qdadd),
|
||||||
|
INTERPRETER_TRANSLATE(qdsub),
|
||||||
|
INTERPRETER_TRANSLATE(qsub),
|
||||||
|
INTERPRETER_TRANSLATE(ldrexb),
|
||||||
|
INTERPRETER_TRANSLATE(qsub8),
|
||||||
|
INTERPRETER_TRANSLATE(qsub16),
|
||||||
|
INTERPRETER_TRANSLATE(smuad),
|
||||||
|
INTERPRETER_TRANSLATE(smmul),
|
||||||
|
INTERPRETER_TRANSLATE(smusd),
|
||||||
|
INTERPRETER_TRANSLATE(smlsd),
|
||||||
|
INTERPRETER_TRANSLATE(smlsld),
|
||||||
|
INTERPRETER_TRANSLATE(smmla),
|
||||||
|
INTERPRETER_TRANSLATE(smmls),
|
||||||
|
INTERPRETER_TRANSLATE(smlald),
|
||||||
|
INTERPRETER_TRANSLATE(smlad),
|
||||||
|
INTERPRETER_TRANSLATE(smlaw),
|
||||||
|
INTERPRETER_TRANSLATE(smulw),
|
||||||
|
INTERPRETER_TRANSLATE(pkhtb),
|
||||||
|
INTERPRETER_TRANSLATE(pkhbt),
|
||||||
|
INTERPRETER_TRANSLATE(smul),
|
||||||
|
INTERPRETER_TRANSLATE(smlalxy),
|
||||||
|
INTERPRETER_TRANSLATE(smla),
|
||||||
|
INTERPRETER_TRANSLATE(mcrr),
|
||||||
|
INTERPRETER_TRANSLATE(mrrc),
|
||||||
|
INTERPRETER_TRANSLATE(cmp),
|
||||||
|
INTERPRETER_TRANSLATE(tst),
|
||||||
|
INTERPRETER_TRANSLATE(teq),
|
||||||
|
INTERPRETER_TRANSLATE(cmn),
|
||||||
|
INTERPRETER_TRANSLATE(smull),
|
||||||
|
INTERPRETER_TRANSLATE(umull),
|
||||||
|
INTERPRETER_TRANSLATE(umlal),
|
||||||
|
INTERPRETER_TRANSLATE(smlal),
|
||||||
|
INTERPRETER_TRANSLATE(mul),
|
||||||
|
INTERPRETER_TRANSLATE(mla),
|
||||||
|
INTERPRETER_TRANSLATE(ssat),
|
||||||
|
INTERPRETER_TRANSLATE(usat),
|
||||||
|
INTERPRETER_TRANSLATE(mrs),
|
||||||
|
INTERPRETER_TRANSLATE(msr),
|
||||||
|
INTERPRETER_TRANSLATE(and),
|
||||||
|
INTERPRETER_TRANSLATE(bic),
|
||||||
|
INTERPRETER_TRANSLATE(ldm),
|
||||||
|
INTERPRETER_TRANSLATE(eor),
|
||||||
|
INTERPRETER_TRANSLATE(add),
|
||||||
|
INTERPRETER_TRANSLATE(rsb),
|
||||||
|
INTERPRETER_TRANSLATE(rsc),
|
||||||
|
INTERPRETER_TRANSLATE(sbc),
|
||||||
|
INTERPRETER_TRANSLATE(adc),
|
||||||
|
INTERPRETER_TRANSLATE(sub),
|
||||||
|
INTERPRETER_TRANSLATE(orr),
|
||||||
|
INTERPRETER_TRANSLATE(mvn),
|
||||||
|
INTERPRETER_TRANSLATE(mov),
|
||||||
|
INTERPRETER_TRANSLATE(stm),
|
||||||
|
INTERPRETER_TRANSLATE(ldm),
|
||||||
|
INTERPRETER_TRANSLATE(ldrsh),
|
||||||
|
INTERPRETER_TRANSLATE(stm),
|
||||||
|
INTERPRETER_TRANSLATE(ldm),
|
||||||
|
INTERPRETER_TRANSLATE(ldrsb),
|
||||||
|
INTERPRETER_TRANSLATE(strd),
|
||||||
|
INTERPRETER_TRANSLATE(ldrh),
|
||||||
|
INTERPRETER_TRANSLATE(strh),
|
||||||
|
INTERPRETER_TRANSLATE(ldrd),
|
||||||
|
INTERPRETER_TRANSLATE(strt),
|
||||||
|
INTERPRETER_TRANSLATE(strbt),
|
||||||
|
INTERPRETER_TRANSLATE(ldrbt),
|
||||||
|
INTERPRETER_TRANSLATE(ldrt),
|
||||||
|
INTERPRETER_TRANSLATE(mrc),
|
||||||
|
INTERPRETER_TRANSLATE(mcr),
|
||||||
|
INTERPRETER_TRANSLATE(msr),
|
||||||
|
INTERPRETER_TRANSLATE(msr),
|
||||||
|
INTERPRETER_TRANSLATE(msr),
|
||||||
|
INTERPRETER_TRANSLATE(msr),
|
||||||
|
INTERPRETER_TRANSLATE(msr),
|
||||||
|
INTERPRETER_TRANSLATE(ldrb),
|
||||||
|
INTERPRETER_TRANSLATE(strb),
|
||||||
|
INTERPRETER_TRANSLATE(ldr),
|
||||||
|
INTERPRETER_TRANSLATE(ldrcond),
|
||||||
|
INTERPRETER_TRANSLATE(str),
|
||||||
|
INTERPRETER_TRANSLATE(cdp),
|
||||||
|
INTERPRETER_TRANSLATE(stc),
|
||||||
|
INTERPRETER_TRANSLATE(ldc),
|
||||||
|
INTERPRETER_TRANSLATE(ldrexd),
|
||||||
|
INTERPRETER_TRANSLATE(strexd),
|
||||||
|
INTERPRETER_TRANSLATE(ldrexh),
|
||||||
|
INTERPRETER_TRANSLATE(strexh),
|
||||||
|
INTERPRETER_TRANSLATE(nop),
|
||||||
|
INTERPRETER_TRANSLATE(yield),
|
||||||
|
INTERPRETER_TRANSLATE(wfe),
|
||||||
|
INTERPRETER_TRANSLATE(wfi),
|
||||||
|
INTERPRETER_TRANSLATE(sev),
|
||||||
|
INTERPRETER_TRANSLATE(swi),
|
||||||
INTERPRETER_TRANSLATE(bbl),
|
INTERPRETER_TRANSLATE(bbl),
|
||||||
|
|
||||||
// All the thumb instructions should be placed the end of table
|
// All the thumb instructions should be placed the end of table
|
||||||
INTERPRETER_TRANSLATE(b_2_thumb), INTERPRETER_TRANSLATE(b_cond_thumb),
|
INTERPRETER_TRANSLATE(b_2_thumb),
|
||||||
INTERPRETER_TRANSLATE(bl_1_thumb), INTERPRETER_TRANSLATE(bl_2_thumb),
|
INTERPRETER_TRANSLATE(b_cond_thumb),
|
||||||
|
INTERPRETER_TRANSLATE(bl_1_thumb),
|
||||||
|
INTERPRETER_TRANSLATE(bl_2_thumb),
|
||||||
INTERPRETER_TRANSLATE(blx_1_thumb),
|
INTERPRETER_TRANSLATE(blx_1_thumb),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -58,7 +58,9 @@
|
|||||||
#include "core/arm/skyeye_common/vfp/vfp_helper.h"
|
#include "core/arm/skyeye_common/vfp/vfp_helper.h"
|
||||||
|
|
||||||
static struct vfp_double vfp_double_default_qnan = {
|
static struct vfp_double vfp_double_default_qnan = {
|
||||||
2047, 0, VFP_DOUBLE_SIGNIFICAND_QNAN,
|
2047,
|
||||||
|
0,
|
||||||
|
VFP_DOUBLE_SIGNIFICAND_QNAN,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void vfp_double_dump(const char* str, struct vfp_double* d) {
|
static void vfp_double_dump(const char* str, struct vfp_double* d) {
|
||||||
|
@ -61,7 +61,9 @@
|
|||||||
#include "core/arm/skyeye_common/vfp/vfp_helper.h"
|
#include "core/arm/skyeye_common/vfp/vfp_helper.h"
|
||||||
|
|
||||||
static struct vfp_single vfp_single_default_qnan = {
|
static struct vfp_single vfp_single_default_qnan = {
|
||||||
255, 0, VFP_SINGLE_SIGNIFICAND_QNAN,
|
255,
|
||||||
|
0,
|
||||||
|
VFP_SINGLE_SIGNIFICAND_QNAN,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void vfp_single_dump(const char* str, struct vfp_single* s) {
|
static void vfp_single_dump(const char* str, struct vfp_single* s) {
|
||||||
|
@ -118,4 +118,4 @@ std::vector<u8> Path::AsBinary() const {
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} // namespace FileSys
|
||||||
|
@ -245,8 +245,9 @@ void ArchiveFactory_SelfNCCH::Register(Loader::AppLoader& app_loader) {
|
|||||||
program_id);
|
program_id);
|
||||||
|
|
||||||
if (ncch_data.find(program_id) != ncch_data.end()) {
|
if (ncch_data.find(program_id) != ncch_data.end()) {
|
||||||
LOG_WARNING(Service_FS, "Registering program %016" PRIX64
|
LOG_WARNING(Service_FS,
|
||||||
" with SelfNCCH will override existing mapping",
|
"Registering program %016" PRIX64
|
||||||
|
" with SelfNCCH will override existing mapping",
|
||||||
program_id);
|
program_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -260,9 +261,9 @@ void ArchiveFactory_SelfNCCH::Register(Loader::AppLoader& app_loader) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<FileUtil::IOFile> update_romfs_file;
|
std::shared_ptr<FileUtil::IOFile> update_romfs_file;
|
||||||
if (Loader::ResultStatus::Success ==
|
if (Loader::ResultStatus::Success == app_loader.ReadUpdateRomFS(update_romfs_file,
|
||||||
app_loader.ReadUpdateRomFS(update_romfs_file, data.update_romfs_offset,
|
data.update_romfs_offset,
|
||||||
data.update_romfs_size)) {
|
data.update_romfs_size)) {
|
||||||
|
|
||||||
data.update_romfs_file = std::move(update_romfs_file);
|
data.update_romfs_file = std::move(update_romfs_file);
|
||||||
}
|
}
|
||||||
|
@ -225,4 +225,4 @@ void CIAContainer::Print() const {
|
|||||||
LOG_DEBUG(Service_FS, "Content %x Offset: 0x%08" PRIx64 " bytes", i, GetContentOffset(i));
|
LOG_DEBUG(Service_FS, "Content %x Offset: 0x%08" PRIx64 " bytes", i, GetContentOffset(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} // namespace FileSys
|
||||||
|
@ -215,13 +215,13 @@ public:
|
|||||||
u64& size);
|
u64& size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the override RomFS of the NCCH container
|
* Get the override RomFS of the NCCH container
|
||||||
* Since the RomFS can be huge, we return a file reference instead of copying to a buffer
|
* Since the RomFS can be huge, we return a file reference instead of copying to a buffer
|
||||||
* @param romfs_file The file containing the RomFS
|
* @param romfs_file The file containing the RomFS
|
||||||
* @param offset The offset the romfs begins on
|
* @param offset The offset the romfs begins on
|
||||||
* @param size The size of the romfs
|
* @param size The size of the romfs
|
||||||
* @return ResultStatus result of function
|
* @return ResultStatus result of function
|
||||||
*/
|
*/
|
||||||
Loader::ResultStatus ReadOverrideRomFS(std::shared_ptr<FileUtil::IOFile>& romfs_file,
|
Loader::ResultStatus ReadOverrideRomFS(std::shared_ptr<FileUtil::IOFile>& romfs_file,
|
||||||
u64& offset, u64& size);
|
u64& offset, u64& size);
|
||||||
|
|
||||||
|
@ -87,9 +87,9 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the framebuffer layout (width, height, and screen regions)
|
* Gets the framebuffer layout (width, height, and screen regions)
|
||||||
* @note This method is thread-safe
|
* @note This method is thread-safe
|
||||||
*/
|
*/
|
||||||
const Layout::FramebufferLayout& GetFramebufferLayout() const {
|
const Layout::FramebufferLayout& GetFramebufferLayout() const {
|
||||||
return framebuffer_layout;
|
return framebuffer_layout;
|
||||||
}
|
}
|
||||||
|
@ -109,11 +109,10 @@ FramebufferLayout LargeFrameLayout(unsigned width, unsigned height, bool swapped
|
|||||||
// To do that, find the total emulation box and maximize that based on window size
|
// To do that, find the total emulation box and maximize that based on window size
|
||||||
float window_aspect_ratio = static_cast<float>(height) / width;
|
float window_aspect_ratio = static_cast<float>(height) / width;
|
||||||
float emulation_aspect_ratio =
|
float emulation_aspect_ratio =
|
||||||
swapped
|
swapped ? Core::kScreenBottomHeight * 4 /
|
||||||
? Core::kScreenBottomHeight * 4 /
|
(Core::kScreenBottomWidth * 4.0f + Core::kScreenTopWidth)
|
||||||
(Core::kScreenBottomWidth * 4.0f + Core::kScreenTopWidth)
|
: Core::kScreenTopHeight * 4 /
|
||||||
: Core::kScreenTopHeight * 4 /
|
(Core::kScreenTopWidth * 4.0f + Core::kScreenBottomWidth);
|
||||||
(Core::kScreenTopWidth * 4.0f + Core::kScreenBottomWidth);
|
|
||||||
float large_screen_aspect_ratio = swapped ? BOT_SCREEN_ASPECT_RATIO : TOP_SCREEN_ASPECT_RATIO;
|
float large_screen_aspect_ratio = swapped ? BOT_SCREEN_ASPECT_RATIO : TOP_SCREEN_ASPECT_RATIO;
|
||||||
float small_screen_aspect_ratio = swapped ? TOP_SCREEN_ASPECT_RATIO : BOT_SCREEN_ASPECT_RATIO;
|
float small_screen_aspect_ratio = swapped ? TOP_SCREEN_ASPECT_RATIO : BOT_SCREEN_ASPECT_RATIO;
|
||||||
|
|
||||||
|
@ -54,14 +54,14 @@ FramebufferLayout SingleFrameLayout(unsigned width, unsigned height, bool is_swa
|
|||||||
FramebufferLayout LargeFrameLayout(unsigned width, unsigned height, bool is_swapped);
|
FramebufferLayout LargeFrameLayout(unsigned width, unsigned height, bool is_swapped);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Factory method for constructing a Frame with the Top screen and bottom
|
* Factory method for constructing a Frame with the Top screen and bottom
|
||||||
* screen side by side
|
* screen side by side
|
||||||
* This is useful for devices with small screens, like the GPDWin
|
* This is useful for devices with small screens, like the GPDWin
|
||||||
* @param width Window framebuffer width in pixels
|
* @param width Window framebuffer width in pixels
|
||||||
* @param height Window framebuffer height in pixels
|
* @param height Window framebuffer height in pixels
|
||||||
* @param is_swapped if true, the bottom screen will be the left display
|
* @param is_swapped if true, the bottom screen will be the left display
|
||||||
* @return Newly created FramebufferLayout object with default screen regions initialized
|
* @return Newly created FramebufferLayout object with default screen regions initialized
|
||||||
*/
|
*/
|
||||||
FramebufferLayout SideFrameLayout(unsigned width, unsigned height, bool is_swapped);
|
FramebufferLayout SideFrameLayout(unsigned width, unsigned height, bool is_swapped);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -183,11 +183,11 @@ static u8 NibbleToHex(u8 n) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts input hex string characters into an array of equivalent of u8 bytes.
|
* Converts input hex string characters into an array of equivalent of u8 bytes.
|
||||||
*
|
*
|
||||||
* @param src Pointer to array of output hex string characters.
|
* @param src Pointer to array of output hex string characters.
|
||||||
* @param len Length of src array.
|
* @param len Length of src array.
|
||||||
*/
|
*/
|
||||||
static u32 HexToInt(const u8* src, size_t len) {
|
static u32 HexToInt(const u8* src, size_t len) {
|
||||||
u32 output = 0;
|
u32 output = 0;
|
||||||
while (len-- > 0) {
|
while (len-- > 0) {
|
||||||
@ -1037,4 +1037,4 @@ bool GetCpuStepFlag() {
|
|||||||
void SetCpuStepFlag(bool is_step) {
|
void SetCpuStepFlag(bool is_step) {
|
||||||
step_loop = is_step;
|
step_loop = is_step;
|
||||||
}
|
}
|
||||||
};
|
}; // namespace GDBStub
|
||||||
|
@ -91,4 +91,4 @@ bool GetCpuStepFlag();
|
|||||||
* @param is_step
|
* @param is_step
|
||||||
*/
|
*/
|
||||||
void SetCpuStepFlag(bool is_step);
|
void SetCpuStepFlag(bool is_step);
|
||||||
}
|
} // namespace GDBStub
|
||||||
|
@ -31,7 +31,7 @@ struct hash<Service::APT::AppletId> {
|
|||||||
return std::hash<Type>()(static_cast<Type>(id_code));
|
return std::hash<Type>()(static_cast<Type>(id_code));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
} // namespace std
|
||||||
|
|
||||||
namespace HLE {
|
namespace HLE {
|
||||||
namespace Applets {
|
namespace Applets {
|
||||||
@ -134,5 +134,5 @@ void Init() {
|
|||||||
void Shutdown() {
|
void Shutdown() {
|
||||||
CoreTiming::RemoveEvent(applet_update_event);
|
CoreTiming::RemoveEvent(applet_update_event);
|
||||||
}
|
}
|
||||||
}
|
} // namespace Applets
|
||||||
} // namespace
|
} // namespace HLE
|
||||||
|
@ -86,5 +86,5 @@ void Init();
|
|||||||
|
|
||||||
/// Shuts down the HLE applets
|
/// Shuts down the HLE applets
|
||||||
void Shutdown();
|
void Shutdown();
|
||||||
}
|
} // namespace Applets
|
||||||
} // namespace
|
} // namespace HLE
|
||||||
|
@ -114,5 +114,5 @@ void SoftwareKeyboard::Finalize() {
|
|||||||
|
|
||||||
is_running = false;
|
is_running = false;
|
||||||
}
|
}
|
||||||
}
|
} // namespace Applets
|
||||||
} // namespace
|
} // namespace HLE
|
||||||
|
@ -82,5 +82,5 @@ private:
|
|||||||
/// Configuration of this instance of the SoftwareKeyboard, as received from the application
|
/// Configuration of this instance of the SoftwareKeyboard, as received from the application
|
||||||
SoftwareKeyboardConfig config;
|
SoftwareKeyboardConfig config;
|
||||||
};
|
};
|
||||||
}
|
} // namespace Applets
|
||||||
} // namespace
|
} // namespace HLE
|
||||||
|
@ -28,4 +28,4 @@ void Init() {
|
|||||||
config_mem.firm_ctr_sdk_ver = 0x0000F297;
|
config_mem.firm_ctr_sdk_ver = 0x0000F297;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace ConfigMem
|
||||||
|
@ -53,4 +53,4 @@ extern ConfigMemDef config_mem;
|
|||||||
|
|
||||||
void Init();
|
void Init();
|
||||||
|
|
||||||
} // namespace
|
} // namespace ConfigMem
|
||||||
|
@ -398,7 +398,7 @@ std::array<u32, N> RequestParser::PopHLEHandles() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline Kernel::SharedPtr<Kernel::Object> RequestParser::PopGenericObject() {
|
inline Kernel::SharedPtr<Kernel::Object> RequestParser::PopGenericObject() {
|
||||||
auto[handle] = PopHLEHandles<1>();
|
auto [handle] = PopHLEHandles<1>();
|
||||||
return context->GetIncomingHandle(handle);
|
return context->GetIncomingHandle(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,4 +39,4 @@ ResultVal<SharedPtr<ClientSession>> ClientPort::Connect() {
|
|||||||
return MakeResult(std::get<SharedPtr<ClientSession>>(sessions));
|
return MakeResult(std::get<SharedPtr<ClientSession>>(sessions));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -47,4 +47,4 @@ private:
|
|||||||
~ClientPort() override;
|
~ClientPort() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -52,4 +52,4 @@ ResultCode ClientSession::SendSyncRequest(SharedPtr<Thread> thread) {
|
|||||||
return server->HandleSyncRequest(std::move(thread));
|
return server->HandleSyncRequest(std::move(thread));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -50,4 +50,4 @@ private:
|
|||||||
~ClientSession() override;
|
~ClientSession() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -52,4 +52,4 @@ void Event::WakeupAllWaitingThreads() {
|
|||||||
signaled = false;
|
signaled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -49,4 +49,4 @@ private:
|
|||||||
~Event() override;
|
~Event() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -94,4 +94,4 @@ void HandleTable::Clear() {
|
|||||||
next_free_slot = 0;
|
next_free_slot = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -123,4 +123,4 @@ private:
|
|||||||
|
|
||||||
extern HandleTable g_handle_table;
|
extern HandleTable g_handle_table;
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -36,8 +36,9 @@ SharedPtr<Event> HLERequestContext::SleepClientThread(SharedPtr<Thread> thread,
|
|||||||
std::chrono::nanoseconds timeout,
|
std::chrono::nanoseconds timeout,
|
||||||
WakeupCallback&& callback) {
|
WakeupCallback&& callback) {
|
||||||
// Put the client thread to sleep until the wait event is signaled or the timeout expires.
|
// Put the client thread to sleep until the wait event is signaled or the timeout expires.
|
||||||
thread->wakeup_callback = [ context = *this, callback ](
|
thread->wakeup_callback = [context = *this, callback](ThreadWakeupReason reason,
|
||||||
ThreadWakeupReason reason, SharedPtr<Thread> thread, SharedPtr<WaitObject> object) mutable {
|
SharedPtr<Thread> thread,
|
||||||
|
SharedPtr<WaitObject> object) mutable {
|
||||||
ASSERT(thread->status == THREADSTATUS_WAIT_HLE_EVENT);
|
ASSERT(thread->status == THREADSTATUS_WAIT_HLE_EVENT);
|
||||||
callback(thread, context, reason);
|
callback(thread, context, reason);
|
||||||
|
|
||||||
|
@ -45,4 +45,4 @@ void Shutdown() {
|
|||||||
Kernel::MemoryShutdown();
|
Kernel::MemoryShutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -126,8 +126,9 @@ void HandleSpecialMapping(VMManager& address_space, const AddressMapping& mappin
|
|||||||
mapping_limit <= area.vaddr_base + area.size;
|
mapping_limit <= area.vaddr_base + area.size;
|
||||||
});
|
});
|
||||||
if (area == std::end(memory_areas)) {
|
if (area == std::end(memory_areas)) {
|
||||||
LOG_ERROR(Loader, "Unhandled special mapping: address=0x%08" PRIX32 " size=0x%" PRIX32
|
LOG_ERROR(Loader,
|
||||||
" read_only=%d unk_flag=%d",
|
"Unhandled special mapping: address=0x%08" PRIX32 " size=0x%" PRIX32
|
||||||
|
" read_only=%d unk_flag=%d",
|
||||||
mapping.address, mapping.size, mapping.read_only, mapping.unk_flag);
|
mapping.address, mapping.size, mapping.read_only, mapping.unk_flag);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -151,4 +151,4 @@ void ResourceLimitsInit() {
|
|||||||
|
|
||||||
void ResourceLimitsShutdown() {}
|
void ResourceLimitsShutdown() {}
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -123,4 +123,4 @@ void ResourceLimitsInit();
|
|||||||
// Destroys the resource limits
|
// Destroys the resource limits
|
||||||
void ResourceLimitsShutdown();
|
void ResourceLimitsShutdown();
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -52,4 +52,4 @@ ResultVal<s32> Semaphore::Release(s32 release_count) {
|
|||||||
return MakeResult<s32>(previous_count);
|
return MakeResult<s32>(previous_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <queue>
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <queue>
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
#include "core/hle/kernel/kernel.h"
|
#include "core/hle/kernel/kernel.h"
|
||||||
#include "core/hle/kernel/wait_object.h"
|
#include "core/hle/kernel/wait_object.h"
|
||||||
@ -56,4 +56,4 @@ private:
|
|||||||
~Semaphore() override;
|
~Semaphore() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -50,4 +50,4 @@ std::tuple<SharedPtr<ServerPort>, SharedPtr<ClientPort>> ServerPort::CreatePortP
|
|||||||
return std::make_tuple(std::move(server_port), std::move(client_port));
|
return std::make_tuple(std::move(server_port), std::move(client_port));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -72,4 +72,4 @@ private:
|
|||||||
~ServerPort() override;
|
~ServerPort() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -9,4 +9,4 @@ namespace Kernel {
|
|||||||
|
|
||||||
Session::Session() {}
|
Session::Session() {}
|
||||||
Session::~Session() {}
|
Session::~Session() {}
|
||||||
}
|
} // namespace Kernel
|
||||||
|
@ -24,4 +24,4 @@ public:
|
|||||||
ServerSession* server = nullptr; ///< The server endpoint of the session.
|
ServerSession* server = nullptr; ///< The server endpoint of the session.
|
||||||
SharedPtr<ClientPort> port; ///< The port that this session is associated with (optional).
|
SharedPtr<ClientPort> port; ///< The port that this session is associated with (optional).
|
||||||
};
|
};
|
||||||
}
|
} // namespace Kernel
|
||||||
|
@ -98,10 +98,10 @@ public:
|
|||||||
ResultCode Unmap(Process* target_process, VAddr address);
|
ResultCode Unmap(Process* target_process, VAddr address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets a pointer to the shared memory block
|
* Gets a pointer to the shared memory block
|
||||||
* @param offset Offset from the start of the shared memory block to get pointer
|
* @param offset Offset from the start of the shared memory block to get pointer
|
||||||
* @return Pointer to the shared memory block from the specified offset
|
* @return Pointer to the shared memory block from the specified offset
|
||||||
*/
|
*/
|
||||||
u8* GetPointer(u32 offset = 0);
|
u8* GetPointer(u32 offset = 0);
|
||||||
|
|
||||||
/// Process that created this shared memory block.
|
/// Process that created this shared memory block.
|
||||||
@ -129,4 +129,4 @@ private:
|
|||||||
~SharedMemory() override;
|
~SharedMemory() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -288,7 +288,6 @@ static ResultCode WaitSynchronization1(Handle handle, s64 nano_seconds) {
|
|||||||
|
|
||||||
thread->wakeup_callback = [](ThreadWakeupReason reason, SharedPtr<Thread> thread,
|
thread->wakeup_callback = [](ThreadWakeupReason reason, SharedPtr<Thread> thread,
|
||||||
SharedPtr<WaitObject> object) {
|
SharedPtr<WaitObject> object) {
|
||||||
|
|
||||||
ASSERT(thread->status == THREADSTATUS_WAIT_SYNCH_ANY);
|
ASSERT(thread->status == THREADSTATUS_WAIT_SYNCH_ANY);
|
||||||
|
|
||||||
if (reason == ThreadWakeupReason::Timeout) {
|
if (reason == ThreadWakeupReason::Timeout) {
|
||||||
@ -378,7 +377,6 @@ static ResultCode WaitSynchronizationN(s32* out, VAddr handles_address, s32 hand
|
|||||||
|
|
||||||
thread->wakeup_callback = [](ThreadWakeupReason reason, SharedPtr<Thread> thread,
|
thread->wakeup_callback = [](ThreadWakeupReason reason, SharedPtr<Thread> thread,
|
||||||
SharedPtr<WaitObject> object) {
|
SharedPtr<WaitObject> object) {
|
||||||
|
|
||||||
ASSERT(thread->status == THREADSTATUS_WAIT_SYNCH_ALL);
|
ASSERT(thread->status == THREADSTATUS_WAIT_SYNCH_ALL);
|
||||||
|
|
||||||
if (reason == ThreadWakeupReason::Timeout) {
|
if (reason == ThreadWakeupReason::Timeout) {
|
||||||
@ -439,7 +437,6 @@ static ResultCode WaitSynchronizationN(s32* out, VAddr handles_address, s32 hand
|
|||||||
|
|
||||||
thread->wakeup_callback = [](ThreadWakeupReason reason, SharedPtr<Thread> thread,
|
thread->wakeup_callback = [](ThreadWakeupReason reason, SharedPtr<Thread> thread,
|
||||||
SharedPtr<WaitObject> object) {
|
SharedPtr<WaitObject> object) {
|
||||||
|
|
||||||
ASSERT(thread->status == THREADSTATUS_WAIT_SYNCH_ANY);
|
ASSERT(thread->status == THREADSTATUS_WAIT_SYNCH_ANY);
|
||||||
|
|
||||||
if (reason == ThreadWakeupReason::Timeout) {
|
if (reason == ThreadWakeupReason::Timeout) {
|
||||||
@ -591,7 +588,6 @@ static ResultCode ReplyAndReceive(s32* index, VAddr handles_address, s32 handle_
|
|||||||
|
|
||||||
thread->wakeup_callback = [](ThreadWakeupReason reason, SharedPtr<Thread> thread,
|
thread->wakeup_callback = [](ThreadWakeupReason reason, SharedPtr<Thread> thread,
|
||||||
SharedPtr<WaitObject> object) {
|
SharedPtr<WaitObject> object) {
|
||||||
|
|
||||||
ASSERT(thread->status == THREADSTATUS_WAIT_SYNCH_ANY);
|
ASSERT(thread->status == THREADSTATUS_WAIT_SYNCH_ANY);
|
||||||
ASSERT(reason == ThreadWakeupReason::Signal);
|
ASSERT(reason == ThreadWakeupReason::Signal);
|
||||||
|
|
||||||
@ -770,8 +766,9 @@ static ResultCode CreateThread(Handle* out_handle, u32 priority, u32 entry_point
|
|||||||
|
|
||||||
Core::System::GetInstance().PrepareReschedule();
|
Core::System::GetInstance().PrepareReschedule();
|
||||||
|
|
||||||
LOG_TRACE(Kernel_SVC, "called entrypoint=0x%08X (%s), arg=0x%08X, stacktop=0x%08X, "
|
LOG_TRACE(Kernel_SVC,
|
||||||
"threadpriority=0x%08X, processorid=0x%08X : created handle=0x%08X",
|
"called entrypoint=0x%08X (%s), arg=0x%08X, stacktop=0x%08X, "
|
||||||
|
"threadpriority=0x%08X, processorid=0x%08X : created handle=0x%08X",
|
||||||
entry_point, name.c_str(), arg, stack_top, priority, processor_id, *out_handle);
|
entry_point, name.c_str(), arg, stack_top, priority, processor_id, *out_handle);
|
||||||
|
|
||||||
return RESULT_SUCCESS;
|
return RESULT_SUCCESS;
|
||||||
|
@ -111,4 +111,4 @@ void TimersInit() {
|
|||||||
|
|
||||||
void TimersShutdown() {}
|
void TimersShutdown() {}
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -76,4 +76,4 @@ void TimersInit();
|
|||||||
/// Tears down the timer variables
|
/// Tears down the timer variables
|
||||||
void TimersShutdown();
|
void TimersShutdown();
|
||||||
|
|
||||||
} // namespace
|
} // namespace Kernel
|
||||||
|
@ -18,7 +18,7 @@ namespace Service {
|
|||||||
namespace FS {
|
namespace FS {
|
||||||
enum class MediaType : u32;
|
enum class MediaType : u32;
|
||||||
}
|
}
|
||||||
}
|
} // namespace Service
|
||||||
|
|
||||||
namespace Service {
|
namespace Service {
|
||||||
namespace AM {
|
namespace AM {
|
||||||
|
@ -306,8 +306,9 @@ void Module::Interface::SendParameter(Kernel::HLERequestContext& ctx) {
|
|||||||
Kernel::SharedPtr<Kernel::Object> object = rp.PopGenericObject();
|
Kernel::SharedPtr<Kernel::Object> object = rp.PopGenericObject();
|
||||||
std::vector<u8> buffer = rp.PopStaticBuffer();
|
std::vector<u8> buffer = rp.PopStaticBuffer();
|
||||||
|
|
||||||
LOG_DEBUG(Service_APT, "called src_app_id=0x%08X, dst_app_id=0x%08X, signal_type=0x%08X,"
|
LOG_DEBUG(Service_APT,
|
||||||
"buffer_size=0x%08X",
|
"called src_app_id=0x%08X, dst_app_id=0x%08X, signal_type=0x%08X,"
|
||||||
|
"buffer_size=0x%08X",
|
||||||
static_cast<u32>(src_app_id), static_cast<u32>(dst_app_id),
|
static_cast<u32>(src_app_id), static_cast<u32>(dst_app_id),
|
||||||
static_cast<u32>(signal_type), buffer_size);
|
static_cast<u32>(signal_type), buffer_size);
|
||||||
|
|
||||||
@ -392,8 +393,9 @@ void Module::Interface::CancelParameter(Kernel::HLERequestContext& ctx) {
|
|||||||
rb.Push(apt->applet_manager->CancelParameter(check_sender, sender_appid, check_receiver,
|
rb.Push(apt->applet_manager->CancelParameter(check_sender, sender_appid, check_receiver,
|
||||||
receiver_appid));
|
receiver_appid));
|
||||||
|
|
||||||
LOG_DEBUG(Service_APT, "called check_sender=%u, sender_appid=0x%08X, "
|
LOG_DEBUG(Service_APT,
|
||||||
"check_receiver=%u, receiver_appid=0x%08X",
|
"called check_sender=%u, sender_appid=0x%08X, "
|
||||||
|
"check_receiver=%u, receiver_appid=0x%08X",
|
||||||
check_sender, static_cast<u32>(sender_appid), check_receiver,
|
check_sender, static_cast<u32>(sender_appid), check_receiver,
|
||||||
static_cast<u32>(receiver_appid));
|
static_cast<u32>(receiver_appid));
|
||||||
}
|
}
|
||||||
|
@ -111,9 +111,10 @@ void RegisterPrivateClientCert(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff2_size << 4 | 0xA);
|
cmd_buff[2] = (buff2_size << 4 | 0xA);
|
||||||
cmd_buff[3] = buff2_addr;
|
cmd_buff[3] = buff2_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"translation1=0x%08X, buff1_addr=0x%08X, buff1_size=0x%08X, "
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, "
|
||||||
"translation2=0x%08X, buff2_addr=0x%08X, buff2_size=0x%08X",
|
"translation1=0x%08X, buff1_addr=0x%08X, buff1_size=0x%08X, "
|
||||||
|
"translation2=0x%08X, buff2_addr=0x%08X, buff2_size=0x%08X",
|
||||||
unk_param1, unk_param2, translation1, buff1_addr, buff1_size, translation2,
|
unk_param1, unk_param2, translation1, buff1_addr, buff1_size, translation2,
|
||||||
buff2_addr, buff2_size);
|
buff2_addr, buff2_size);
|
||||||
}
|
}
|
||||||
@ -177,8 +178,9 @@ void RegisterTask(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff_size << 4 | 0xA);
|
cmd_buff[2] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[3] = buff_addr;
|
cmd_buff[3] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
||||||
|
"translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, unk_param3, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, unk_param3, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,8 +198,9 @@ void UnregisterTask(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff_size << 4 | 0xA);
|
cmd_buff[2] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[3] = buff_addr;
|
cmd_buff[3] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -215,8 +218,9 @@ void ReconfigureTask(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff_size << 4 | 0xA);
|
cmd_buff[2] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[3] = buff_addr;
|
cmd_buff[3] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -263,9 +267,10 @@ void GetNsDataIdList(Service::Interface* self) {
|
|||||||
cmd_buff[4] = (buff_size << 4 | 0xC);
|
cmd_buff[4] = (buff_size << 4 | 0xC);
|
||||||
cmd_buff[5] = buff_addr;
|
cmd_buff[5] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"unk_param4=0x%08X, translation=0x%08X, "
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"unk_param4=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -287,9 +292,10 @@ void GetOwnNsDataIdList(Service::Interface* self) {
|
|||||||
cmd_buff[4] = (buff_size << 4 | 0xC);
|
cmd_buff[4] = (buff_size << 4 | 0xC);
|
||||||
cmd_buff[5] = buff_addr;
|
cmd_buff[5] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"unk_param4=0x%08X, translation=0x%08X, "
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"unk_param4=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -311,9 +317,10 @@ void GetNewDataNsDataIdList(Service::Interface* self) {
|
|||||||
cmd_buff[4] = (buff_size << 4 | 0xC);
|
cmd_buff[4] = (buff_size << 4 | 0xC);
|
||||||
cmd_buff[5] = buff_addr;
|
cmd_buff[5] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"unk_param4=0x%08X, translation=0x%08X, "
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"unk_param4=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -335,9 +342,10 @@ void GetOwnNewDataNsDataIdList(Service::Interface* self) {
|
|||||||
cmd_buff[4] = (buff_size << 4 | 0xC);
|
cmd_buff[4] = (buff_size << 4 | 0xC);
|
||||||
cmd_buff[5] = buff_addr;
|
cmd_buff[5] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"unk_param4=0x%08X, translation=0x%08X, "
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"unk_param4=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -355,8 +363,9 @@ void SendProperty(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff_size << 4 | 0xA);
|
cmd_buff[2] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[3] = buff_addr;
|
cmd_buff[3] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -373,8 +382,9 @@ void SendPropertyHandle(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff_size << 4 | 0xA);
|
cmd_buff[2] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[3] = buff_addr;
|
cmd_buff[3] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, translation, buff_addr, buff_size);
|
unk_param1, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -392,8 +402,9 @@ void ReceiveProperty(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff_size << 4 | 0xC);
|
cmd_buff[2] = (buff_size << 4 | 0xC);
|
||||||
cmd_buff[3] = buff_addr;
|
cmd_buff[3] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, buff_size=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"translation=0x%08X, buff_addr=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, buff_size=0x%08X, "
|
||||||
|
"translation=0x%08X, buff_addr=0x%08X",
|
||||||
unk_param1, buff_size, translation, buff_addr);
|
unk_param1, buff_size, translation, buff_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -411,8 +422,9 @@ void UpdateTaskInterval(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff_size << 4 | 0xA);
|
cmd_buff[2] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[3] = buff_addr;
|
cmd_buff[3] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, "
|
||||||
|
"translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -429,8 +441,9 @@ void UpdateTaskCount(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff_size << 4 | 0xA);
|
cmd_buff[2] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[3] = buff_addr;
|
cmd_buff[3] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) buff_size=0x%08X, unk_param2=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"translation=0x%08X, buff_addr=0x%08X",
|
"(STUBBED) buff_size=0x%08X, unk_param2=0x%08X, "
|
||||||
|
"translation=0x%08X, buff_addr=0x%08X",
|
||||||
buff_size, unk_param2, translation, buff_addr);
|
buff_size, unk_param2, translation, buff_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -448,8 +461,9 @@ void GetTaskInterval(Service::Interface* self) {
|
|||||||
cmd_buff[3] = (buff_size << 4 | 0xA);
|
cmd_buff[3] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[4] = buff_addr;
|
cmd_buff[4] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, translation, buff_addr, buff_size);
|
unk_param1, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -467,8 +481,9 @@ void GetTaskCount(Service::Interface* self) {
|
|||||||
cmd_buff[3] = (buff_size << 4 | 0xA);
|
cmd_buff[3] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[4] = buff_addr;
|
cmd_buff[4] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, translation, buff_addr, buff_size);
|
unk_param1, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -486,8 +501,9 @@ void GetTaskServiceStatus(Service::Interface* self) {
|
|||||||
cmd_buff[3] = (buff_size << 4 | 0xA);
|
cmd_buff[3] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[4] = buff_addr;
|
cmd_buff[4] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, translation, buff_addr, buff_size);
|
unk_param1, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -504,8 +520,9 @@ void StartTask(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff_size << 4 | 0xA);
|
cmd_buff[2] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[3] = buff_addr;
|
cmd_buff[3] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, translation, buff_addr, buff_size);
|
unk_param1, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -522,8 +539,9 @@ void StartTaskImmediate(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff_size << 4 | 0xA);
|
cmd_buff[2] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[3] = buff_addr;
|
cmd_buff[3] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, translation, buff_addr, buff_size);
|
unk_param1, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -540,8 +558,9 @@ void CancelTask(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff_size << 4 | 0xA);
|
cmd_buff[2] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[3] = buff_addr;
|
cmd_buff[3] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, translation, buff_addr, buff_size);
|
unk_param1, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -572,8 +591,9 @@ void GetTaskState(Service::Interface* self) {
|
|||||||
cmd_buff[5] = (buff_size << 4 | 0xA);
|
cmd_buff[5] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[6] = buff_addr;
|
cmd_buff[6] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) buff_size=0x%08X, unk_param2=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"translation=0x%08X, buff_addr=0x%08X",
|
"(STUBBED) buff_size=0x%08X, unk_param2=0x%08X, "
|
||||||
|
"translation=0x%08X, buff_addr=0x%08X",
|
||||||
buff_size, unk_param2, translation, buff_addr);
|
buff_size, unk_param2, translation, buff_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -593,8 +613,9 @@ void GetTaskResult(Service::Interface* self) {
|
|||||||
cmd_buff[5] = (buff_size << 4 | 0xA);
|
cmd_buff[5] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[6] = buff_addr;
|
cmd_buff[6] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, translation, buff_addr, buff_size);
|
unk_param1, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -614,8 +635,9 @@ void GetTaskCommErrorCode(Service::Interface* self) {
|
|||||||
cmd_buff[5] = (buff_size << 4 | 0xA);
|
cmd_buff[5] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[6] = buff_addr;
|
cmd_buff[6] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, translation, buff_addr, buff_size);
|
unk_param1, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -635,8 +657,9 @@ void GetTaskStatus(Service::Interface* self) {
|
|||||||
cmd_buff[3] = (buff_size << 4 | 0xA);
|
cmd_buff[3] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[4] = buff_addr;
|
cmd_buff[4] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
||||||
|
"translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, unk_param3, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, unk_param3, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -655,8 +678,9 @@ void GetTaskError(Service::Interface* self) {
|
|||||||
cmd_buff[3] = (buff_size << 4 | 0xA);
|
cmd_buff[3] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[4] = buff_addr;
|
cmd_buff[4] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -674,8 +698,9 @@ void GetTaskInfo(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff_size << 4 | 0xA);
|
cmd_buff[2] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[3] = buff_addr;
|
cmd_buff[3] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -705,8 +730,9 @@ void GetNsDataHeaderInfo(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff_size << 4 | 0xC);
|
cmd_buff[2] = (buff_size << 4 | 0xC);
|
||||||
cmd_buff[3] = buff_addr;
|
cmd_buff[3] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
||||||
|
"translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, unk_param3, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, unk_param3, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -728,9 +754,10 @@ void ReadNsData(Service::Interface* self) {
|
|||||||
cmd_buff[4] = (buff_size << 4 | 0xC);
|
cmd_buff[4] = (buff_size << 4 | 0xC);
|
||||||
cmd_buff[5] = buff_addr;
|
cmd_buff[5] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"unk_param4=0x%08X, translation=0x%08X, "
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
||||||
"buff_addr=0x%08X, buff_size=0x%08X",
|
"unk_param4=0x%08X, translation=0x%08X, "
|
||||||
|
"buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -822,8 +849,9 @@ void RegisterStorageEntry(Service::Interface* self) {
|
|||||||
cmd_buff[0] = IPC::MakeHeader(0x2F, 0x1, 0);
|
cmd_buff[0] = IPC::MakeHeader(0x2F, 0x1, 0);
|
||||||
cmd_buff[1] = RESULT_SUCCESS.raw;
|
cmd_buff[1] = RESULT_SUCCESS.raw;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"unk_param4=0x%08X, unk_param5=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
||||||
|
"unk_param4=0x%08X, unk_param5=0x%08X",
|
||||||
unk_param1, unk_param2, unk_param3, unk_param4, unk_param5);
|
unk_param1, unk_param2, unk_param3, unk_param4, unk_param5);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -849,8 +877,9 @@ void SetStorageOption(Service::Interface* self) {
|
|||||||
cmd_buff[0] = IPC::MakeHeader(0x31, 0x1, 0);
|
cmd_buff[0] = IPC::MakeHeader(0x31, 0x1, 0);
|
||||||
cmd_buff[1] = RESULT_SUCCESS.raw;
|
cmd_buff[1] = RESULT_SUCCESS.raw;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"unk_param3=0x%08X, unk_param4=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, "
|
||||||
|
"unk_param3=0x%08X, unk_param4=0x%08X",
|
||||||
unk_param1, unk_param2, unk_param3, unk_param4);
|
unk_param1, unk_param2, unk_param3, unk_param4);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -880,8 +909,9 @@ void StartBgImmediate(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff_size << 4 | 0xA);
|
cmd_buff[2] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[3] = buff_addr;
|
cmd_buff[3] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) buff_size=0x%08X, unk_param2=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"translation=0x%08X, buff_addr=0x%08X",
|
"(STUBBED) buff_size=0x%08X, unk_param2=0x%08X, "
|
||||||
|
"translation=0x%08X, buff_addr=0x%08X",
|
||||||
unk_param1, translation, buff_addr, buff_size);
|
unk_param1, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -899,8 +929,9 @@ void GetTaskActivePriority(Service::Interface* self) {
|
|||||||
cmd_buff[3] = (buff_size << 4 | 0xA);
|
cmd_buff[3] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[4] = buff_addr;
|
cmd_buff[4] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) buff_size=0x%08X, unk_param2=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"translation=0x%08X, buff_addr=0x%08X",
|
"(STUBBED) buff_size=0x%08X, unk_param2=0x%08X, "
|
||||||
|
"translation=0x%08X, buff_addr=0x%08X",
|
||||||
unk_param1, translation, buff_addr, buff_size);
|
unk_param1, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -919,8 +950,9 @@ void RegisterImmediateTask(Service::Interface* self) {
|
|||||||
cmd_buff[3] = (buff_size << 4 | 0xA);
|
cmd_buff[3] = (buff_size << 4 | 0xA);
|
||||||
cmd_buff[4] = buff_addr;
|
cmd_buff[4] = buff_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X",
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, "
|
||||||
|
"translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X",
|
||||||
unk_param1, unk_param2, unk_param3, translation, buff_addr, buff_size);
|
unk_param1, unk_param2, unk_param3, translation, buff_addr, buff_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -943,9 +975,10 @@ void SetTaskQuery(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff2_size << 4 | 0xA);
|
cmd_buff[2] = (buff2_size << 4 | 0xA);
|
||||||
cmd_buff[3] = buff2_addr;
|
cmd_buff[3] = buff2_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"translation1=0x%08X, buff1_addr=0x%08X, buff1_size=0x%08X, "
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, "
|
||||||
"translation2=0x%08X, buff2_addr=0x%08X, buff2_size=0x%08X",
|
"translation1=0x%08X, buff1_addr=0x%08X, buff1_size=0x%08X, "
|
||||||
|
"translation2=0x%08X, buff2_addr=0x%08X, buff2_size=0x%08X",
|
||||||
unk_param1, unk_param2, translation1, buff1_addr, buff1_size, translation2,
|
unk_param1, unk_param2, translation1, buff1_addr, buff1_size, translation2,
|
||||||
buff2_addr, buff2_size);
|
buff2_addr, buff2_size);
|
||||||
}
|
}
|
||||||
@ -969,9 +1002,10 @@ void GetTaskQuery(Service::Interface* self) {
|
|||||||
cmd_buff[2] = (buff2_size << 4 | 0xC);
|
cmd_buff[2] = (buff2_size << 4 | 0xC);
|
||||||
cmd_buff[3] = buff2_addr;
|
cmd_buff[3] = buff2_addr;
|
||||||
|
|
||||||
LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, "
|
LOG_WARNING(Service_BOSS,
|
||||||
"translation1=0x%08X, buff1_addr=0x%08X, buff1_size=0x%08X, "
|
"(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, "
|
||||||
"translation2=0x%08X, buff2_addr=0x%08X, buff2_size=0x%08X",
|
"translation1=0x%08X, buff1_addr=0x%08X, buff1_size=0x%08X, "
|
||||||
|
"translation2=0x%08X, buff2_addr=0x%08X, buff2_size=0x%08X",
|
||||||
unk_param1, unk_param2, translation1, buff1_addr, buff1_size, translation2,
|
unk_param1, unk_param2, translation1, buff1_addr, buff1_size, translation2,
|
||||||
buff2_addr, buff2_size);
|
buff2_addr, buff2_size);
|
||||||
}
|
}
|
||||||
|
@ -728,8 +728,9 @@ void Module::Interface::SetDetailSize(Kernel::HLERequestContext& ctx) {
|
|||||||
rb.Push(ERROR_INVALID_ENUM_VALUE);
|
rb.Push(ERROR_INVALID_ENUM_VALUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_DEBUG(Service_CAM, "called, camera_select=%u, width=%u, height=%u, crop_x0=%u, crop_y0=%u, "
|
LOG_DEBUG(Service_CAM,
|
||||||
"crop_x1=%u, crop_y1=%u, context_select=%u",
|
"called, camera_select=%u, width=%u, height=%u, crop_x0=%u, crop_y0=%u, "
|
||||||
|
"crop_x1=%u, crop_y1=%u, context_select=%u",
|
||||||
camera_select.m_val, resolution.width, resolution.height, resolution.crop_x0,
|
camera_select.m_val, resolution.width, resolution.height, resolution.crop_x0,
|
||||||
resolution.crop_y0, resolution.crop_x1, resolution.crop_y1, context_select.m_val);
|
resolution.crop_y0, resolution.crop_x1, resolution.crop_y1, context_select.m_val);
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,7 @@ struct ConsoleCountryInfo {
|
|||||||
u8 country_code; ///< The country code of the console
|
u8 country_code; ///< The country code of the console
|
||||||
};
|
};
|
||||||
static_assert(sizeof(ConsoleCountryInfo) == 4, "ConsoleCountryInfo must be exactly 4 bytes");
|
static_assert(sizeof(ConsoleCountryInfo) == 4, "ConsoleCountryInfo must be exactly 4 bytes");
|
||||||
}
|
} // namespace
|
||||||
|
|
||||||
static const ConsoleModelInfo CONSOLE_MODEL = {NINTENDO_3DS_XL, {0, 0, 0}};
|
static const ConsoleModelInfo CONSOLE_MODEL = {NINTENDO_3DS_XL, {0, 0, 0}};
|
||||||
static const u8 CONSOLE_LANGUAGE = LANGUAGE_EN;
|
static const u8 CONSOLE_LANGUAGE = LANGUAGE_EN;
|
||||||
|
@ -236,8 +236,9 @@ static void RegisterInterruptEvents(Service::Interface* self) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (interrupt_events.HasTooManyEventsRegistered()) {
|
if (interrupt_events.HasTooManyEventsRegistered()) {
|
||||||
LOG_INFO(Service_DSP, "Ran out of space to register interrupts (Attempted to register "
|
LOG_INFO(Service_DSP,
|
||||||
"type=%u, pipe=%u, event_handle=0x%08X)",
|
"Ran out of space to register interrupts (Attempted to register "
|
||||||
|
"type=%u, pipe=%u, event_handle=0x%08X)",
|
||||||
type_index, pipe_index, event_handle);
|
type_index, pipe_index, event_handle);
|
||||||
cmd_buff[1] = ResultCode(ErrorDescription::InvalidResultValue, ErrorModule::DSP,
|
cmd_buff[1] = ResultCode(ErrorDescription::InvalidResultValue, ErrorModule::DSP,
|
||||||
ErrorSummary::OutOfResource, ErrorLevel::Status)
|
ErrorSummary::OutOfResource, ErrorLevel::Status)
|
||||||
@ -294,8 +295,9 @@ static void WriteProcessPipe(Service::Interface* self) {
|
|||||||
AudioCore::DspPipe pipe = static_cast<AudioCore::DspPipe>(pipe_index);
|
AudioCore::DspPipe pipe = static_cast<AudioCore::DspPipe>(pipe_index);
|
||||||
|
|
||||||
if (IPC::StaticBufferDesc(size, 1) != cmd_buff[3]) {
|
if (IPC::StaticBufferDesc(size, 1) != cmd_buff[3]) {
|
||||||
LOG_ERROR(Service_DSP, "IPC static buffer descriptor failed validation (0x%X). pipe=%u, "
|
LOG_ERROR(Service_DSP,
|
||||||
"size=0x%X, buffer=0x%08X",
|
"IPC static buffer descriptor failed validation (0x%X). pipe=%u, "
|
||||||
|
"size=0x%X, buffer=0x%08X",
|
||||||
cmd_buff[3], pipe_index, size, buffer);
|
cmd_buff[3], pipe_index, size, buffer);
|
||||||
cmd_buff[0] = IPC::MakeHeader(0, 1, 0);
|
cmd_buff[0] = IPC::MakeHeader(0, 1, 0);
|
||||||
cmd_buff[1] = IPC::ERR_INVALID_BUFFER_DESCRIPTOR.raw;
|
cmd_buff[1] = IPC::ERR_INVALID_BUFFER_DESCRIPTOR.raw;
|
||||||
|
@ -87,8 +87,9 @@ void File::Read(Kernel::HLERequestContext& ctx) {
|
|||||||
offset += file->offset;
|
offset += file->offset;
|
||||||
|
|
||||||
if (offset + length > backend->GetSize()) {
|
if (offset + length > backend->GetSize()) {
|
||||||
LOG_ERROR(Service_FS, "Reading from out of bounds offset=0x%" PRIx64
|
LOG_ERROR(Service_FS,
|
||||||
" length=0x%08X file_size=0x%" PRIx64,
|
"Reading from out of bounds offset=0x%" PRIx64
|
||||||
|
" length=0x%08X file_size=0x%" PRIx64,
|
||||||
offset, length, backend->GetSize());
|
offset, length, backend->GetSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -438,8 +438,9 @@ void FS_USER::CreateExtSaveData(Kernel::HLERequestContext& ctx) {
|
|||||||
u32 icon_size = rp.Pop<u32>();
|
u32 icon_size = rp.Pop<u32>();
|
||||||
auto icon_buffer = rp.PopMappedBuffer();
|
auto icon_buffer = rp.PopMappedBuffer();
|
||||||
|
|
||||||
LOG_WARNING(Service_FS, "(STUBBED) savedata_high=%08X savedata_low=%08X unknown=%08X "
|
LOG_WARNING(Service_FS,
|
||||||
"files=%08X directories=%08X size_limit=%016" PRIx64 " icon_size=%08X",
|
"(STUBBED) savedata_high=%08X savedata_low=%08X unknown=%08X "
|
||||||
|
"files=%08X directories=%08X size_limit=%016" PRIx64 " icon_size=%08X",
|
||||||
save_high, save_low, unknown, directories, files, size_limit, icon_size);
|
save_high, save_low, unknown, directories, files, size_limit, icon_size);
|
||||||
|
|
||||||
std::vector<u8> icon(icon_size);
|
std::vector<u8> icon(icon_size);
|
||||||
@ -663,8 +664,9 @@ void FS_USER::SetSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
|||||||
|
|
||||||
// TODO: Generate and Save the Secure Value
|
// TODO: Generate and Save the Secure Value
|
||||||
|
|
||||||
LOG_WARNING(Service_FS, "(STUBBED) called, value=0x%016" PRIx64 " secure_value_slot=0x%08X "
|
LOG_WARNING(Service_FS,
|
||||||
"unqiue_id=0x%08X title_variation=0x%02X",
|
"(STUBBED) called, value=0x%016" PRIx64 " secure_value_slot=0x%08X "
|
||||||
|
"unqiue_id=0x%08X title_variation=0x%02X",
|
||||||
value, secure_value_slot, unique_id, title_variation);
|
value, secure_value_slot, unique_id, title_variation);
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
|
@ -261,31 +261,26 @@ ResultCode SetBufferSwap(u32 screen_id, const FrameBufferInfo& info) {
|
|||||||
PAddr phys_address_left = Memory::VirtualToPhysicalAddress(info.address_left);
|
PAddr phys_address_left = Memory::VirtualToPhysicalAddress(info.address_left);
|
||||||
PAddr phys_address_right = Memory::VirtualToPhysicalAddress(info.address_right);
|
PAddr phys_address_right = Memory::VirtualToPhysicalAddress(info.address_right);
|
||||||
if (info.active_fb == 0) {
|
if (info.active_fb == 0) {
|
||||||
WriteSingleHWReg(
|
WriteSingleHWReg(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(
|
||||||
base_address +
|
framebuffer_config[screen_id].address_left1)),
|
||||||
4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].address_left1)),
|
phys_address_left);
|
||||||
phys_address_left);
|
WriteSingleHWReg(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(
|
||||||
WriteSingleHWReg(
|
framebuffer_config[screen_id].address_right1)),
|
||||||
base_address +
|
phys_address_right);
|
||||||
4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].address_right1)),
|
|
||||||
phys_address_right);
|
|
||||||
} else {
|
} else {
|
||||||
WriteSingleHWReg(
|
WriteSingleHWReg(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(
|
||||||
base_address +
|
framebuffer_config[screen_id].address_left2)),
|
||||||
4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].address_left2)),
|
phys_address_left);
|
||||||
phys_address_left);
|
WriteSingleHWReg(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(
|
||||||
WriteSingleHWReg(
|
framebuffer_config[screen_id].address_right2)),
|
||||||
base_address +
|
phys_address_right);
|
||||||
4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].address_right2)),
|
|
||||||
phys_address_right);
|
|
||||||
}
|
}
|
||||||
WriteSingleHWReg(base_address +
|
WriteSingleHWReg(base_address +
|
||||||
4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].stride)),
|
4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].stride)),
|
||||||
info.stride);
|
info.stride);
|
||||||
WriteSingleHWReg(
|
WriteSingleHWReg(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(
|
||||||
base_address +
|
framebuffer_config[screen_id].color_format)),
|
||||||
4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].color_format)),
|
info.format);
|
||||||
info.format);
|
|
||||||
WriteSingleHWReg(
|
WriteSingleHWReg(
|
||||||
base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].active_fb)),
|
base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].active_fb)),
|
||||||
info.shown_fb);
|
info.shown_fb);
|
||||||
|
@ -333,7 +333,9 @@ void Module::Interface::GetGyroscopeLowCalibrateParam(Kernel::HLERequestContext&
|
|||||||
|
|
||||||
const s16 param_unit = 6700; // an approximate value taken from hw
|
const s16 param_unit = 6700; // an approximate value taken from hw
|
||||||
GyroscopeCalibrateParam param = {
|
GyroscopeCalibrateParam param = {
|
||||||
{0, param_unit, -param_unit}, {0, param_unit, -param_unit}, {0, param_unit, -param_unit},
|
{0, param_unit, -param_unit},
|
||||||
|
{0, param_unit, -param_unit},
|
||||||
|
{0, param_unit, -param_unit},
|
||||||
};
|
};
|
||||||
rb.PushRaw(param);
|
rb.PushRaw(param);
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
namespace Kernel {
|
namespace Kernel {
|
||||||
class Event;
|
class Event;
|
||||||
class SharedMemory;
|
class SharedMemory;
|
||||||
}
|
} // namespace Kernel
|
||||||
|
|
||||||
namespace CoreTiming {
|
namespace CoreTiming {
|
||||||
class EventType;
|
class EventType;
|
||||||
@ -335,5 +335,5 @@ void InstallInterfaces(SM::ServiceManager& service_manager);
|
|||||||
|
|
||||||
/// Reload input devices. Used when input configuration changed
|
/// Reload input devices. Used when input configuration changed
|
||||||
void ReloadInputDevices();
|
void ReloadInputDevices();
|
||||||
}
|
} // namespace HID
|
||||||
}
|
} // namespace Service
|
||||||
|
@ -72,21 +72,77 @@ ExtraHID::ExtraHID(SendFunc send_func) : IRDevice(send_func) {
|
|||||||
// and loaded from somewhere.
|
// and loaded from somewhere.
|
||||||
calibration_data = std::array<u8, 0x40>{{
|
calibration_data = std::array<u8, 0x40>{{
|
||||||
// 0x00
|
// 0x00
|
||||||
0x00, 0x00, 0x08, 0x80, 0x85, 0xEB, 0x11, 0x3F,
|
0x00,
|
||||||
|
0x00,
|
||||||
|
0x08,
|
||||||
|
0x80,
|
||||||
|
0x85,
|
||||||
|
0xEB,
|
||||||
|
0x11,
|
||||||
|
0x3F,
|
||||||
// 0x08
|
// 0x08
|
||||||
0x85, 0xEB, 0x11, 0x3F, 0xFF, 0xFF, 0xFF, 0xF5,
|
0x85,
|
||||||
|
0xEB,
|
||||||
|
0x11,
|
||||||
|
0x3F,
|
||||||
|
0xFF,
|
||||||
|
0xFF,
|
||||||
|
0xFF,
|
||||||
|
0xF5,
|
||||||
// 0x10
|
// 0x10
|
||||||
0xFF, 0x00, 0x08, 0x80, 0x85, 0xEB, 0x11, 0x3F,
|
0xFF,
|
||||||
|
0x00,
|
||||||
|
0x08,
|
||||||
|
0x80,
|
||||||
|
0x85,
|
||||||
|
0xEB,
|
||||||
|
0x11,
|
||||||
|
0x3F,
|
||||||
// 0x18
|
// 0x18
|
||||||
0x85, 0xEB, 0x11, 0x3F, 0xFF, 0xFF, 0xFF, 0x65,
|
0x85,
|
||||||
|
0xEB,
|
||||||
|
0x11,
|
||||||
|
0x3F,
|
||||||
|
0xFF,
|
||||||
|
0xFF,
|
||||||
|
0xFF,
|
||||||
|
0x65,
|
||||||
// 0x20
|
// 0x20
|
||||||
0xFF, 0x00, 0x08, 0x80, 0x85, 0xEB, 0x11, 0x3F,
|
0xFF,
|
||||||
|
0x00,
|
||||||
|
0x08,
|
||||||
|
0x80,
|
||||||
|
0x85,
|
||||||
|
0xEB,
|
||||||
|
0x11,
|
||||||
|
0x3F,
|
||||||
// 0x28
|
// 0x28
|
||||||
0x85, 0xEB, 0x11, 0x3F, 0xFF, 0xFF, 0xFF, 0x65,
|
0x85,
|
||||||
|
0xEB,
|
||||||
|
0x11,
|
||||||
|
0x3F,
|
||||||
|
0xFF,
|
||||||
|
0xFF,
|
||||||
|
0xFF,
|
||||||
|
0x65,
|
||||||
// 0x30
|
// 0x30
|
||||||
0xFF, 0x00, 0x08, 0x80, 0x85, 0xEB, 0x11, 0x3F,
|
0xFF,
|
||||||
|
0x00,
|
||||||
|
0x08,
|
||||||
|
0x80,
|
||||||
|
0x85,
|
||||||
|
0xEB,
|
||||||
|
0x11,
|
||||||
|
0x3F,
|
||||||
// 0x38
|
// 0x38
|
||||||
0x85, 0xEB, 0x11, 0x3F, 0xFF, 0xFF, 0xFF, 0x65,
|
0x85,
|
||||||
|
0xEB,
|
||||||
|
0x11,
|
||||||
|
0x3F,
|
||||||
|
0xFF,
|
||||||
|
0xFF,
|
||||||
|
0xFF,
|
||||||
|
0x65,
|
||||||
}};
|
}};
|
||||||
|
|
||||||
hid_polling_callback_id =
|
hid_polling_callback_id =
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
namespace Kernel {
|
namespace Kernel {
|
||||||
class Event;
|
class Event;
|
||||||
class SharedMemory;
|
class SharedMemory;
|
||||||
}
|
} // namespace Kernel
|
||||||
|
|
||||||
namespace CoreTiming {
|
namespace CoreTiming {
|
||||||
class EventType;
|
class EventType;
|
||||||
|
@ -251,9 +251,10 @@ void IR_USER::InitializeIrNopShared(Kernel::HLERequestContext& ctx) {
|
|||||||
|
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
|
||||||
LOG_INFO(Service_IR, "called, shared_buff_size=%u, recv_buff_size=%u, "
|
LOG_INFO(Service_IR,
|
||||||
"recv_buff_packet_count=%u, send_buff_size=%u, "
|
"called, shared_buff_size=%u, recv_buff_size=%u, "
|
||||||
"send_buff_packet_count=%u, baud_rate=%u",
|
"recv_buff_packet_count=%u, send_buff_size=%u, "
|
||||||
|
"send_buff_packet_count=%u, baud_rate=%u",
|
||||||
shared_buff_size, recv_buff_size, recv_buff_packet_count, send_buff_size,
|
shared_buff_size, recv_buff_size, recv_buff_packet_count, send_buff_size,
|
||||||
send_buff_packet_count, baud_rate);
|
send_buff_packet_count, baud_rate);
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
namespace Kernel {
|
namespace Kernel {
|
||||||
class Event;
|
class Event;
|
||||||
class SharedMemory;
|
class SharedMemory;
|
||||||
}
|
} // namespace Kernel
|
||||||
|
|
||||||
namespace CoreTiming {
|
namespace CoreTiming {
|
||||||
class EventType;
|
class EventType;
|
||||||
|
@ -25,18 +25,27 @@ const std::array<int, 17> CROHelper::ENTRY_SIZE{{
|
|||||||
1, // code
|
1, // code
|
||||||
1, // data
|
1, // data
|
||||||
1, // module name
|
1, // module name
|
||||||
sizeof(SegmentEntry), sizeof(ExportNamedSymbolEntry), sizeof(ExportIndexedSymbolEntry),
|
sizeof(SegmentEntry),
|
||||||
|
sizeof(ExportNamedSymbolEntry),
|
||||||
|
sizeof(ExportIndexedSymbolEntry),
|
||||||
1, // export strings
|
1, // export strings
|
||||||
sizeof(ExportTreeEntry), sizeof(ImportModuleEntry), sizeof(ExternalRelocationEntry),
|
sizeof(ExportTreeEntry),
|
||||||
sizeof(ImportNamedSymbolEntry), sizeof(ImportIndexedSymbolEntry),
|
sizeof(ImportModuleEntry),
|
||||||
|
sizeof(ExternalRelocationEntry),
|
||||||
|
sizeof(ImportNamedSymbolEntry),
|
||||||
|
sizeof(ImportIndexedSymbolEntry),
|
||||||
sizeof(ImportAnonymousSymbolEntry),
|
sizeof(ImportAnonymousSymbolEntry),
|
||||||
1, // import strings
|
1, // import strings
|
||||||
sizeof(StaticAnonymousSymbolEntry), sizeof(InternalRelocationEntry),
|
sizeof(StaticAnonymousSymbolEntry),
|
||||||
|
sizeof(InternalRelocationEntry),
|
||||||
sizeof(StaticRelocationEntry),
|
sizeof(StaticRelocationEntry),
|
||||||
}};
|
}};
|
||||||
|
|
||||||
const std::array<CROHelper::HeaderField, 4> CROHelper::FIX_BARRIERS{{
|
const std::array<CROHelper::HeaderField, 4> CROHelper::FIX_BARRIERS{{
|
||||||
Fix0Barrier, Fix1Barrier, Fix2Barrier, Fix3Barrier,
|
Fix0Barrier,
|
||||||
|
Fix1Barrier,
|
||||||
|
Fix2Barrier,
|
||||||
|
Fix3Barrier,
|
||||||
}};
|
}};
|
||||||
|
|
||||||
VAddr CROHelper::SegmentTagToAddress(SegmentTag segment_tag) const {
|
VAddr CROHelper::SegmentTagToAddress(SegmentTag segment_tag) const {
|
||||||
@ -209,12 +218,24 @@ ResultCode CROHelper::RebaseHeader(u32 cro_size) {
|
|||||||
|
|
||||||
// verifies that all offsets are in the correct order
|
// verifies that all offsets are in the correct order
|
||||||
constexpr std::array<HeaderField, 18> OFFSET_ORDER = {{
|
constexpr std::array<HeaderField, 18> OFFSET_ORDER = {{
|
||||||
CodeOffset, ModuleNameOffset, SegmentTableOffset, ExportNamedSymbolTableOffset,
|
CodeOffset,
|
||||||
ExportTreeTableOffset, ExportIndexedSymbolTableOffset, ExportStringsOffset,
|
ModuleNameOffset,
|
||||||
ImportModuleTableOffset, ExternalRelocationTableOffset, ImportNamedSymbolTableOffset,
|
SegmentTableOffset,
|
||||||
ImportIndexedSymbolTableOffset, ImportAnonymousSymbolTableOffset, ImportStringsOffset,
|
ExportNamedSymbolTableOffset,
|
||||||
StaticAnonymousSymbolTableOffset, InternalRelocationTableOffset,
|
ExportTreeTableOffset,
|
||||||
StaticRelocationTableOffset, DataOffset, FileSize,
|
ExportIndexedSymbolTableOffset,
|
||||||
|
ExportStringsOffset,
|
||||||
|
ImportModuleTableOffset,
|
||||||
|
ExternalRelocationTableOffset,
|
||||||
|
ImportNamedSymbolTableOffset,
|
||||||
|
ImportIndexedSymbolTableOffset,
|
||||||
|
ImportAnonymousSymbolTableOffset,
|
||||||
|
ImportStringsOffset,
|
||||||
|
StaticAnonymousSymbolTableOffset,
|
||||||
|
InternalRelocationTableOffset,
|
||||||
|
StaticRelocationTableOffset,
|
||||||
|
DataOffset,
|
||||||
|
FileSize,
|
||||||
}};
|
}};
|
||||||
|
|
||||||
u32 prev_offset = GetField(OFFSET_ORDER[0]);
|
u32 prev_offset = GetField(OFFSET_ORDER[0]);
|
||||||
|
@ -195,10 +195,11 @@ void RO::LoadCRO(Kernel::HLERequestContext& ctx, bool link_on_load_bug_fix) {
|
|||||||
VAddr crr_address = rp.Pop<u32>();
|
VAddr crr_address = rp.Pop<u32>();
|
||||||
auto process = rp.PopObject<Kernel::Process>();
|
auto process = rp.PopObject<Kernel::Process>();
|
||||||
|
|
||||||
LOG_DEBUG(Service_LDR, "called (%s), cro_buffer_ptr=0x%08X, cro_address=0x%08X, cro_size=0x%X, "
|
LOG_DEBUG(Service_LDR,
|
||||||
"data_segment_address=0x%08X, zero=%d, data_segment_size=0x%X, "
|
"called (%s), cro_buffer_ptr=0x%08X, cro_address=0x%08X, cro_size=0x%X, "
|
||||||
"bss_segment_address=0x%08X, bss_segment_size=0x%X, auto_link=%s, "
|
"data_segment_address=0x%08X, zero=%d, data_segment_size=0x%X, "
|
||||||
"fix_level=%d, crr_address=0x%08X",
|
"bss_segment_address=0x%08X, bss_segment_size=0x%X, auto_link=%s, "
|
||||||
|
"fix_level=%d, crr_address=0x%08X",
|
||||||
link_on_load_bug_fix ? "new" : "old", cro_buffer_ptr, cro_address, cro_size,
|
link_on_load_bug_fix ? "new" : "old", cro_buffer_ptr, cro_address, cro_size,
|
||||||
data_segment_address, zero, data_segment_size, bss_segment_address, bss_segment_size,
|
data_segment_address, zero, data_segment_size, bss_segment_address, bss_segment_size,
|
||||||
auto_link ? "true" : "false", fix_level, crr_address);
|
auto_link ? "true" : "false", fix_level, crr_address);
|
||||||
|
@ -21,7 +21,10 @@ enum : u32 {
|
|||||||
static DaemonMask daemon_bit_mask = DaemonMask::Default;
|
static DaemonMask daemon_bit_mask = DaemonMask::Default;
|
||||||
static DaemonMask default_daemon_bit_mask = DaemonMask::Default;
|
static DaemonMask default_daemon_bit_mask = DaemonMask::Default;
|
||||||
static std::array<DaemonStatus, 4> daemon_status = {
|
static std::array<DaemonStatus, 4> daemon_status = {
|
||||||
DaemonStatus::Idle, DaemonStatus::Idle, DaemonStatus::Idle, DaemonStatus::Idle,
|
DaemonStatus::Idle,
|
||||||
|
DaemonStatus::Idle,
|
||||||
|
DaemonStatus::Idle,
|
||||||
|
DaemonStatus::Idle,
|
||||||
};
|
};
|
||||||
static ExclusiveState exclusive_state = ExclusiveState::None;
|
static ExclusiveState exclusive_state = ExclusiveState::None;
|
||||||
static u32 scan_interval = DEFAULT_SCAN_INTERVAL;
|
static u32 scan_interval = DEFAULT_SCAN_INTERVAL;
|
||||||
|
@ -554,8 +554,9 @@ void NWM_UDS::RecvBeaconBroadcastData(Kernel::HLERequestContext& ctx) {
|
|||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.PushMappedBuffer(out_buffer);
|
rb.PushMappedBuffer(out_buffer);
|
||||||
|
|
||||||
LOG_DEBUG(Service_NWM, "called out_buffer_size=0x%08X, wlan_comm_id=0x%08X, id=0x%08X,"
|
LOG_DEBUG(Service_NWM,
|
||||||
"unk1=0x%08X, unk2=0x%08X, offset=%zu",
|
"called out_buffer_size=0x%08X, wlan_comm_id=0x%08X, id=0x%08X,"
|
||||||
|
"unk1=0x%08X, unk2=0x%08X, offset=%zu",
|
||||||
out_buffer_size, wlan_comm_id, id, unk1, unk2, cur_buffer_size);
|
out_buffer_size, wlan_comm_id, id, unk1, unk2, cur_buffer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -187,8 +187,9 @@ static std::vector<u8> DecryptDataFrame(const std::vector<u8>& encrypted_payload
|
|||||||
d.SpecifyDataLengths(aad.size(), encrypted_payload.size() - 8, 0);
|
d.SpecifyDataLengths(aad.size(), encrypted_payload.size() - 8, 0);
|
||||||
|
|
||||||
CryptoPP::AuthenticatedDecryptionFilter df(
|
CryptoPP::AuthenticatedDecryptionFilter df(
|
||||||
d, nullptr, CryptoPP::AuthenticatedDecryptionFilter::MAC_AT_END |
|
d, nullptr,
|
||||||
CryptoPP::AuthenticatedDecryptionFilter::THROW_EXCEPTION);
|
CryptoPP::AuthenticatedDecryptionFilter::MAC_AT_END |
|
||||||
|
CryptoPP::AuthenticatedDecryptionFilter::THROW_EXCEPTION);
|
||||||
// put aad
|
// put aad
|
||||||
df.ChannelPut(CryptoPP::AAD_CHANNEL, aad.data(), aad.size());
|
df.ChannelPut(CryptoPP::AAD_CHANNEL, aad.data(), aad.size());
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
namespace Kernel {
|
namespace Kernel {
|
||||||
class HLERequestContext;
|
class HLERequestContext;
|
||||||
class Semaphore;
|
class Semaphore;
|
||||||
}
|
} // namespace Kernel
|
||||||
|
|
||||||
namespace Service {
|
namespace Service {
|
||||||
namespace SM {
|
namespace SM {
|
||||||
|
@ -88,5 +88,5 @@ SSL_C::SSL_C() {
|
|||||||
Register(FunctionTable);
|
Register(FunctionTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace SSL_C
|
} // namespace SSL
|
||||||
} // namespace Service
|
} // namespace Service
|
||||||
|
@ -230,8 +230,9 @@ void Y2R_U::SetSendingY(Kernel::HLERequestContext& ctx) {
|
|||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
|
||||||
LOG_DEBUG(Service_Y2R, "called image_size=0x%08X, transfer_unit=%hu, transfer_stride=%hu, "
|
LOG_DEBUG(Service_Y2R,
|
||||||
"src_process_id=%u",
|
"called image_size=0x%08X, transfer_unit=%hu, transfer_stride=%hu, "
|
||||||
|
"src_process_id=%u",
|
||||||
conversion.src_Y.image_size, conversion.src_Y.transfer_unit, conversion.src_Y.gap,
|
conversion.src_Y.image_size, conversion.src_Y.transfer_unit, conversion.src_Y.gap,
|
||||||
process->process_id);
|
process->process_id);
|
||||||
}
|
}
|
||||||
@ -248,8 +249,9 @@ void Y2R_U::SetSendingU(Kernel::HLERequestContext& ctx) {
|
|||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
|
||||||
LOG_DEBUG(Service_Y2R, "called image_size=0x%08X, transfer_unit=%hu, transfer_stride=%hu, "
|
LOG_DEBUG(Service_Y2R,
|
||||||
"src_process_id=%u",
|
"called image_size=0x%08X, transfer_unit=%hu, transfer_stride=%hu, "
|
||||||
|
"src_process_id=%u",
|
||||||
conversion.src_U.image_size, conversion.src_U.transfer_unit, conversion.src_U.gap,
|
conversion.src_U.image_size, conversion.src_U.transfer_unit, conversion.src_U.gap,
|
||||||
process->process_id);
|
process->process_id);
|
||||||
}
|
}
|
||||||
@ -267,8 +269,9 @@ void Y2R_U::SetSendingV(Kernel::HLERequestContext& ctx) {
|
|||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
|
||||||
LOG_DEBUG(Service_Y2R, "called image_size=0x%08X, transfer_unit=%hu, transfer_stride=%hu, "
|
LOG_DEBUG(Service_Y2R,
|
||||||
"src_process_id=%u",
|
"called image_size=0x%08X, transfer_unit=%hu, transfer_stride=%hu, "
|
||||||
|
"src_process_id=%u",
|
||||||
conversion.src_V.image_size, conversion.src_V.transfer_unit, conversion.src_V.gap,
|
conversion.src_V.image_size, conversion.src_V.transfer_unit, conversion.src_V.gap,
|
||||||
process->process_id);
|
process->process_id);
|
||||||
}
|
}
|
||||||
@ -286,8 +289,9 @@ void Y2R_U::SetSendingYUYV(Kernel::HLERequestContext& ctx) {
|
|||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
|
||||||
LOG_DEBUG(Service_Y2R, "called image_size=0x%08X, transfer_unit=%hu, transfer_stride=%hu, "
|
LOG_DEBUG(Service_Y2R,
|
||||||
"src_process_id=%u",
|
"called image_size=0x%08X, transfer_unit=%hu, transfer_stride=%hu, "
|
||||||
|
"src_process_id=%u",
|
||||||
conversion.src_YUYV.image_size, conversion.src_YUYV.transfer_unit,
|
conversion.src_YUYV.image_size, conversion.src_YUYV.transfer_unit,
|
||||||
conversion.src_YUYV.gap, process->process_id);
|
conversion.src_YUYV.gap, process->process_id);
|
||||||
}
|
}
|
||||||
@ -345,8 +349,9 @@ void Y2R_U::SetReceiving(Kernel::HLERequestContext& ctx) {
|
|||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
|
||||||
LOG_DEBUG(Service_Y2R, "called image_size=0x%08X, transfer_unit=%hu, transfer_stride=%hu, "
|
LOG_DEBUG(Service_Y2R,
|
||||||
"dst_process_id=%u",
|
"called image_size=0x%08X, transfer_unit=%hu, transfer_stride=%hu, "
|
||||||
|
"dst_process_id=%u",
|
||||||
conversion.dst.image_size, conversion.dst.transfer_unit, conversion.dst.gap,
|
conversion.dst.image_size, conversion.dst.transfer_unit, conversion.dst.gap,
|
||||||
static_cast<u32>(dst_process->process_id));
|
static_cast<u32>(dst_process->process_id));
|
||||||
}
|
}
|
||||||
|
@ -13,5 +13,5 @@ AESKey Lrot128(const AESKey& in, u32 rot);
|
|||||||
AESKey Add128(const AESKey& a, const AESKey& b);
|
AESKey Add128(const AESKey& a, const AESKey& b);
|
||||||
AESKey Xor128(const AESKey& a, const AESKey& b);
|
AESKey Xor128(const AESKey& a, const AESKey& b);
|
||||||
|
|
||||||
} // namspace AES
|
} // namespace AES
|
||||||
} // namespace HW
|
} // namespace HW
|
||||||
|
@ -19,10 +19,10 @@ namespace {
|
|||||||
|
|
||||||
// 3DS uses a non-standard AES-CCM algorithm, so we need to derive a sub class from the standard one
|
// 3DS uses a non-standard AES-CCM algorithm, so we need to derive a sub class from the standard one
|
||||||
// and override with the non-standard part.
|
// and override with the non-standard part.
|
||||||
using CryptoPP::lword;
|
|
||||||
using CryptoPP::AES;
|
using CryptoPP::AES;
|
||||||
using CryptoPP::CCM_Final;
|
|
||||||
using CryptoPP::CCM_Base;
|
using CryptoPP::CCM_Base;
|
||||||
|
using CryptoPP::CCM_Final;
|
||||||
|
using CryptoPP::lword;
|
||||||
template <bool T_IsEncryption>
|
template <bool T_IsEncryption>
|
||||||
class CCM_3DSVariant_Final : public CCM_Final<AES, CCM_MAC_SIZE, T_IsEncryption> {
|
class CCM_3DSVariant_Final : public CCM_Final<AES, CCM_MAC_SIZE, T_IsEncryption> {
|
||||||
public:
|
public:
|
||||||
|
@ -33,5 +33,5 @@ void SetNormalKey(size_t slot_id, const AESKey& key);
|
|||||||
bool IsNormalKeyAvailable(size_t slot_id);
|
bool IsNormalKeyAvailable(size_t slot_id);
|
||||||
AESKey GetNormalKey(size_t slot_id);
|
AESKey GetNormalKey(size_t slot_id);
|
||||||
|
|
||||||
} // namspace AES
|
} // namespace AES
|
||||||
} // namespace HW
|
} // namespace HW
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user