hle_ipc: Rename ReadBufferSpan to ReadBuffer
This commit is contained in:
parent
59c0f85407
commit
a1490d77ac
|
@ -345,7 +345,7 @@ std::vector<u8> HLERequestContext::ReadBufferCopy(std::size_t buffer_index) cons
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::span<const u8> HLERequestContext::ReadBufferSpan(std::size_t buffer_index) const {
|
std::span<const u8> HLERequestContext::ReadBuffer(std::size_t buffer_index) const {
|
||||||
const bool is_buffer_a{BufferDescriptorA().size() > buffer_index &&
|
const bool is_buffer_a{BufferDescriptorA().size() > buffer_index &&
|
||||||
BufferDescriptorA()[buffer_index].Size()};
|
BufferDescriptorA()[buffer_index].Size()};
|
||||||
if (is_buffer_a) {
|
if (is_buffer_a) {
|
||||||
|
|
|
@ -271,12 +271,12 @@ public:
|
||||||
return domain_message_header.has_value();
|
return domain_message_header.has_value();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Helper function to get a span of a buffer using the appropriate buffer descriptor
|
||||||
|
[[nodiscard]] std::span<const u8> ReadBuffer(std::size_t buffer_index = 0) const;
|
||||||
|
|
||||||
/// Helper function to read a copy of a buffer using the appropriate buffer descriptor
|
/// Helper function to read a copy of a buffer using the appropriate buffer descriptor
|
||||||
[[nodiscard]] std::vector<u8> ReadBufferCopy(std::size_t buffer_index = 0) const;
|
[[nodiscard]] std::vector<u8> ReadBufferCopy(std::size_t buffer_index = 0) const;
|
||||||
|
|
||||||
/// Helper function to get a span of a buffer using the appropriate buffer descriptor
|
|
||||||
[[nodiscard]] std::span<const u8> ReadBufferSpan(std::size_t buffer_index = 0) const;
|
|
||||||
|
|
||||||
/// Helper function to write a buffer using the appropriate buffer descriptor
|
/// Helper function to write a buffer using the appropriate buffer descriptor
|
||||||
std::size_t WriteBuffer(const void* buffer, std::size_t size,
|
std::size_t WriteBuffer(const void* buffer, std::size_t size,
|
||||||
std::size_t buffer_index = 0) const;
|
std::size_t buffer_index = 0) const;
|
||||||
|
|
|
@ -367,7 +367,7 @@ protected:
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto base = rp.PopRaw<ProfileBase>();
|
const auto base = rp.PopRaw<ProfileBase>();
|
||||||
|
|
||||||
const auto user_data = ctx.ReadBufferSpan();
|
const auto user_data = ctx.ReadBuffer();
|
||||||
|
|
||||||
LOG_DEBUG(Service_ACC, "called, username='{}', timestamp={:016X}, uuid=0x{}",
|
LOG_DEBUG(Service_ACC, "called, username='{}', timestamp={:016X}, uuid=0x{}",
|
||||||
Common::StringFromFixedZeroTerminatedBuffer(
|
Common::StringFromFixedZeroTerminatedBuffer(
|
||||||
|
@ -399,8 +399,8 @@ protected:
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto base = rp.PopRaw<ProfileBase>();
|
const auto base = rp.PopRaw<ProfileBase>();
|
||||||
|
|
||||||
const auto user_data = ctx.ReadBufferSpan();
|
const auto user_data = ctx.ReadBuffer();
|
||||||
const auto image_data = ctx.ReadBufferSpan(1);
|
const auto image_data = ctx.ReadBuffer(1);
|
||||||
|
|
||||||
LOG_DEBUG(Service_ACC, "called, username='{}', timestamp={:016X}, uuid=0x{}",
|
LOG_DEBUG(Service_ACC, "called, username='{}', timestamp={:016X}, uuid=0x{}",
|
||||||
Common::StringFromFixedZeroTerminatedBuffer(
|
Common::StringFromFixedZeroTerminatedBuffer(
|
||||||
|
|
|
@ -1124,7 +1124,7 @@ void IStorageAccessor::Write(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
|
|
||||||
const u64 offset{rp.Pop<u64>()};
|
const u64 offset{rp.Pop<u64>()};
|
||||||
const auto data{ctx.ReadBufferSpan()};
|
const auto data{ctx.ReadBuffer()};
|
||||||
const std::size_t size{std::min<u64>(data.size(), backing.GetSize() - offset)};
|
const std::size_t size{std::min<u64>(data.size(), backing.GetSize() - offset)};
|
||||||
|
|
||||||
LOG_DEBUG(Service_AM, "called, offset={}, size={}", offset, size);
|
LOG_DEBUG(Service_AM, "called, offset={}, size={}", offset, size);
|
||||||
|
|
|
@ -72,7 +72,7 @@ private:
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
|
|
||||||
const auto unknown_1 = rp.Pop<u64>();
|
const auto unknown_1 = rp.Pop<u64>();
|
||||||
[[maybe_unused]] const auto unknown_2 = ctx.ReadBufferSpan();
|
[[maybe_unused]] const auto unknown_2 = ctx.ReadBuffer();
|
||||||
|
|
||||||
LOG_WARNING(Service_AOC, "(STUBBED) called, unknown_1={}", unknown_1);
|
LOG_WARNING(Service_AOC, "(STUBBED) called, unknown_1={}", unknown_1);
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ private:
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
|
|
||||||
const auto unknown_1 = rp.Pop<u64>();
|
const auto unknown_1 = rp.Pop<u64>();
|
||||||
[[maybe_unused]] const auto unknown_2 = ctx.ReadBufferSpan();
|
[[maybe_unused]] const auto unknown_2 = ctx.ReadBuffer();
|
||||||
|
|
||||||
LOG_WARNING(Service_AOC, "(STUBBED) called, unknown_1={}", unknown_1);
|
LOG_WARNING(Service_AOC, "(STUBBED) called, unknown_1={}", unknown_1);
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,7 @@ private:
|
||||||
LOG_ERROR(Service_Audio, "Input buffer is too small for an AudioInBuffer!");
|
LOG_ERROR(Service_Audio, "Input buffer is too small for an AudioInBuffer!");
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto& in_buffer = ctx.ReadBufferSpan();
|
const auto& in_buffer = ctx.ReadBuffer();
|
||||||
AudioInBuffer buffer{};
|
AudioInBuffer buffer{};
|
||||||
std::memcpy(&buffer, in_buffer.data(), sizeof(AudioInBuffer));
|
std::memcpy(&buffer, in_buffer.data(), sizeof(AudioInBuffer));
|
||||||
|
|
||||||
|
@ -266,7 +266,7 @@ void AudInU::OpenAudioIn(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
auto in_params{rp.PopRaw<AudioInParameter>()};
|
auto in_params{rp.PopRaw<AudioInParameter>()};
|
||||||
auto applet_resource_user_id{rp.PopRaw<u64>()};
|
auto applet_resource_user_id{rp.PopRaw<u64>()};
|
||||||
const auto device_name_data{ctx.ReadBufferSpan()};
|
const auto device_name_data{ctx.ReadBuffer()};
|
||||||
auto device_name = Common::StringFromBuffer(device_name_data);
|
auto device_name = Common::StringFromBuffer(device_name_data);
|
||||||
auto handle{ctx.GetCopyHandle(0)};
|
auto handle{ctx.GetCopyHandle(0)};
|
||||||
|
|
||||||
|
@ -317,7 +317,7 @@ void AudInU::OpenAudioInProtocolSpecified(Kernel::HLERequestContext& ctx) {
|
||||||
auto protocol_specified{rp.PopRaw<u64>()};
|
auto protocol_specified{rp.PopRaw<u64>()};
|
||||||
auto in_params{rp.PopRaw<AudioInParameter>()};
|
auto in_params{rp.PopRaw<AudioInParameter>()};
|
||||||
auto applet_resource_user_id{rp.PopRaw<u64>()};
|
auto applet_resource_user_id{rp.PopRaw<u64>()};
|
||||||
const auto device_name_data{ctx.ReadBufferSpan()};
|
const auto device_name_data{ctx.ReadBuffer()};
|
||||||
auto device_name = Common::StringFromBuffer(device_name_data);
|
auto device_name = Common::StringFromBuffer(device_name_data);
|
||||||
auto handle{ctx.GetCopyHandle(0)};
|
auto handle{ctx.GetCopyHandle(0)};
|
||||||
|
|
||||||
|
|
|
@ -105,7 +105,7 @@ private:
|
||||||
LOG_ERROR(Service_Audio, "Input buffer is too small for an AudioOutBuffer!");
|
LOG_ERROR(Service_Audio, "Input buffer is too small for an AudioOutBuffer!");
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto& in_buffer = ctx.ReadBufferSpan();
|
const auto& in_buffer = ctx.ReadBuffer();
|
||||||
AudioOutBuffer buffer{};
|
AudioOutBuffer buffer{};
|
||||||
std::memcpy(&buffer, in_buffer.data(), sizeof(AudioOutBuffer));
|
std::memcpy(&buffer, in_buffer.data(), sizeof(AudioOutBuffer));
|
||||||
|
|
||||||
|
@ -264,7 +264,7 @@ void AudOutU::OpenAudioOut(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
auto in_params{rp.PopRaw<AudioOutParameter>()};
|
auto in_params{rp.PopRaw<AudioOutParameter>()};
|
||||||
auto applet_resource_user_id{rp.PopRaw<u64>()};
|
auto applet_resource_user_id{rp.PopRaw<u64>()};
|
||||||
const auto device_name_data{ctx.ReadBufferSpan()};
|
const auto device_name_data{ctx.ReadBuffer()};
|
||||||
auto device_name = Common::StringFromBuffer(device_name_data);
|
auto device_name = Common::StringFromBuffer(device_name_data);
|
||||||
auto handle{ctx.GetCopyHandle(0)};
|
auto handle{ctx.GetCopyHandle(0)};
|
||||||
|
|
||||||
|
|
|
@ -112,7 +112,7 @@ private:
|
||||||
void RequestUpdate(Kernel::HLERequestContext& ctx) {
|
void RequestUpdate(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_TRACE(Service_Audio, "called");
|
LOG_TRACE(Service_Audio, "called");
|
||||||
|
|
||||||
const auto input{ctx.ReadBufferSpan(0)};
|
const auto input{ctx.ReadBuffer(0)};
|
||||||
|
|
||||||
// These buffers are written manually to avoid an issue with WriteBuffer throwing errors for
|
// These buffers are written manually to avoid an issue with WriteBuffer throwing errors for
|
||||||
// checking size 0. Performance size is 0 for most games.
|
// checking size 0. Performance size is 0 for most games.
|
||||||
|
@ -306,7 +306,7 @@ private:
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const f32 volume = rp.Pop<f32>();
|
const f32 volume = rp.Pop<f32>();
|
||||||
|
|
||||||
const auto device_name_buffer = ctx.ReadBufferSpan();
|
const auto device_name_buffer = ctx.ReadBuffer();
|
||||||
const std::string name = Common::StringFromBuffer(device_name_buffer);
|
const std::string name = Common::StringFromBuffer(device_name_buffer);
|
||||||
|
|
||||||
LOG_DEBUG(Service_Audio, "called. name={}, volume={}", name, volume);
|
LOG_DEBUG(Service_Audio, "called. name={}, volume={}", name, volume);
|
||||||
|
@ -320,7 +320,7 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
void GetAudioDeviceOutputVolume(Kernel::HLERequestContext& ctx) {
|
void GetAudioDeviceOutputVolume(Kernel::HLERequestContext& ctx) {
|
||||||
const auto device_name_buffer = ctx.ReadBufferSpan();
|
const auto device_name_buffer = ctx.ReadBuffer();
|
||||||
const std::string name = Common::StringFromBuffer(device_name_buffer);
|
const std::string name = Common::StringFromBuffer(device_name_buffer);
|
||||||
|
|
||||||
LOG_DEBUG(Service_Audio, "called. Name={}", name);
|
LOG_DEBUG(Service_Audio, "called. Name={}", name);
|
||||||
|
|
|
@ -74,7 +74,7 @@ private:
|
||||||
ResetDecoderContext();
|
ResetDecoderContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DecodeOpusData(consumed, sample_count, ctx.ReadBufferSpan(), samples, performance)) {
|
if (!DecodeOpusData(consumed, sample_count, ctx.ReadBuffer(), samples, performance)) {
|
||||||
LOG_ERROR(Audio, "Failed to decode opus data");
|
LOG_ERROR(Audio, "Failed to decode opus data");
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
// TODO(ogniK): Use correct error code
|
// TODO(ogniK): Use correct error code
|
||||||
|
@ -257,7 +257,7 @@ void HwOpus::GetWorkBufferSizeEx(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
void HwOpus::GetWorkBufferSizeForMultiStreamEx(Kernel::HLERequestContext& ctx) {
|
void HwOpus::GetWorkBufferSizeForMultiStreamEx(Kernel::HLERequestContext& ctx) {
|
||||||
OpusMultiStreamParametersEx param;
|
OpusMultiStreamParametersEx param;
|
||||||
std::memcpy(¶m, ctx.ReadBufferSpan().data(), ctx.GetReadBufferSize());
|
std::memcpy(¶m, ctx.ReadBuffer().data(), ctx.GetReadBufferSize());
|
||||||
|
|
||||||
const auto sample_rate = param.sample_rate;
|
const auto sample_rate = param.sample_rate;
|
||||||
const auto channel_count = param.channel_count;
|
const auto channel_count = param.channel_count;
|
||||||
|
|
|
@ -206,7 +206,7 @@ private:
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto title_id = rp.PopRaw<u64>();
|
const auto title_id = rp.PopRaw<u64>();
|
||||||
|
|
||||||
const auto passphrase_raw = ctx.ReadBufferSpan();
|
const auto passphrase_raw = ctx.ReadBuffer();
|
||||||
|
|
||||||
LOG_DEBUG(Service_BCAT, "called, title_id={:016X}, passphrase={}", title_id,
|
LOG_DEBUG(Service_BCAT, "called, title_id={:016X}, passphrase={}", title_id,
|
||||||
Common::HexToString(passphrase_raw));
|
Common::HexToString(passphrase_raw));
|
||||||
|
|
|
@ -121,8 +121,8 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImportTicket(Kernel::HLERequestContext& ctx) {
|
void ImportTicket(Kernel::HLERequestContext& ctx) {
|
||||||
const auto ticket = ctx.ReadBufferSpan();
|
const auto ticket = ctx.ReadBuffer();
|
||||||
[[maybe_unused]] const auto cert = ctx.ReadBufferSpan(1);
|
[[maybe_unused]] const auto cert = ctx.ReadBuffer(1);
|
||||||
|
|
||||||
if (ticket.size() < sizeof(Core::Crypto::Ticket)) {
|
if (ticket.size() < sizeof(Core::Crypto::Ticket)) {
|
||||||
LOG_ERROR(Service_ETicket, "The input buffer is not large enough!");
|
LOG_ERROR(Service_ETicket, "The input buffer is not large enough!");
|
||||||
|
|
|
@ -152,7 +152,7 @@ void Module::Interface::ThrowFatalWithCpuContext(Kernel::HLERequestContext& ctx)
|
||||||
IPC::RequestParser rp(ctx);
|
IPC::RequestParser rp(ctx);
|
||||||
const auto error_code = rp.Pop<Result>();
|
const auto error_code = rp.Pop<Result>();
|
||||||
const auto fatal_type = rp.PopEnum<FatalType>();
|
const auto fatal_type = rp.PopEnum<FatalType>();
|
||||||
const auto fatal_info = ctx.ReadBufferSpan();
|
const auto fatal_info = ctx.ReadBuffer();
|
||||||
FatalInfo info{};
|
FatalInfo info{};
|
||||||
|
|
||||||
ASSERT_MSG(fatal_info.size() == sizeof(FatalInfo), "Invalid fatal info buffer size!");
|
ASSERT_MSG(fatal_info.size() == sizeof(FatalInfo), "Invalid fatal info buffer size!");
|
||||||
|
|
|
@ -190,7 +190,7 @@ private:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto data = ctx.ReadBufferSpan();
|
const auto data = ctx.ReadBuffer();
|
||||||
|
|
||||||
ASSERT_MSG(
|
ASSERT_MSG(
|
||||||
static_cast<s64>(data.size()) <= length,
|
static_cast<s64>(data.size()) <= length,
|
||||||
|
@ -337,7 +337,7 @@ public:
|
||||||
void CreateFile(Kernel::HLERequestContext& ctx) {
|
void CreateFile(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
|
|
||||||
const auto file_buffer = ctx.ReadBufferSpan();
|
const auto file_buffer = ctx.ReadBuffer();
|
||||||
const std::string name = Common::StringFromBuffer(file_buffer);
|
const std::string name = Common::StringFromBuffer(file_buffer);
|
||||||
|
|
||||||
const u64 file_mode = rp.Pop<u64>();
|
const u64 file_mode = rp.Pop<u64>();
|
||||||
|
@ -351,7 +351,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeleteFile(Kernel::HLERequestContext& ctx) {
|
void DeleteFile(Kernel::HLERequestContext& ctx) {
|
||||||
const auto file_buffer = ctx.ReadBufferSpan();
|
const auto file_buffer = ctx.ReadBuffer();
|
||||||
const std::string name = Common::StringFromBuffer(file_buffer);
|
const std::string name = Common::StringFromBuffer(file_buffer);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "called. file={}", name);
|
LOG_DEBUG(Service_FS, "called. file={}", name);
|
||||||
|
@ -361,7 +361,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateDirectory(Kernel::HLERequestContext& ctx) {
|
void CreateDirectory(Kernel::HLERequestContext& ctx) {
|
||||||
const auto file_buffer = ctx.ReadBufferSpan();
|
const auto file_buffer = ctx.ReadBuffer();
|
||||||
const std::string name = Common::StringFromBuffer(file_buffer);
|
const std::string name = Common::StringFromBuffer(file_buffer);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "called. directory={}", name);
|
LOG_DEBUG(Service_FS, "called. directory={}", name);
|
||||||
|
@ -371,7 +371,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeleteDirectory(Kernel::HLERequestContext& ctx) {
|
void DeleteDirectory(Kernel::HLERequestContext& ctx) {
|
||||||
const auto file_buffer = ctx.ReadBufferSpan();
|
const auto file_buffer = ctx.ReadBuffer();
|
||||||
const std::string name = Common::StringFromBuffer(file_buffer);
|
const std::string name = Common::StringFromBuffer(file_buffer);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "called. directory={}", name);
|
LOG_DEBUG(Service_FS, "called. directory={}", name);
|
||||||
|
@ -381,7 +381,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeleteDirectoryRecursively(Kernel::HLERequestContext& ctx) {
|
void DeleteDirectoryRecursively(Kernel::HLERequestContext& ctx) {
|
||||||
const auto file_buffer = ctx.ReadBufferSpan();
|
const auto file_buffer = ctx.ReadBuffer();
|
||||||
const std::string name = Common::StringFromBuffer(file_buffer);
|
const std::string name = Common::StringFromBuffer(file_buffer);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "called. directory={}", name);
|
LOG_DEBUG(Service_FS, "called. directory={}", name);
|
||||||
|
@ -391,7 +391,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void CleanDirectoryRecursively(Kernel::HLERequestContext& ctx) {
|
void CleanDirectoryRecursively(Kernel::HLERequestContext& ctx) {
|
||||||
const auto file_buffer = ctx.ReadBufferSpan();
|
const auto file_buffer = ctx.ReadBuffer();
|
||||||
const std::string name = Common::StringFromBuffer(file_buffer);
|
const std::string name = Common::StringFromBuffer(file_buffer);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "called. Directory: {}", name);
|
LOG_DEBUG(Service_FS, "called. Directory: {}", name);
|
||||||
|
@ -401,8 +401,8 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenameFile(Kernel::HLERequestContext& ctx) {
|
void RenameFile(Kernel::HLERequestContext& ctx) {
|
||||||
const std::string src_name = Common::StringFromBuffer(ctx.ReadBufferSpan(0));
|
const std::string src_name = Common::StringFromBuffer(ctx.ReadBuffer(0));
|
||||||
const std::string dst_name = Common::StringFromBuffer(ctx.ReadBufferSpan(1));
|
const std::string dst_name = Common::StringFromBuffer(ctx.ReadBuffer(1));
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "called. file '{}' to file '{}'", src_name, dst_name);
|
LOG_DEBUG(Service_FS, "called. file '{}' to file '{}'", src_name, dst_name);
|
||||||
|
|
||||||
|
@ -413,7 +413,7 @@ public:
|
||||||
void OpenFile(Kernel::HLERequestContext& ctx) {
|
void OpenFile(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
|
|
||||||
const auto file_buffer = ctx.ReadBufferSpan();
|
const auto file_buffer = ctx.ReadBuffer();
|
||||||
const std::string name = Common::StringFromBuffer(file_buffer);
|
const std::string name = Common::StringFromBuffer(file_buffer);
|
||||||
|
|
||||||
const auto mode = static_cast<FileSys::Mode>(rp.Pop<u32>());
|
const auto mode = static_cast<FileSys::Mode>(rp.Pop<u32>());
|
||||||
|
@ -437,7 +437,7 @@ public:
|
||||||
void OpenDirectory(Kernel::HLERequestContext& ctx) {
|
void OpenDirectory(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
|
|
||||||
const auto file_buffer = ctx.ReadBufferSpan();
|
const auto file_buffer = ctx.ReadBuffer();
|
||||||
const std::string name = Common::StringFromBuffer(file_buffer);
|
const std::string name = Common::StringFromBuffer(file_buffer);
|
||||||
|
|
||||||
// TODO(Subv): Implement this filter.
|
// TODO(Subv): Implement this filter.
|
||||||
|
@ -460,7 +460,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void GetEntryType(Kernel::HLERequestContext& ctx) {
|
void GetEntryType(Kernel::HLERequestContext& ctx) {
|
||||||
const auto file_buffer = ctx.ReadBufferSpan();
|
const auto file_buffer = ctx.ReadBuffer();
|
||||||
const std::string name = Common::StringFromBuffer(file_buffer);
|
const std::string name = Common::StringFromBuffer(file_buffer);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "called. file={}", name);
|
LOG_DEBUG(Service_FS, "called. file={}", name);
|
||||||
|
@ -501,7 +501,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void GetFileTimeStampRaw(Kernel::HLERequestContext& ctx) {
|
void GetFileTimeStampRaw(Kernel::HLERequestContext& ctx) {
|
||||||
const auto file_buffer = ctx.ReadBufferSpan();
|
const auto file_buffer = ctx.ReadBuffer();
|
||||||
const std::string name = Common::StringFromBuffer(file_buffer);
|
const std::string name = Common::StringFromBuffer(file_buffer);
|
||||||
|
|
||||||
LOG_WARNING(Service_FS, "(Partial Implementation) called. file={}", name);
|
LOG_WARNING(Service_FS, "(Partial Implementation) called. file={}", name);
|
||||||
|
@ -1083,7 +1083,7 @@ void FSP_SRV::GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void FSP_SRV::OutputAccessLogToSdCard(Kernel::HLERequestContext& ctx) {
|
void FSP_SRV::OutputAccessLogToSdCard(Kernel::HLERequestContext& ctx) {
|
||||||
const auto raw = ctx.ReadBufferSpan();
|
const auto raw = ctx.ReadBuffer();
|
||||||
auto log = Common::StringFromFixedZeroTerminatedBuffer(
|
auto log = Common::StringFromFixedZeroTerminatedBuffer(
|
||||||
reinterpret_cast<const char*>(raw.data()), raw.size());
|
reinterpret_cast<const char*>(raw.data()), raw.size());
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ void NOTIF_A::RegisterAlarmSetting(Kernel::HLERequestContext& ctx) {
|
||||||
"application_parameter_size is bigger than 0x400 bytes");
|
"application_parameter_size is bigger than 0x400 bytes");
|
||||||
|
|
||||||
AlarmSetting new_alarm{};
|
AlarmSetting new_alarm{};
|
||||||
memcpy(&new_alarm, ctx.ReadBufferSpan(0).data(), sizeof(AlarmSetting));
|
memcpy(&new_alarm, ctx.ReadBuffer(0).data(), sizeof(AlarmSetting));
|
||||||
|
|
||||||
// TODO: Count alarms per game id
|
// TODO: Count alarms per game id
|
||||||
if (alarms.size() >= max_alarms) {
|
if (alarms.size() >= max_alarms) {
|
||||||
|
@ -73,7 +73,7 @@ void NOTIF_A::UpdateAlarmSetting(Kernel::HLERequestContext& ctx) {
|
||||||
"application_parameter_size is bigger than 0x400 bytes");
|
"application_parameter_size is bigger than 0x400 bytes");
|
||||||
|
|
||||||
AlarmSetting alarm_setting{};
|
AlarmSetting alarm_setting{};
|
||||||
memcpy(&alarm_setting, ctx.ReadBufferSpan(0).data(), sizeof(AlarmSetting));
|
memcpy(&alarm_setting, ctx.ReadBuffer(0).data(), sizeof(AlarmSetting));
|
||||||
|
|
||||||
const auto alarm_it = GetAlarmFromId(alarm_setting.alarm_setting_id);
|
const auto alarm_it = GetAlarmFromId(alarm_setting.alarm_setting_id);
|
||||||
if (alarm_it != alarms.end()) {
|
if (alarm_it != alarms.end()) {
|
||||||
|
|
|
@ -1026,7 +1026,7 @@ void Hid::SetSupportedNpadIdType(Kernel::HLERequestContext& ctx) {
|
||||||
const auto applet_resource_user_id{rp.Pop<u64>()};
|
const auto applet_resource_user_id{rp.Pop<u64>()};
|
||||||
|
|
||||||
applet_resource->GetController<Controller_NPad>(HidController::NPad)
|
applet_resource->GetController<Controller_NPad>(HidController::NPad)
|
||||||
.SetSupportedNpadIdTypes(ctx.ReadBufferSpan());
|
.SetSupportedNpadIdTypes(ctx.ReadBuffer());
|
||||||
|
|
||||||
LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);
|
LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);
|
||||||
|
|
||||||
|
@ -1564,8 +1564,8 @@ void Hid::SendVibrationValues(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto applet_resource_user_id{rp.Pop<u64>()};
|
const auto applet_resource_user_id{rp.Pop<u64>()};
|
||||||
|
|
||||||
const auto handles = ctx.ReadBufferSpan(0);
|
const auto handles = ctx.ReadBuffer(0);
|
||||||
const auto vibrations = ctx.ReadBufferSpan(1);
|
const auto vibrations = ctx.ReadBuffer(1);
|
||||||
|
|
||||||
std::vector<Core::HID::VibrationDeviceHandle> vibration_device_handles(
|
std::vector<Core::HID::VibrationDeviceHandle> vibration_device_handles(
|
||||||
handles.size() / sizeof(Core::HID::VibrationDeviceHandle));
|
handles.size() / sizeof(Core::HID::VibrationDeviceHandle));
|
||||||
|
@ -2104,7 +2104,7 @@ void Hid::WritePalmaRgbLedPatternEntry(Kernel::HLERequestContext& ctx) {
|
||||||
const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()};
|
const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()};
|
||||||
const auto unknown{rp.Pop<u64>()};
|
const auto unknown{rp.Pop<u64>()};
|
||||||
|
|
||||||
[[maybe_unused]] const auto buffer = ctx.ReadBufferSpan();
|
[[maybe_unused]] const auto buffer = ctx.ReadBuffer();
|
||||||
|
|
||||||
LOG_WARNING(Service_HID, "(STUBBED) called, connection_handle={}, unknown={}",
|
LOG_WARNING(Service_HID, "(STUBBED) called, connection_handle={}, unknown={}",
|
||||||
connection_handle.npad_id, unknown);
|
connection_handle.npad_id, unknown);
|
||||||
|
|
|
@ -351,7 +351,7 @@ void HidBus::GetExternalDeviceId(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
void HidBus::SendCommandAsync(Kernel::HLERequestContext& ctx) {
|
void HidBus::SendCommandAsync(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto data = ctx.ReadBufferSpan();
|
const auto data = ctx.ReadBuffer();
|
||||||
const auto bus_handle_{rp.PopRaw<BusHandle>()};
|
const auto bus_handle_{rp.PopRaw<BusHandle>()};
|
||||||
|
|
||||||
LOG_DEBUG(Service_HID,
|
LOG_DEBUG(Service_HID,
|
||||||
|
|
|
@ -62,7 +62,7 @@ public:
|
||||||
const auto parameters{rp.PopRaw<InputParameters>()};
|
const auto parameters{rp.PopRaw<InputParameters>()};
|
||||||
|
|
||||||
// Optional input/output buffers
|
// Optional input/output buffers
|
||||||
const auto input_buffer{ctx.CanReadBuffer() ? ctx.ReadBufferSpan() : std::span<const u8>()};
|
const auto input_buffer{ctx.CanReadBuffer() ? ctx.ReadBuffer() : std::span<const u8>()};
|
||||||
std::vector<u8> output_buffer(ctx.CanWriteBuffer() ? ctx.GetWriteBufferSize() : 0);
|
std::vector<u8> output_buffer(ctx.CanWriteBuffer() ? ctx.GetWriteBufferSize() : 0);
|
||||||
|
|
||||||
// Function call prototype:
|
// Function call prototype:
|
||||||
|
@ -132,7 +132,7 @@ public:
|
||||||
const auto command{rp.PopRaw<u64>()};
|
const auto command{rp.PopRaw<u64>()};
|
||||||
|
|
||||||
// Optional input/output buffers
|
// Optional input/output buffers
|
||||||
const auto input_buffer{ctx.CanReadBuffer() ? ctx.ReadBufferSpan() : std::span<const u8>()};
|
const auto input_buffer{ctx.CanReadBuffer() ? ctx.ReadBuffer() : std::span<const u8>()};
|
||||||
std::vector<u8> output_buffer(ctx.CanWriteBuffer() ? ctx.GetWriteBufferSize() : 0);
|
std::vector<u8> output_buffer(ctx.CanWriteBuffer() ? ctx.GetWriteBufferSize() : 0);
|
||||||
|
|
||||||
// Function call prototype:
|
// Function call prototype:
|
||||||
|
@ -176,7 +176,7 @@ public:
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto tmem_size{rp.PopRaw<u64>()};
|
const auto tmem_size{rp.PopRaw<u64>()};
|
||||||
const auto tmem_handle{ctx.GetCopyHandle(0)};
|
const auto tmem_handle{ctx.GetCopyHandle(0)};
|
||||||
const auto nro_plugin{ctx.ReadBufferSpan(1)};
|
const auto nro_plugin{ctx.ReadBuffer(1)};
|
||||||
|
|
||||||
if (tmem_size == 0) {
|
if (tmem_size == 0) {
|
||||||
LOG_ERROR(Service_JIT, "attempted to load plugin with empty transfer memory");
|
LOG_ERROR(Service_JIT, "attempted to load plugin with empty transfer memory");
|
||||||
|
|
|
@ -412,7 +412,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetAdvertiseData(Kernel::HLERequestContext& ctx) {
|
void SetAdvertiseData(Kernel::HLERequestContext& ctx) {
|
||||||
const auto read_buffer = ctx.ReadBufferSpan();
|
const auto read_buffer = ctx.ReadBuffer();
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(lan_discovery.SetAdvertiseData(read_buffer));
|
rb.Push(lan_discovery.SetAdvertiseData(read_buffer));
|
||||||
|
@ -464,7 +464,7 @@ public:
|
||||||
parameters.security_config.passphrase_size,
|
parameters.security_config.passphrase_size,
|
||||||
parameters.security_config.security_mode, parameters.local_communication_version);
|
parameters.security_config.security_mode, parameters.local_communication_version);
|
||||||
|
|
||||||
const auto read_buffer = ctx.ReadBufferSpan();
|
const auto read_buffer = ctx.ReadBuffer();
|
||||||
if (read_buffer.size() != sizeof(NetworkInfo)) {
|
if (read_buffer.size() != sizeof(NetworkInfo)) {
|
||||||
LOG_ERROR(Frontend, "NetworkInfo doesn't match read_buffer size!");
|
LOG_ERROR(Frontend, "NetworkInfo doesn't match read_buffer size!");
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
|
|
@ -94,7 +94,7 @@ public:
|
||||||
private:
|
private:
|
||||||
void Log(Kernel::HLERequestContext& ctx) {
|
void Log(Kernel::HLERequestContext& ctx) {
|
||||||
std::size_t offset{};
|
std::size_t offset{};
|
||||||
const auto data = ctx.ReadBufferSpan();
|
const auto data = ctx.ReadBuffer();
|
||||||
|
|
||||||
// This function only succeeds - Get that out of the way
|
// This function only succeeds - Get that out of the way
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
|
|
@ -168,7 +168,7 @@ void MFIUser::StopDetection(Kernel::HLERequestContext& ctx) {
|
||||||
void MFIUser::Read(Kernel::HLERequestContext& ctx) {
|
void MFIUser::Read(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto device_handle{rp.Pop<u64>()};
|
const auto device_handle{rp.Pop<u64>()};
|
||||||
const auto buffer{ctx.ReadBufferSpan()};
|
const auto buffer{ctx.ReadBuffer()};
|
||||||
const auto number_of_commands{ctx.GetReadBufferNumElements<NFP::MifareReadBlockParameter>()};
|
const auto number_of_commands{ctx.GetReadBufferNumElements<NFP::MifareReadBlockParameter>()};
|
||||||
std::vector<NFP::MifareReadBlockParameter> read_commands(number_of_commands);
|
std::vector<NFP::MifareReadBlockParameter> read_commands(number_of_commands);
|
||||||
|
|
||||||
|
@ -209,7 +209,7 @@ void MFIUser::Read(Kernel::HLERequestContext& ctx) {
|
||||||
void MFIUser::Write(Kernel::HLERequestContext& ctx) {
|
void MFIUser::Write(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto device_handle{rp.Pop<u64>()};
|
const auto device_handle{rp.Pop<u64>()};
|
||||||
const auto buffer{ctx.ReadBufferSpan()};
|
const auto buffer{ctx.ReadBuffer()};
|
||||||
const auto number_of_commands{ctx.GetReadBufferNumElements<NFP::MifareWriteBlockParameter>()};
|
const auto number_of_commands{ctx.GetReadBufferNumElements<NFP::MifareWriteBlockParameter>()};
|
||||||
std::vector<NFP::MifareWriteBlockParameter> write_commands(number_of_commands);
|
std::vector<NFP::MifareWriteBlockParameter> write_commands(number_of_commands);
|
||||||
|
|
||||||
|
|
|
@ -325,7 +325,7 @@ void IUser::SendCommandByPassThrough(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto device_handle{rp.Pop<u64>()};
|
const auto device_handle{rp.Pop<u64>()};
|
||||||
const auto timeout{rp.PopRaw<Time::Clock::TimeSpanType>()};
|
const auto timeout{rp.PopRaw<Time::Clock::TimeSpanType>()};
|
||||||
const auto command_data{ctx.ReadBufferSpan()};
|
const auto command_data{ctx.ReadBuffer()};
|
||||||
|
|
||||||
LOG_INFO(Service_NFC, "(STUBBED) called, device_handle={}, timeout={}, data_size={}",
|
LOG_INFO(Service_NFC, "(STUBBED) called, device_handle={}, timeout={}, data_size={}",
|
||||||
device_handle, timeout.ToSeconds(), command_data.size());
|
device_handle, timeout.ToSeconds(), command_data.size());
|
||||||
|
|
|
@ -290,7 +290,7 @@ void IUser::GetApplicationArea(Kernel::HLERequestContext& ctx) {
|
||||||
void IUser::SetApplicationArea(Kernel::HLERequestContext& ctx) {
|
void IUser::SetApplicationArea(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto device_handle{rp.Pop<u64>()};
|
const auto device_handle{rp.Pop<u64>()};
|
||||||
const auto data{ctx.ReadBufferSpan()};
|
const auto data{ctx.ReadBuffer()};
|
||||||
LOG_INFO(Service_NFP, "called, device_handle={}, data_size={}", device_handle, data.size());
|
LOG_INFO(Service_NFP, "called, device_handle={}, data_size={}", device_handle, data.size());
|
||||||
|
|
||||||
if (state == State::NonInitialized) {
|
if (state == State::NonInitialized) {
|
||||||
|
@ -370,7 +370,7 @@ void IUser::CreateApplicationArea(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto device_handle{rp.Pop<u64>()};
|
const auto device_handle{rp.Pop<u64>()};
|
||||||
const auto access_id{rp.Pop<u32>()};
|
const auto access_id{rp.Pop<u32>()};
|
||||||
const auto data{ctx.ReadBufferSpan()};
|
const auto data{ctx.ReadBuffer()};
|
||||||
LOG_INFO(Service_NFP, "called, device_handle={}, data_size={}, access_id={}", device_handle,
|
LOG_INFO(Service_NFP, "called, device_handle={}, data_size={}, access_id={}", device_handle,
|
||||||
access_id, data.size());
|
access_id, data.size());
|
||||||
|
|
||||||
|
@ -637,7 +637,7 @@ void IUser::RecreateApplicationArea(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto device_handle{rp.Pop<u64>()};
|
const auto device_handle{rp.Pop<u64>()};
|
||||||
const auto access_id{rp.Pop<u32>()};
|
const auto access_id{rp.Pop<u32>()};
|
||||||
const auto data{ctx.ReadBufferSpan()};
|
const auto data{ctx.ReadBuffer()};
|
||||||
LOG_INFO(Service_NFP, "called, device_handle={}, data_size={}, access_id={}", device_handle,
|
LOG_INFO(Service_NFP, "called, device_handle={}, data_size={}, access_id={}", device_handle,
|
||||||
access_id, data.size());
|
access_id, data.size());
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void Match(Kernel::HLERequestContext& ctx) {
|
void Match(Kernel::HLERequestContext& ctx) {
|
||||||
const auto buffer = ctx.ReadBufferSpan();
|
const auto buffer = ctx.ReadBuffer();
|
||||||
const auto text = Common::StringFromFixedZeroTerminatedBuffer(
|
const auto text = Common::StringFromFixedZeroTerminatedBuffer(
|
||||||
reinterpret_cast<const char*>(buffer.data()), buffer.size());
|
reinterpret_cast<const char*>(buffer.data()), buffer.size());
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
void Filter(Kernel::HLERequestContext& ctx) {
|
void Filter(Kernel::HLERequestContext& ctx) {
|
||||||
const auto buffer = ctx.ReadBufferSpan();
|
const auto buffer = ctx.ReadBuffer();
|
||||||
const auto text = Common::StringFromFixedZeroTerminatedBuffer(
|
const auto text = Common::StringFromFixedZeroTerminatedBuffer(
|
||||||
reinterpret_cast<const char*>(buffer.data()), buffer.size());
|
reinterpret_cast<const char*>(buffer.data()), buffer.size());
|
||||||
|
|
||||||
|
|
|
@ -414,7 +414,7 @@ void IGeneralService::CreateTemporaryNetworkProfile(Kernel::HLERequestContext& c
|
||||||
|
|
||||||
ASSERT_MSG(ctx.GetReadBufferSize() == 0x17c, "SfNetworkProfileData is not the correct size");
|
ASSERT_MSG(ctx.GetReadBufferSize() == 0x17c, "SfNetworkProfileData is not the correct size");
|
||||||
u128 uuid{};
|
u128 uuid{};
|
||||||
auto buffer = ctx.ReadBufferSpan();
|
auto buffer = ctx.ReadBuffer();
|
||||||
std::memcpy(&uuid, buffer.data() + 8, sizeof(u128));
|
std::memcpy(&uuid, buffer.data() + 8, sizeof(u128));
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 6, 0, 1};
|
IPC::ResponseBuilder rb{ctx, 6, 0, 1};
|
||||||
|
|
|
@ -27,7 +27,7 @@ void NVDRV::Open(Kernel::HLERequestContext& ctx) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto& buffer = ctx.ReadBufferSpan();
|
const auto& buffer = ctx.ReadBuffer();
|
||||||
const std::string device_name(buffer.begin(), buffer.end());
|
const std::string device_name(buffer.begin(), buffer.end());
|
||||||
|
|
||||||
if (device_name == "/dev/nvhost-prof-gpu") {
|
if (device_name == "/dev/nvhost-prof-gpu") {
|
||||||
|
@ -64,7 +64,7 @@ void NVDRV::Ioctl1(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
// Check device
|
// Check device
|
||||||
std::vector<u8> output_buffer(ctx.GetWriteBufferSize(0));
|
std::vector<u8> output_buffer(ctx.GetWriteBufferSize(0));
|
||||||
const auto input_buffer = ctx.ReadBufferSpan(0);
|
const auto input_buffer = ctx.ReadBuffer(0);
|
||||||
|
|
||||||
const auto nv_result = nvdrv->Ioctl1(fd, command, input_buffer, output_buffer);
|
const auto nv_result = nvdrv->Ioctl1(fd, command, input_buffer, output_buffer);
|
||||||
if (command.is_out != 0) {
|
if (command.is_out != 0) {
|
||||||
|
@ -88,8 +88,8 @@ void NVDRV::Ioctl2(Kernel::HLERequestContext& ctx) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto input_buffer = ctx.ReadBufferSpan(0);
|
const auto input_buffer = ctx.ReadBuffer(0);
|
||||||
const auto input_inlined_buffer = ctx.ReadBufferSpan(1);
|
const auto input_inlined_buffer = ctx.ReadBuffer(1);
|
||||||
std::vector<u8> output_buffer(ctx.GetWriteBufferSize(0));
|
std::vector<u8> output_buffer(ctx.GetWriteBufferSize(0));
|
||||||
|
|
||||||
const auto nv_result =
|
const auto nv_result =
|
||||||
|
@ -115,7 +115,7 @@ void NVDRV::Ioctl3(Kernel::HLERequestContext& ctx) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto input_buffer = ctx.ReadBufferSpan(0);
|
const auto input_buffer = ctx.ReadBuffer(0);
|
||||||
std::vector<u8> output_buffer(ctx.GetWriteBufferSize(0));
|
std::vector<u8> output_buffer(ctx.GetWriteBufferSize(0));
|
||||||
std::vector<u8> output_buffer_inline(ctx.GetWriteBufferSize(1));
|
std::vector<u8> output_buffer_inline(ctx.GetWriteBufferSize(1));
|
||||||
|
|
||||||
|
|
|
@ -815,7 +815,7 @@ Status BufferQueueProducer::SetPreallocatedBuffer(s32 slot,
|
||||||
|
|
||||||
void BufferQueueProducer::Transact(Kernel::HLERequestContext& ctx, TransactionId code, u32 flags) {
|
void BufferQueueProducer::Transact(Kernel::HLERequestContext& ctx, TransactionId code, u32 flags) {
|
||||||
Status status{Status::NoError};
|
Status status{Status::NoError};
|
||||||
InputParcel parcel_in{ctx.ReadBufferSpan()};
|
InputParcel parcel_in{ctx.ReadBuffer()};
|
||||||
OutputParcel parcel_out{};
|
OutputParcel parcel_out{};
|
||||||
|
|
||||||
switch (code) {
|
switch (code) {
|
||||||
|
|
|
@ -57,10 +57,10 @@ private:
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto process_id = rp.PopRaw<u64>();
|
const auto process_id = rp.PopRaw<u64>();
|
||||||
|
|
||||||
const auto data1 = ctx.ReadBufferSpan(0);
|
const auto data1 = ctx.ReadBuffer(0);
|
||||||
const auto data2 = [&ctx] {
|
const auto data2 = [&ctx] {
|
||||||
if (ctx.CanReadBuffer(1)) {
|
if (ctx.CanReadBuffer(1)) {
|
||||||
return ctx.ReadBufferSpan(1);
|
return ctx.ReadBuffer(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return std::span<const u8>{};
|
return std::span<const u8>{};
|
||||||
|
@ -84,10 +84,10 @@ private:
|
||||||
const auto user_id = rp.PopRaw<u128>();
|
const auto user_id = rp.PopRaw<u128>();
|
||||||
const auto process_id = rp.PopRaw<u64>();
|
const auto process_id = rp.PopRaw<u64>();
|
||||||
|
|
||||||
const auto data1 = ctx.ReadBufferSpan(0);
|
const auto data1 = ctx.ReadBuffer(0);
|
||||||
const auto data2 = [&ctx] {
|
const auto data2 = [&ctx] {
|
||||||
if (ctx.CanReadBuffer(1)) {
|
if (ctx.CanReadBuffer(1)) {
|
||||||
return ctx.ReadBufferSpan(1);
|
return ctx.ReadBuffer(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return std::span<const u8>{};
|
return std::span<const u8>{};
|
||||||
|
@ -136,10 +136,10 @@ private:
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto title_id = rp.PopRaw<u64>();
|
const auto title_id = rp.PopRaw<u64>();
|
||||||
|
|
||||||
const auto data1 = ctx.ReadBufferSpan(0);
|
const auto data1 = ctx.ReadBuffer(0);
|
||||||
const auto data2 = [&ctx] {
|
const auto data2 = [&ctx] {
|
||||||
if (ctx.CanReadBuffer(1)) {
|
if (ctx.CanReadBuffer(1)) {
|
||||||
return ctx.ReadBufferSpan(1);
|
return ctx.ReadBuffer(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return std::span<const u8>{};
|
return std::span<const u8>{};
|
||||||
|
@ -160,10 +160,10 @@ private:
|
||||||
const auto user_id = rp.PopRaw<u128>();
|
const auto user_id = rp.PopRaw<u128>();
|
||||||
const auto title_id = rp.PopRaw<u64>();
|
const auto title_id = rp.PopRaw<u64>();
|
||||||
|
|
||||||
const auto data1 = ctx.ReadBufferSpan(0);
|
const auto data1 = ctx.ReadBuffer(0);
|
||||||
const auto data2 = [&ctx] {
|
const auto data2 = [&ctx] {
|
||||||
if (ctx.CanReadBuffer(1)) {
|
if (ctx.CanReadBuffer(1)) {
|
||||||
return ctx.ReadBufferSpan(1);
|
return ctx.ReadBuffer(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return std::span<const u8>{};
|
return std::span<const u8>{};
|
||||||
|
|
|
@ -131,12 +131,12 @@ void SET_SYS::GetSettingsItemValueSize(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
// The category of the setting. This corresponds to the top-level keys of
|
// The category of the setting. This corresponds to the top-level keys of
|
||||||
// system_settings.ini.
|
// system_settings.ini.
|
||||||
const auto setting_category_buf{ctx.ReadBufferSpan(0)};
|
const auto setting_category_buf{ctx.ReadBuffer(0)};
|
||||||
const std::string setting_category{setting_category_buf.begin(), setting_category_buf.end()};
|
const std::string setting_category{setting_category_buf.begin(), setting_category_buf.end()};
|
||||||
|
|
||||||
// The name of the setting. This corresponds to the second-level keys of
|
// The name of the setting. This corresponds to the second-level keys of
|
||||||
// system_settings.ini.
|
// system_settings.ini.
|
||||||
const auto setting_name_buf{ctx.ReadBufferSpan(1)};
|
const auto setting_name_buf{ctx.ReadBuffer(1)};
|
||||||
const std::string setting_name{setting_name_buf.begin(), setting_name_buf.end()};
|
const std::string setting_name{setting_name_buf.begin(), setting_name_buf.end()};
|
||||||
|
|
||||||
auto settings{GetSettings()};
|
auto settings{GetSettings()};
|
||||||
|
@ -156,12 +156,12 @@ void SET_SYS::GetSettingsItemValue(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
// The category of the setting. This corresponds to the top-level keys of
|
// The category of the setting. This corresponds to the top-level keys of
|
||||||
// system_settings.ini.
|
// system_settings.ini.
|
||||||
const auto setting_category_buf{ctx.ReadBufferSpan(0)};
|
const auto setting_category_buf{ctx.ReadBuffer(0)};
|
||||||
const std::string setting_category{setting_category_buf.begin(), setting_category_buf.end()};
|
const std::string setting_category{setting_category_buf.begin(), setting_category_buf.end()};
|
||||||
|
|
||||||
// The name of the setting. This corresponds to the second-level keys of
|
// The name of the setting. This corresponds to the second-level keys of
|
||||||
// system_settings.ini.
|
// system_settings.ini.
|
||||||
const auto setting_name_buf{ctx.ReadBufferSpan(1)};
|
const auto setting_name_buf{ctx.ReadBuffer(1)};
|
||||||
const std::string setting_name{setting_name_buf.begin(), setting_name_buf.end()};
|
const std::string setting_name{setting_name_buf.begin(), setting_name_buf.end()};
|
||||||
|
|
||||||
auto settings{GetSettings()};
|
auto settings{GetSettings()};
|
||||||
|
|
|
@ -186,7 +186,7 @@ void BSD::Poll(Kernel::HLERequestContext& ctx) {
|
||||||
ExecuteWork(ctx, PollWork{
|
ExecuteWork(ctx, PollWork{
|
||||||
.nfds = nfds,
|
.nfds = nfds,
|
||||||
.timeout = timeout,
|
.timeout = timeout,
|
||||||
.read_buffer = ctx.ReadBufferSpan(),
|
.read_buffer = ctx.ReadBuffer(),
|
||||||
.write_buffer = std::vector<u8>(ctx.GetWriteBufferSize()),
|
.write_buffer = std::vector<u8>(ctx.GetWriteBufferSize()),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -208,7 +208,7 @@ void BSD::Bind(Kernel::HLERequestContext& ctx) {
|
||||||
const s32 fd = rp.Pop<s32>();
|
const s32 fd = rp.Pop<s32>();
|
||||||
|
|
||||||
LOG_DEBUG(Service, "called. fd={} addrlen={}", fd, ctx.GetReadBufferSize());
|
LOG_DEBUG(Service, "called. fd={} addrlen={}", fd, ctx.GetReadBufferSize());
|
||||||
BuildErrnoResponse(ctx, BindImpl(fd, ctx.ReadBufferSpan()));
|
BuildErrnoResponse(ctx, BindImpl(fd, ctx.ReadBuffer()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void BSD::Connect(Kernel::HLERequestContext& ctx) {
|
void BSD::Connect(Kernel::HLERequestContext& ctx) {
|
||||||
|
@ -219,7 +219,7 @@ void BSD::Connect(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
ExecuteWork(ctx, ConnectWork{
|
ExecuteWork(ctx, ConnectWork{
|
||||||
.fd = fd,
|
.fd = fd,
|
||||||
.addr = ctx.ReadBufferSpan(),
|
.addr = ctx.ReadBuffer(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -311,7 +311,7 @@ void BSD::SetSockOpt(Kernel::HLERequestContext& ctx) {
|
||||||
const u32 level = rp.Pop<u32>();
|
const u32 level = rp.Pop<u32>();
|
||||||
const OptName optname = static_cast<OptName>(rp.Pop<u32>());
|
const OptName optname = static_cast<OptName>(rp.Pop<u32>());
|
||||||
|
|
||||||
const auto buffer = ctx.ReadBufferSpan();
|
const auto buffer = ctx.ReadBuffer();
|
||||||
const u8* optval = buffer.empty() ? nullptr : buffer.data();
|
const u8* optval = buffer.empty() ? nullptr : buffer.data();
|
||||||
size_t optlen = buffer.size();
|
size_t optlen = buffer.size();
|
||||||
|
|
||||||
|
@ -382,7 +382,7 @@ void BSD::Send(Kernel::HLERequestContext& ctx) {
|
||||||
ExecuteWork(ctx, SendWork{
|
ExecuteWork(ctx, SendWork{
|
||||||
.fd = fd,
|
.fd = fd,
|
||||||
.flags = flags,
|
.flags = flags,
|
||||||
.message = ctx.ReadBufferSpan(),
|
.message = ctx.ReadBuffer(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -397,8 +397,8 @@ void BSD::SendTo(Kernel::HLERequestContext& ctx) {
|
||||||
ExecuteWork(ctx, SendToWork{
|
ExecuteWork(ctx, SendToWork{
|
||||||
.fd = fd,
|
.fd = fd,
|
||||||
.flags = flags,
|
.flags = flags,
|
||||||
.message = ctx.ReadBufferSpan(0),
|
.message = ctx.ReadBuffer(0),
|
||||||
.addr = ctx.ReadBufferSpan(1),
|
.addr = ctx.ReadBuffer(1),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -411,7 +411,7 @@ void BSD::Write(Kernel::HLERequestContext& ctx) {
|
||||||
ExecuteWork(ctx, SendWork{
|
ExecuteWork(ctx, SendWork{
|
||||||
.fd = fd,
|
.fd = fd,
|
||||||
.flags = 0,
|
.flags = 0,
|
||||||
.message = ctx.ReadBufferSpan(),
|
.message = ctx.ReadBuffer(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -199,10 +199,10 @@ static std::pair<u32, s32> GetAddrInfoRequestImpl(Kernel::HLERequestContext& ctx
|
||||||
"called with ignored parameters: use_nsd_resolve={}, unknown={}, process_id={}",
|
"called with ignored parameters: use_nsd_resolve={}, unknown={}, process_id={}",
|
||||||
parameters.use_nsd_resolve, parameters.unknown, parameters.process_id);
|
parameters.use_nsd_resolve, parameters.unknown, parameters.process_id);
|
||||||
|
|
||||||
const auto host_buffer = ctx.ReadBufferSpan(0);
|
const auto host_buffer = ctx.ReadBuffer(0);
|
||||||
const std::string host = Common::StringFromBuffer(host_buffer);
|
const std::string host = Common::StringFromBuffer(host_buffer);
|
||||||
|
|
||||||
const auto service_buffer = ctx.ReadBufferSpan(1);
|
const auto service_buffer = ctx.ReadBuffer(1);
|
||||||
const std::string service = Common::StringFromBuffer(service_buffer);
|
const std::string service = Common::StringFromBuffer(service_buffer);
|
||||||
|
|
||||||
addrinfo* addrinfo;
|
addrinfo* addrinfo;
|
||||||
|
|
|
@ -101,7 +101,7 @@ private:
|
||||||
void ImportServerPki(Kernel::HLERequestContext& ctx) {
|
void ImportServerPki(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto certificate_format = rp.PopEnum<CertificateFormat>();
|
const auto certificate_format = rp.PopEnum<CertificateFormat>();
|
||||||
[[maybe_unused]] const auto pkcs_12_certificates = ctx.ReadBufferSpan(0);
|
[[maybe_unused]] const auto pkcs_12_certificates = ctx.ReadBuffer(0);
|
||||||
|
|
||||||
constexpr u64 server_id = 0;
|
constexpr u64 server_id = 0;
|
||||||
|
|
||||||
|
@ -113,10 +113,10 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImportClientPki(Kernel::HLERequestContext& ctx) {
|
void ImportClientPki(Kernel::HLERequestContext& ctx) {
|
||||||
[[maybe_unused]] const auto pkcs_12_certificate = ctx.ReadBufferSpan(0);
|
[[maybe_unused]] const auto pkcs_12_certificate = ctx.ReadBuffer(0);
|
||||||
[[maybe_unused]] const auto ascii_password = [&ctx] {
|
[[maybe_unused]] const auto ascii_password = [&ctx] {
|
||||||
if (ctx.CanReadBuffer(1)) {
|
if (ctx.CanReadBuffer(1)) {
|
||||||
return ctx.ReadBufferSpan(1);
|
return ctx.ReadBuffer(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return std::span<const u8>{};
|
return std::span<const u8>{};
|
||||||
|
|
|
@ -328,8 +328,8 @@ void Module::Interface::CalculateStandardUserSystemClockDifferenceByUser(
|
||||||
Clock::ClockSnapshot snapshot_a;
|
Clock::ClockSnapshot snapshot_a;
|
||||||
Clock::ClockSnapshot snapshot_b;
|
Clock::ClockSnapshot snapshot_b;
|
||||||
|
|
||||||
const auto snapshot_a_data = ctx.ReadBufferSpan(0);
|
const auto snapshot_a_data = ctx.ReadBuffer(0);
|
||||||
const auto snapshot_b_data = ctx.ReadBufferSpan(1);
|
const auto snapshot_b_data = ctx.ReadBuffer(1);
|
||||||
|
|
||||||
std::memcpy(&snapshot_a, snapshot_a_data.data(), sizeof(Clock::ClockSnapshot));
|
std::memcpy(&snapshot_a, snapshot_a_data.data(), sizeof(Clock::ClockSnapshot));
|
||||||
std::memcpy(&snapshot_b, snapshot_b_data.data(), sizeof(Clock::ClockSnapshot));
|
std::memcpy(&snapshot_b, snapshot_b_data.data(), sizeof(Clock::ClockSnapshot));
|
||||||
|
@ -355,8 +355,8 @@ void Module::Interface::CalculateSpanBetween(Kernel::HLERequestContext& ctx) {
|
||||||
Clock::ClockSnapshot snapshot_a;
|
Clock::ClockSnapshot snapshot_a;
|
||||||
Clock::ClockSnapshot snapshot_b;
|
Clock::ClockSnapshot snapshot_b;
|
||||||
|
|
||||||
const auto snapshot_a_data = ctx.ReadBufferSpan(0);
|
const auto snapshot_a_data = ctx.ReadBuffer(0);
|
||||||
const auto snapshot_b_data = ctx.ReadBufferSpan(1);
|
const auto snapshot_b_data = ctx.ReadBuffer(1);
|
||||||
|
|
||||||
std::memcpy(&snapshot_a, snapshot_a_data.data(), sizeof(Clock::ClockSnapshot));
|
std::memcpy(&snapshot_a, snapshot_a_data.data(), sizeof(Clock::ClockSnapshot));
|
||||||
std::memcpy(&snapshot_b, snapshot_b_data.data(), sizeof(Clock::ClockSnapshot));
|
std::memcpy(&snapshot_b, snapshot_b_data.data(), sizeof(Clock::ClockSnapshot));
|
||||||
|
|
|
@ -84,7 +84,7 @@ void ITimeZoneService::ToCalendarTime(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_DEBUG(Service_Time, "called, posix_time=0x{:016X}", posix_time);
|
LOG_DEBUG(Service_Time, "called, posix_time=0x{:016X}", posix_time);
|
||||||
|
|
||||||
TimeZone::TimeZoneRule time_zone_rule{};
|
TimeZone::TimeZoneRule time_zone_rule{};
|
||||||
const auto buffer{ctx.ReadBufferSpan()};
|
const auto buffer{ctx.ReadBuffer()};
|
||||||
std::memcpy(&time_zone_rule, buffer.data(), buffer.size());
|
std::memcpy(&time_zone_rule, buffer.data(), buffer.size());
|
||||||
|
|
||||||
TimeZone::CalendarInfo calendar_info{};
|
TimeZone::CalendarInfo calendar_info{};
|
||||||
|
@ -128,7 +128,7 @@ void ITimeZoneService::ToPosixTime(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto calendar_time{rp.PopRaw<TimeZone::CalendarTime>()};
|
const auto calendar_time{rp.PopRaw<TimeZone::CalendarTime>()};
|
||||||
TimeZone::TimeZoneRule time_zone_rule{};
|
TimeZone::TimeZoneRule time_zone_rule{};
|
||||||
std::memcpy(&time_zone_rule, ctx.ReadBufferSpan().data(), sizeof(TimeZone::TimeZoneRule));
|
std::memcpy(&time_zone_rule, ctx.ReadBuffer().data(), sizeof(TimeZone::TimeZoneRule));
|
||||||
|
|
||||||
s64 posix_time{};
|
s64 posix_time{};
|
||||||
if (const Result result{time_zone_content_manager.GetTimeZoneManager().ToPosixTime(
|
if (const Result result{time_zone_content_manager.GetTimeZoneManager().ToPosixTime(
|
||||||
|
|
Reference in New Issue