forked from suyu/suyu
bgtc: Update to 12.x and implement OpenTaskService
This commit is contained in:
parent
6af7bd02b2
commit
5ce0e127da
4 changed files with 36 additions and 1 deletions
|
@ -212,6 +212,7 @@ void DebuggerBackend::Write(const Entry& entry) {
|
||||||
SUB(Service, ARP) \
|
SUB(Service, ARP) \
|
||||||
SUB(Service, BCAT) \
|
SUB(Service, BCAT) \
|
||||||
SUB(Service, BPC) \
|
SUB(Service, BPC) \
|
||||||
|
SUB(Service, BGTC) \
|
||||||
SUB(Service, BTDRV) \
|
SUB(Service, BTDRV) \
|
||||||
SUB(Service, BTM) \
|
SUB(Service, BTM) \
|
||||||
SUB(Service, Capture) \
|
SUB(Service, Capture) \
|
||||||
|
|
|
@ -66,6 +66,7 @@ enum class Class : ClassType {
|
||||||
Service_ARP, ///< The ARP service
|
Service_ARP, ///< The ARP service
|
||||||
Service_Audio, ///< The Audio (Audio control) service
|
Service_Audio, ///< The Audio (Audio control) service
|
||||||
Service_BCAT, ///< The BCAT service
|
Service_BCAT, ///< The BCAT service
|
||||||
|
Service_BGTC, ///< The BGTC (Background Task Controller) service
|
||||||
Service_BPC, ///< The BPC service
|
Service_BPC, ///< The BPC service
|
||||||
Service_BTDRV, ///< The Bluetooth driver service
|
Service_BTDRV, ///< The Bluetooth driver service
|
||||||
Service_BTM, ///< The BTM service
|
Service_BTM, ///< The BTM service
|
||||||
|
|
|
@ -2,11 +2,34 @@
|
||||||
// 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 "common/logging/log.h"
|
||||||
|
#include "core/core.h"
|
||||||
|
#include "core/hle/ipc_helpers.h"
|
||||||
#include "core/hle/service/glue/bgtc.h"
|
#include "core/hle/service/glue/bgtc.h"
|
||||||
|
|
||||||
namespace Service::Glue {
|
namespace Service::Glue {
|
||||||
|
|
||||||
BGTC_T::BGTC_T(Core::System& system_) : ServiceFramework{system_, "bgtc:t"} {
|
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
|
// clang-format off
|
||||||
static const FunctionInfo functions[] = {
|
static const FunctionInfo functions[] = {
|
||||||
{1, nullptr, "NotifyTaskStarting"},
|
{1, nullptr, "NotifyTaskStarting"},
|
||||||
|
@ -20,16 +43,18 @@ BGTC_T::BGTC_T(Core::System& system_) : ServiceFramework{system_, "bgtc:t"} {
|
||||||
{13, nullptr, "UnscheduleTask"},
|
{13, nullptr, "UnscheduleTask"},
|
||||||
{14, nullptr, "GetScheduleEvent"},
|
{14, nullptr, "GetScheduleEvent"},
|
||||||
{15, nullptr, "SchedulePeriodicTask"},
|
{15, nullptr, "SchedulePeriodicTask"},
|
||||||
|
{16, nullptr, "Unknown16"},
|
||||||
{101, nullptr, "GetOperationMode"},
|
{101, nullptr, "GetOperationMode"},
|
||||||
{102, nullptr, "WillDisconnectNetworkWhenEnteringSleep"},
|
{102, nullptr, "WillDisconnectNetworkWhenEnteringSleep"},
|
||||||
{103, nullptr, "WillStayHalfAwakeInsteadSleep"},
|
{103, nullptr, "WillStayHalfAwakeInsteadSleep"},
|
||||||
|
{200, nullptr, "Unknown200"},
|
||||||
};
|
};
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
RegisterHandlers(functions);
|
RegisterHandlers(functions);
|
||||||
}
|
}
|
||||||
|
|
||||||
BGTC_T::~BGTC_T() = default;
|
ITaskService::~ITaskService() = default;
|
||||||
|
|
||||||
BGTC_SC::BGTC_SC(Core::System& system_) : ServiceFramework{system_, "bgtc:sc"} {
|
BGTC_SC::BGTC_SC(Core::System& system_) : ServiceFramework{system_, "bgtc:sc"} {
|
||||||
// clang-format off
|
// clang-format off
|
||||||
|
|
|
@ -16,6 +16,14 @@ class BGTC_T final : public ServiceFramework<BGTC_T> {
|
||||||
public:
|
public:
|
||||||
explicit BGTC_T(Core::System& system_);
|
explicit BGTC_T(Core::System& system_);
|
||||||
~BGTC_T() override;
|
~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> {
|
class BGTC_SC final : public ServiceFramework<BGTC_SC> {
|
||||||
|
|
Loading…
Reference in a new issue