fix #1942 and adds a few IPC functions for descriptors
This commit is contained in:
parent
e91327c86a
commit
a94fb932ff
5 changed files with 110 additions and 22 deletions
|
@ -53,7 +53,7 @@ void Initialize(Service::Interface* self) {
|
|||
u32 app_id = cmd_buff[1];
|
||||
u32 flags = cmd_buff[2];
|
||||
|
||||
cmd_buff[2] = IPC::MoveHandleDesc(2);
|
||||
cmd_buff[2] = IPC::CopyHandleDesc(2);
|
||||
cmd_buff[3] = Kernel::g_handle_table.Create(notification_event).MoveFrom();
|
||||
cmd_buff[4] = Kernel::g_handle_table.Create(parameter_event).MoveFrom();
|
||||
|
||||
|
@ -96,7 +96,7 @@ void GetSharedFont(Service::Interface* self) {
|
|||
// the real APT service calculates this address by scanning the entire address space (using svcQueryMemory)
|
||||
// and searches for an allocation of the same size as the Shared Font.
|
||||
cmd_buff[2] = target_address;
|
||||
cmd_buff[3] = IPC::MoveHandleDesc();
|
||||
cmd_buff[3] = IPC::CopyHandleDesc();
|
||||
cmd_buff[4] = Kernel::g_handle_table.Create(shared_font_mem).MoveFrom();
|
||||
}
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ void GetVsyncInterruptEvent(Service::Interface* self) {
|
|||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x5, 1, 2);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw;
|
||||
cmd_buff[2] = IPC::MoveHandleDesc();
|
||||
cmd_buff[2] = IPC::CopyHandleDesc();
|
||||
cmd_buff[3] = Kernel::g_handle_table.Create(vsync_interrupt_error_event).MoveFrom();
|
||||
|
||||
LOG_WARNING(Service_CAM, "(STUBBED) called, port=%d", port);
|
||||
|
@ -64,7 +64,7 @@ void GetBufferErrorInterruptEvent(Service::Interface* self) {
|
|||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x6, 1, 2);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw;
|
||||
cmd_buff[2] = IPC::MoveHandleDesc();
|
||||
cmd_buff[2] = IPC::CopyHandleDesc();
|
||||
cmd_buff[3] = Kernel::g_handle_table.Create(interrupt_error_event).MoveFrom();
|
||||
|
||||
LOG_WARNING(Service_CAM, "(STUBBED) called, port=%d", port);
|
||||
|
@ -85,7 +85,7 @@ void SetReceiving(Service::Interface* self) {
|
|||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x7, 1, 2);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw;
|
||||
cmd_buff[2] = IPC::MoveHandleDesc();
|
||||
cmd_buff[2] = IPC::CopyHandleDesc();
|
||||
cmd_buff[3] = Kernel::g_handle_table.Create(completion_event).MoveFrom();
|
||||
|
||||
LOG_WARNING(Service_CAM, "(STUBBED) called, addr=0x%X, port=%d, image_size=%d, trans_unit=%d",
|
||||
|
|
|
@ -51,7 +51,7 @@ void Initialize(Service::Interface* self) {
|
|||
mutex = Kernel::Mutex::Create(false);
|
||||
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw;
|
||||
cmd_buff[2] = IPC::MoveHandleDesc(2);
|
||||
cmd_buff[2] = IPC::CopyHandleDesc(2);
|
||||
cmd_buff[3] = Kernel::g_handle_table.Create(mutex).MoveFrom();
|
||||
cmd_buff[4] = Kernel::g_handle_table.Create(shared_memory).MoveFrom();
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ static void EnableNotification(Service::Interface* self) {
|
|||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x2, 0x1, 0x2); // 0x20042
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
cmd_buff[2] = IPC::TransferHandleDesc();
|
||||
cmd_buff[2] = IPC::CopyHandleDesc(1);
|
||||
cmd_buff[3] = Kernel::g_handle_table.Create(event_handle).MoveFrom();
|
||||
LOG_WARNING(Service_SRV, "(STUBBED) called");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue