service/gsp: Add Stub for InvalidateDataCache

This commit is contained in:
NarcolepticK 2018-06-27 04:14:23 -04:00
parent c6554f1fbc
commit b94cb61de8
2 changed files with 31 additions and 1 deletions

View File

@ -323,6 +323,21 @@ void GSP_GPU::FlushDataCache(Kernel::HLERequestContext& ctx) {
address, size, process->process_id); address, size, process->process_id);
} }
void GSP_GPU::InvalidateDataCache(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp(ctx, 0x9, 2, 2);
u32 address = rp.Pop<u32>();
u32 size = rp.Pop<u32>();
auto process = rp.PopObject<Kernel::Process>();
// TODO(purpasmart96): Verify return header on HW
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
rb.Push(RESULT_SUCCESS);
NGLOG_DEBUG(Service_GSP, "(STUBBED) called address=0x{:08X}, size=0x{:08X}, process={}",
address, size, process->process_id);
}
void GSP_GPU::SetAxiConfigQoSMode(Kernel::HLERequestContext& ctx) { void GSP_GPU::SetAxiConfigQoSMode(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp(ctx, 0x10, 1, 0); IPC::RequestParser rp(ctx, 0x10, 1, 0);
u32 mode = rp.Pop<u32>(); u32 mode = rp.Pop<u32>();
@ -747,7 +762,7 @@ GSP_GPU::GSP_GPU() : ServiceFramework("gsp::Gpu", 2) {
{0x00060082, nullptr, "SetCommandList"}, {0x00060082, nullptr, "SetCommandList"},
{0x000700C2, nullptr, "RequestDma"}, {0x000700C2, nullptr, "RequestDma"},
{0x00080082, &GSP_GPU::FlushDataCache, "FlushDataCache"}, {0x00080082, &GSP_GPU::FlushDataCache, "FlushDataCache"},
{0x00090082, nullptr, "InvalidateDataCache"}, {0x00090082, &GSP_GPU::InvalidateDataCache, "InvalidateDataCache"},
{0x000A0044, nullptr, "RegisterInterruptEvents"}, {0x000A0044, nullptr, "RegisterInterruptEvents"},
{0x000B0040, &GSP_GPU::SetLcdForceBlack, "SetLcdForceBlack"}, {0x000B0040, &GSP_GPU::SetLcdForceBlack, "SetLcdForceBlack"},
{0x000C0000, &GSP_GPU::TriggerCmdReqQueue, "TriggerCmdReqQueue"}, {0x000C0000, &GSP_GPU::TriggerCmdReqQueue, "TriggerCmdReqQueue"},

View File

@ -279,6 +279,21 @@ private:
*/ */
void FlushDataCache(Kernel::HLERequestContext& ctx); void FlushDataCache(Kernel::HLERequestContext& ctx);
/**
* GSP_GPU::InvalidateDataCache service function
*
* This Function is a no-op, We aren't emulating the CPU cache any time soon.
*
* Inputs:
* 1 : Address
* 2 : Size
* 3 : Value 0, some descriptor for the KProcess Handle
* 4 : KProcess handle
* Outputs:
* 1 : Result of function, 0 on success, otherwise error code
*/
void InvalidateDataCache(Kernel::HLERequestContext& ctx);
/** /**
* GSP_GPU::SetLcdForceBlack service function * GSP_GPU::SetLcdForceBlack service function
* *