Merge pull request #3138 from wwylele/ipc-mapped-buffer
Kernel/IPC: Implement MappedBuffer translation for HLE services that use the HLERequestContext architecture.
This commit is contained in:
@@ -606,7 +606,7 @@ void DeleteContents(Service::Interface* self) {
|
||||
u8 media_type = rp.Pop<u8>();
|
||||
u64 title_id = rp.Pop<u64>();
|
||||
u32 content_count = rp.Pop<u32>();
|
||||
VAddr content_ids_in = rp.PopMappedBuffer();
|
||||
VAddr content_ids_in = rp.PopMappedBuffer(nullptr);
|
||||
|
||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||
rb.Push(RESULT_SUCCESS);
|
||||
@@ -620,7 +620,7 @@ void GetProgramList(Service::Interface* self) {
|
||||
|
||||
u32 count = rp.Pop<u32>();
|
||||
u8 media_type = rp.Pop<u8>();
|
||||
VAddr title_ids_output_pointer = rp.PopMappedBuffer();
|
||||
VAddr title_ids_output_pointer = rp.PopMappedBuffer(nullptr);
|
||||
|
||||
if (!Memory::IsValidVirtualAddress(title_ids_output_pointer) || media_type > 2) {
|
||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
||||
@@ -765,7 +765,7 @@ void ListDataTitleTicketInfos(Service::Interface* self) {
|
||||
u32 ticket_count = rp.Pop<u32>();
|
||||
u64 title_id = rp.Pop<u64>();
|
||||
u32 start_index = rp.Pop<u32>();
|
||||
VAddr ticket_info_out = rp.PopMappedBuffer();
|
||||
VAddr ticket_info_out = rp.PopMappedBuffer(nullptr);
|
||||
VAddr ticket_info_write = ticket_info_out;
|
||||
|
||||
for (u32 i = 0; i < ticket_count; i++) {
|
||||
@@ -840,7 +840,7 @@ void GetTicketList(Service::Interface* self) {
|
||||
IPC::RequestParser rp(Kernel::GetCommandBuffer(), 9, 2, 2); // 0x00090082
|
||||
u32 ticket_list_count = rp.Pop<u32>();
|
||||
u32 ticket_index = rp.Pop<u32>();
|
||||
VAddr ticket_tids_out = rp.PopMappedBuffer();
|
||||
VAddr ticket_tids_out = rp.PopMappedBuffer(nullptr);
|
||||
|
||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
||||
rb.Push(RESULT_SUCCESS);
|
||||
|
Reference in New Issue
Block a user