mirror of
https://github.com/Lime3DS/Lime3DS
synced 2024-12-25 16:42:39 -06:00
service/gsp: Add Stub for InvalidateDataCache
This commit is contained in:
parent
c6554f1fbc
commit
b94cb61de8
2 changed files with 31 additions and 1 deletions
|
@ -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"},
|
||||||
|
|
|
@ -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
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue