|
|
|
@ -705,6 +705,33 @@ static void ReleaseRight(Interface* self) { |
|
|
|
LOG_WARNING(Service_GSP, "called"); |
|
|
|
} |
|
|
|
|
|
|
|
/**
|
|
|
|
* GSP_GPU::StoreDataCache service function |
|
|
|
* |
|
|
|
* This Function is a no-op, We aren't emulating the CPU cache any time soon. |
|
|
|
* |
|
|
|
* Inputs: |
|
|
|
* 0 : Header code [0x001F0082] |
|
|
|
* 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 |
|
|
|
*/ |
|
|
|
static void StoreDataCache(Interface* self) { |
|
|
|
u32* cmd_buff = Kernel::GetCommandBuffer(); |
|
|
|
u32 address = cmd_buff[1]; |
|
|
|
u32 size = cmd_buff[2]; |
|
|
|
u32 process = cmd_buff[4]; |
|
|
|
|
|
|
|
cmd_buff[0] = IPC::MakeHeader(0x1F, 0x1, 0); |
|
|
|
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
|
|
|
|
|
|
|
LOG_DEBUG(Service_GSP, "(STUBBED) called address=0x%08X, size=0x%08X, process=0x%08X", address, |
|
|
|
size, process); |
|
|
|
} |
|
|
|
|
|
|
|
const Interface::FunctionInfo FunctionTable[] = { |
|
|
|
{0x00010082, WriteHWRegs, "WriteHWRegs"}, |
|
|
|
{0x00020084, WriteHWRegsWithMask, "WriteHWRegsWithMask"}, |
|
|
|
@ -736,7 +763,7 @@ const Interface::FunctionInfo FunctionTable[] = { |
|
|
|
{0x001C0040, nullptr, "SetLedForceOff"}, |
|
|
|
{0x001D0040, nullptr, "SetTestCommand"}, |
|
|
|
{0x001E0080, nullptr, "SetInternalPriorities"}, |
|
|
|
{0x001F0082, nullptr, "StoreDataCache"}, |
|
|
|
{0x001F0082, StoreDataCache, "StoreDataCache"}, |
|
|
|
}; |
|
|
|
|
|
|
|
GSP_GPU::GSP_GPU() { |
|
|
|
|