mirror of
https://github.com/PabloMK7/citra.git
synced 2024-11-29 19:00:17 +00:00
Services: Implemented Y2R_U::GetTransferEndEvent
Aero Porter was throwing an "Invalid Handle" fatal error without this.
This commit is contained in:
parent
3700263f71
commit
ef66feaeba
1 changed files with 18 additions and 1 deletions
|
@ -11,6 +11,8 @@
|
||||||
|
|
||||||
namespace Y2R_U {
|
namespace Y2R_U {
|
||||||
|
|
||||||
|
static Kernel::SharedPtr<Kernel::Event> completion_event = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Y2R_U::IsBusyConversion service function
|
* Y2R_U::IsBusyConversion service function
|
||||||
* Outputs:
|
* Outputs:
|
||||||
|
@ -26,13 +28,26 @@ static void IsBusyConversion(Service::Interface* self) {
|
||||||
LOG_WARNING(Service, "(STUBBED) called");
|
LOG_WARNING(Service, "(STUBBED) called");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Y2R_U::GetTransferEndEvent service function
|
||||||
|
* Outputs:
|
||||||
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
|
* 3 : The handle of the completion event
|
||||||
|
*/
|
||||||
|
static void GetTransferEndEvent(Service::Interface* self) {
|
||||||
|
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||||
|
|
||||||
|
cmd_buff[1] = RESULT_SUCCESS.raw;
|
||||||
|
cmd_buff[3] = Kernel::g_handle_table.Create(completion_event).MoveFrom();
|
||||||
|
}
|
||||||
|
|
||||||
const Interface::FunctionInfo FunctionTable[] = {
|
const Interface::FunctionInfo FunctionTable[] = {
|
||||||
{0x00010040, nullptr, "SetInputFormat"},
|
{0x00010040, nullptr, "SetInputFormat"},
|
||||||
{0x00030040, nullptr, "SetOutputFormat"},
|
{0x00030040, nullptr, "SetOutputFormat"},
|
||||||
{0x00050040, nullptr, "SetRotation"},
|
{0x00050040, nullptr, "SetRotation"},
|
||||||
{0x00070040, nullptr, "SetBlockAlignment"},
|
{0x00070040, nullptr, "SetBlockAlignment"},
|
||||||
{0x000D0040, nullptr, "SetTransferEndInterrupt"},
|
{0x000D0040, nullptr, "SetTransferEndInterrupt"},
|
||||||
{0x000F0000, nullptr, "GetTransferEndEvent"},
|
{0x000F0000, GetTransferEndEvent, "GetTransferEndEvent"},
|
||||||
{0x00100102, nullptr, "SetSendingY"},
|
{0x00100102, nullptr, "SetSendingY"},
|
||||||
{0x00110102, nullptr, "SetSendingU"},
|
{0x00110102, nullptr, "SetSendingU"},
|
||||||
{0x00120102, nullptr, "SetSendingV"},
|
{0x00120102, nullptr, "SetSendingV"},
|
||||||
|
@ -53,6 +68,8 @@ const Interface::FunctionInfo FunctionTable[] = {
|
||||||
// Interface class
|
// Interface class
|
||||||
|
|
||||||
Interface::Interface() {
|
Interface::Interface() {
|
||||||
|
completion_event = Kernel::Event::Create(RESETTYPE_ONESHOT, "Y2R:Completed");
|
||||||
|
|
||||||
Register(FunctionTable);
|
Register(FunctionTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue