bgtc: Update to 12.x and implement OpenTaskService
This commit is contained in:
parent
6af7bd02b2
commit
5ce0e127da
|
@ -212,6 +212,7 @@ void DebuggerBackend::Write(const Entry& entry) {
|
|||
SUB(Service, ARP) \
|
||||
SUB(Service, BCAT) \
|
||||
SUB(Service, BPC) \
|
||||
SUB(Service, BGTC) \
|
||||
SUB(Service, BTDRV) \
|
||||
SUB(Service, BTM) \
|
||||
SUB(Service, Capture) \
|
||||
|
|
|
@ -66,6 +66,7 @@ enum class Class : ClassType {
|
|||
Service_ARP, ///< The ARP service
|
||||
Service_Audio, ///< The Audio (Audio control) service
|
||||
Service_BCAT, ///< The BCAT service
|
||||
Service_BGTC, ///< The BGTC (Background Task Controller) service
|
||||
Service_BPC, ///< The BPC service
|
||||
Service_BTDRV, ///< The Bluetooth driver service
|
||||
Service_BTM, ///< The BTM service
|
||||
|
|
|
@ -2,11 +2,34 @@
|
|||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include "common/logging/log.h"
|
||||
#include "core/core.h"
|
||||
#include "core/hle/ipc_helpers.h"
|
||||
#include "core/hle/service/glue/bgtc.h"
|
||||
|
||||
namespace Service::Glue {
|
||||
|
||||
BGTC_T::BGTC_T(Core::System& system_) : ServiceFramework{system_, "bgtc:t"} {
|
||||
// clang-format off
|
||||
static const FunctionInfo functions[] = {
|
||||
{100, &BGTC_T::OpenTaskService, "OpenTaskService"},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
RegisterHandlers(functions);
|
||||
}
|
||||
|
||||
BGTC_T::~BGTC_T() = default;
|
||||
|
||||
void BGTC_T::OpenTaskService(Kernel::HLERequestContext& ctx) {
|
||||
LOG_DEBUG(Service_BGTC, "called");
|
||||
|
||||
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
||||
rb.Push(RESULT_SUCCESS);
|
||||
rb.PushIpcInterface<ITaskService>(system);
|
||||
}
|
||||
|
||||
ITaskService::ITaskService(Core::System& system_) : ServiceFramework{system_, "ITaskService"} {
|
||||
// clang-format off
|
||||
static const FunctionInfo functions[] = {
|
||||
{1, nullptr, "NotifyTaskStarting"},
|
||||
|
@ -20,16 +43,18 @@ BGTC_T::BGTC_T(Core::System& system_) : ServiceFramework{system_, "bgtc:t"} {
|
|||
{13, nullptr, "UnscheduleTask"},
|
||||
{14, nullptr, "GetScheduleEvent"},
|
||||
{15, nullptr, "SchedulePeriodicTask"},
|
||||
{16, nullptr, "Unknown16"},
|
||||
{101, nullptr, "GetOperationMode"},
|
||||
{102, nullptr, "WillDisconnectNetworkWhenEnteringSleep"},
|
||||
{103, nullptr, "WillStayHalfAwakeInsteadSleep"},
|
||||
{200, nullptr, "Unknown200"},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
RegisterHandlers(functions);
|
||||
}
|
||||
|
||||
BGTC_T::~BGTC_T() = default;
|
||||
ITaskService::~ITaskService() = default;
|
||||
|
||||
BGTC_SC::BGTC_SC(Core::System& system_) : ServiceFramework{system_, "bgtc:sc"} {
|
||||
// clang-format off
|
||||
|
|
|
@ -16,6 +16,14 @@ class BGTC_T final : public ServiceFramework<BGTC_T> {
|
|||
public:
|
||||
explicit BGTC_T(Core::System& system_);
|
||||
~BGTC_T() override;
|
||||
|
||||
void OpenTaskService(Kernel::HLERequestContext& ctx);
|
||||
};
|
||||
|
||||
class ITaskService final : public ServiceFramework<ITaskService> {
|
||||
public:
|
||||
explicit ITaskService(Core::System& system_);
|
||||
~ITaskService() override;
|
||||
};
|
||||
|
||||
class BGTC_SC final : public ServiceFramework<BGTC_SC> {
|
||||
|
|
Reference in New Issue