citra-emu
/
citra-canary
Archived
1
0
Fork 0

Merge pull request #3884 from NarcolepticK/service-gsp

service/gsp: Move gsp_lcd into gsp folder
This commit is contained in:
Weiyi Wang 2018-06-27 13:37:23 +03:00 committed by GitHub
commit 438751075f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 35 additions and 5 deletions

View File

@ -242,8 +242,8 @@ add_library(core STATIC
hle/service/gsp/gsp.h hle/service/gsp/gsp.h
hle/service/gsp/gsp_gpu.cpp hle/service/gsp/gsp_gpu.cpp
hle/service/gsp/gsp_gpu.h hle/service/gsp/gsp_gpu.h
hle/service/gsp_lcd.cpp hle/service/gsp/gsp_lcd.cpp
hle/service/gsp_lcd.h hle/service/gsp/gsp_lcd.h
hle/service/hid/hid.cpp hle/service/hid/hid.cpp
hle/service/hid/hid.h hle/service/hid/hid.h
hle/service/hid/hid_spvr.cpp hle/service/hid/hid_spvr.cpp

View File

@ -309,6 +309,21 @@ void GSP_GPU::SetBufferSwap(Kernel::HLERequestContext& ctx) {
} }
void GSP_GPU::FlushDataCache(Kernel::HLERequestContext& ctx) { void GSP_GPU::FlushDataCache(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp(ctx, 0x8, 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::InvalidateDataCache(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp(ctx, 0x9, 2, 2); IPC::RequestParser rp(ctx, 0x9, 2, 2);
u32 address = rp.Pop<u32>(); u32 address = rp.Pop<u32>();
u32 size = rp.Pop<u32>(); u32 size = 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
* *

View File

@ -2,7 +2,7 @@
// Licensed under GPLv2 or any later version // Licensed under GPLv2 or any later version
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "core/hle/service/gsp_lcd.h" #include "core/hle/service/gsp/gsp_lcd.h"
namespace Service { namespace Service {
namespace GSP { namespace GSP {

View File

@ -30,7 +30,7 @@
#include "core/hle/service/fs/archive.h" #include "core/hle/service/fs/archive.h"
#include "core/hle/service/fs/fs_user.h" #include "core/hle/service/fs/fs_user.h"
#include "core/hle/service/gsp/gsp.h" #include "core/hle/service/gsp/gsp.h"
#include "core/hle/service/gsp_lcd.h" #include "core/hle/service/gsp/gsp_lcd.h"
#include "core/hle/service/hid/hid.h" #include "core/hle/service/hid/hid.h"
#include "core/hle/service/http_c.h" #include "core/hle/service/http_c.h"
#include "core/hle/service/ir/ir.h" #include "core/hle/service/ir/ir.h"