service/boss: Migrate to ServiceFramework (#3998)
* service/boss: Migrate to ServiceFramework * service/boss: Addressed comments * service/boss: Added TODO: verify ResetType
This commit is contained in:
parent
5a4ed10982
commit
5c52c6e64a
File diff suppressed because it is too large
Load Diff
|
@ -4,36 +4,45 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/hle/kernel/event.h"
|
||||||
#include "core/hle/service/service.h"
|
#include "core/hle/service/service.h"
|
||||||
|
|
||||||
namespace Service {
|
namespace Service {
|
||||||
namespace BOSS {
|
namespace BOSS {
|
||||||
|
|
||||||
|
class Module final {
|
||||||
|
public:
|
||||||
|
Module();
|
||||||
|
~Module() = default;
|
||||||
|
|
||||||
|
class Interface : public ServiceFramework<Interface> {
|
||||||
|
public:
|
||||||
|
Interface(std::shared_ptr<Module> boss, const char* name, u32 max_session);
|
||||||
|
~Interface() = default;
|
||||||
|
|
||||||
|
protected:
|
||||||
/**
|
/**
|
||||||
* BOSS::InitializeSession service function
|
* BOSS::InitializeSession service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00010082]
|
* 0 : Header Code[0x00010082]
|
||||||
* 1 : u32 lower 64bit value
|
* 1-2 : programID, normally zero for using the programID determined from the input PID
|
||||||
* 2 : u32 higher 64bit value
|
* 3 : 0x20, ARM11-kernel processID translate-header.
|
||||||
* 3 : 0x20
|
|
||||||
* 4 : u32 unknown value
|
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
*/
|
*/
|
||||||
void InitializeSession(Service::Interface* self);
|
void InitializeSession(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::RegisterStorage service function
|
* BOSS::RegisterStorage service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00020010]
|
* 0 : Header Code[0x00020100]
|
||||||
* 1 : u32 unknown1
|
* 1-2 : u64 extdataID
|
||||||
* 2 : u32 unknown2
|
* 3 : u32 boss_size
|
||||||
* 3 : u32 unknown3
|
* 4 : u8 extdata_type: 0 = NAND, 1 = SD
|
||||||
* 4 : u8 unknown_flag
|
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
*/
|
*/
|
||||||
void RegisterStorage(Service::Interface* self);
|
void SetStorageInfo(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::UnregisterStorage service function
|
* BOSS::UnregisterStorage service function
|
||||||
|
@ -42,7 +51,7 @@ void RegisterStorage(Service::Interface* self);
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
*/
|
*/
|
||||||
void UnregisterStorage(Service::Interface* self);
|
void UnregisterStorage(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetStorageInfo service function
|
* BOSS::GetStorageInfo service function
|
||||||
|
@ -52,13 +61,13 @@ void UnregisterStorage(Service::Interface* self);
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : u32 unknown value
|
* 2 : u32 unknown value
|
||||||
*/
|
*/
|
||||||
void GetStorageInfo(Service::Interface* self);
|
void GetStorageInfo(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::RegisterPrivateRootCa service function
|
* BOSS::RegisterPrivateRootCa service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00050042]
|
* 0 : Header Code[0x00050042]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 Size
|
||||||
* 2 : MappedBufferDesc(permission = R)
|
* 2 : MappedBufferDesc(permission = R)
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
|
@ -66,14 +75,14 @@ void GetStorageInfo(Service::Interface* self);
|
||||||
* 2 : buff_size << 4 | 0xA
|
* 2 : buff_size << 4 | 0xA
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void RegisterPrivateRootCa(Service::Interface* self);
|
void RegisterPrivateRootCa(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::RegisterPrivateClientCert service function
|
* BOSS::RegisterPrivateClientCert service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00060084]
|
* 0 : Header Code[0x00060084]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 buffer 1 size
|
||||||
* 2 : u32 unknown value
|
* 2 : u32 buffer 2 size
|
||||||
* 3 : MappedBufferDesc1(permission = R)
|
* 3 : MappedBufferDesc1(permission = R)
|
||||||
* 4 : u32 buff_addr1
|
* 4 : u32 buff_addr1
|
||||||
* 5 : MappedBufferDesc2(permission = R)
|
* 5 : MappedBufferDesc2(permission = R)
|
||||||
|
@ -85,7 +94,7 @@ void RegisterPrivateRootCa(Service::Interface* self);
|
||||||
* 4 : buff2_size << 4 | 0xA
|
* 4 : buff2_size << 4 | 0xA
|
||||||
* 5 : u32 buff_addr2
|
* 5 : u32 buff_addr2
|
||||||
*/
|
*/
|
||||||
void RegisterPrivateClientCert(Service::Interface* self);
|
void RegisterPrivateClientCert(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetNewArrivalFlag service function
|
* BOSS::GetNewArrivalFlag service function
|
||||||
|
@ -95,7 +104,7 @@ void RegisterPrivateClientCert(Service::Interface* self);
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : u8 flag
|
* 2 : u8 flag
|
||||||
*/
|
*/
|
||||||
void GetNewArrivalFlag(Service::Interface* self);
|
void GetNewArrivalFlag(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::RegisterNewArrivalEvent service function
|
* BOSS::RegisterNewArrivalEvent service function
|
||||||
|
@ -106,7 +115,7 @@ void GetNewArrivalFlag(Service::Interface* self);
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
*/
|
*/
|
||||||
void RegisterNewArrivalEvent(Service::Interface* self);
|
void RegisterNewArrivalEvent(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::SetOptoutFlag service function
|
* BOSS::SetOptoutFlag service function
|
||||||
|
@ -116,7 +125,7 @@ void RegisterNewArrivalEvent(Service::Interface* self);
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
*/
|
*/
|
||||||
void SetOptoutFlag(Service::Interface* self);
|
void SetOptoutFlag(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetOptoutFlag service function
|
* BOSS::GetOptoutFlag service function
|
||||||
|
@ -126,15 +135,15 @@ void SetOptoutFlag(Service::Interface* self);
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : u8 output_flag
|
* 2 : u8 output_flag
|
||||||
*/
|
*/
|
||||||
void GetOptoutFlag(Service::Interface* self);
|
void GetOptoutFlag(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::RegisterTask service function
|
* BOSS::RegisterTask service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x000B00C2]
|
* 0 : Header Code[0x000B00C2]
|
||||||
* 1 : u32 unknown value
|
* 1 : TaskID buffer size
|
||||||
* 2 : u8 unknown value
|
* 2 : u8 unknown value, Usually zero, regardless of HTTP GET/POST.
|
||||||
* 3 : u8 unknown value
|
* 3 : u8 unknown value, Usually zero, regardless of HTTP GET/POST.
|
||||||
* 4 : MappedBufferDesc1(permission = R)
|
* 4 : MappedBufferDesc1(permission = R)
|
||||||
* 5 : buff_addr
|
* 5 : buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
|
@ -142,13 +151,13 @@ void GetOptoutFlag(Service::Interface* self);
|
||||||
* 2 : buff_size << 4 | 0xA
|
* 2 : buff_size << 4 | 0xA
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void RegisterTask(Service::Interface* self);
|
void RegisterTask(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::UnregisterTask service function
|
* BOSS::UnregisterTask service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x000C0082]
|
* 0 : Header Code[0x000C0082]
|
||||||
* 1 : u32 unknown value
|
* 1 : TaskID buffer size
|
||||||
* 2 : u8 unknown value
|
* 2 : u8 unknown value
|
||||||
* 3 : MappedBufferDesc1(permission = R)
|
* 3 : MappedBufferDesc1(permission = R)
|
||||||
* 4 : buff_addr
|
* 4 : buff_addr
|
||||||
|
@ -157,13 +166,13 @@ void RegisterTask(Service::Interface* self);
|
||||||
* 2 : buff_size << 4 | 0xA
|
* 2 : buff_size << 4 | 0xA
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void UnregisterTask(Service::Interface* self);
|
void UnregisterTask(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::ReconfigureTask service function
|
* BOSS::ReconfigureTask service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x000D0082]
|
* 0 : Header Code[0x000D0082]
|
||||||
* 1 : u32 unknown value
|
* 1 : TaskID buffer size
|
||||||
* 2 : u8 unknown value
|
* 2 : u8 unknown value
|
||||||
* 3 : MappedBufferDesc1(permission = R)
|
* 3 : MappedBufferDesc1(permission = R)
|
||||||
* 4 : buff_addr
|
* 4 : buff_addr
|
||||||
|
@ -172,7 +181,7 @@ void UnregisterTask(Service::Interface* self);
|
||||||
* 2 : buff_size << 4 | 0xA
|
* 2 : buff_size << 4 | 0xA
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void ReconfigureTask(Service::Interface* self);
|
void ReconfigureTask(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetTaskIdList service function
|
* BOSS::GetTaskIdList service function
|
||||||
|
@ -181,12 +190,13 @@ void ReconfigureTask(Service::Interface* self);
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
*/
|
*/
|
||||||
void GetTaskIdList(Service::Interface* self);
|
void GetTaskIdList(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetStepIdList service function
|
* BOSS::GetStepIdList service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x000F0042]
|
* 0 : Header Code[0x000F0042]
|
||||||
|
* 1 : u32 buffer size
|
||||||
* 2 : MappedBufferDesc(permission = R)
|
* 2 : MappedBufferDesc(permission = R)
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
*
|
*
|
||||||
|
@ -195,89 +205,91 @@ void GetTaskIdList(Service::Interface* self);
|
||||||
* 2 : buff_size << 4 | 0xA
|
* 2 : buff_size << 4 | 0xA
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void GetStepIdList(Service::Interface* self);
|
void GetStepIdList(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetNsDataIdList service function
|
* BOSS::GetNsDataIdList service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00100102]
|
* 0 : Header Code[0x00100102]
|
||||||
* 1 : u32 unknown1
|
* 1 : u32 filter
|
||||||
* 2 : u32 unknown2
|
* 2 : u32 Buffer size in words(max entries)
|
||||||
* 3 : u32 unknown3
|
* 3 : u16, starting word-index in the internal NsDataId list
|
||||||
* 4 : u32 unknown4
|
* 4 : u32, start_NsDataId
|
||||||
* 5 : MappedBufferDesc(permission = W)
|
* 5 : MappedBufferDesc(permission = W)
|
||||||
* 6 : u32 buff_addr
|
* 6 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : u16 unknown value
|
* 2 : u16 Actual number of output entries
|
||||||
* 3 : u16 unknown value
|
* 3 : u16 Last word-index copied to output in the internal NsDataId list
|
||||||
* 4 : buff_size << 4 | 0xC
|
* 4 : buff_size << 4 | 0xC
|
||||||
* 5 : u32 buff_addr
|
* 5 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void GetNsDataIdList(Service::Interface* self);
|
void GetNsDataIdList(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetOwnNsDataIdList service function
|
* BOSS::GetNsDataIdList1 service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00110102]
|
* 0 : Header Code[0x00110102]
|
||||||
* 1 : u32 unknown1
|
* 1 : u32 filter
|
||||||
* 2 : u32 unknown2
|
* 2 : u32 Buffer size in words(max entries)
|
||||||
* 3 : u32 unknown3
|
* 3 : u16, starting word-index in the internal NsDataId list
|
||||||
* 4 : u32 unknown4
|
* 4 : u32, start_NsDataId
|
||||||
* 5 : MappedBufferDesc(permission = W)
|
* 5 : MappedBufferDesc(permission = W)
|
||||||
* 6 : u32 buff_addr
|
* 6 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : u16 unknown value
|
* 2 : u16 Actual number of output entries
|
||||||
* 3 : u16 unknown value
|
* 3 : u16 Last word-index copied to output in the internal NsDataId list
|
||||||
* 4 : buff_size << 4 | 0xC
|
* 4 : buff_size << 4 | 0xC
|
||||||
* 5 : u32 buff_addr
|
* 5 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void GetOwnNsDataIdList(Service::Interface* self);
|
void GetNsDataIdList1(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetNewDataNsDataIdList service function
|
* BOSS::GetNsDataIdList2 service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00120102]
|
* 0 : Header Code[0x00120102]
|
||||||
* 1 : u32 unknown1
|
* 1 : u32 filter
|
||||||
* 2 : u32 unknown2
|
* 2 : u32 Buffer size in words(max entries)
|
||||||
* 3 : u32 unknown3
|
* 3 : u16, starting word-index in the internal NsDataId list
|
||||||
* 4 : u32 unknown4
|
* 4 : u32, start_NsDataId
|
||||||
* 5 : MappedBufferDesc(permission = W)
|
* 5 : MappedBufferDesc(permission = W)
|
||||||
* 6 : u32 buff_addr
|
* 6 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : u16 unknown value
|
* 2 : u16 Actual number of output entries
|
||||||
* 3 : u16 unknown value
|
* 3 : u16 Last word-index copied to output in the internal NsDataId list
|
||||||
* 4 : buff_size << 4 | 0xC
|
* 4 : buff_size << 4 | 0xC
|
||||||
* 5 : u32 buff_addr
|
* 5 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void GetNewDataNsDataIdList(Service::Interface* self);
|
void GetNsDataIdList2(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetOwnNewDataNsDataIdList service function
|
* BOSS::GetNsDataIdList3 service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00130102]
|
* 0 : Header Code[0x00130102]
|
||||||
* 1 : u32 unknown1
|
* 1 : u32 filter
|
||||||
* 2 : u32 unknown2
|
* 2 : u32 Buffer size in words(max entries)
|
||||||
* 3 : u32 unknown3
|
* 3 : u16, starting word-index in the internal NsDataId list
|
||||||
* 4 : u32 unknown4
|
* 4 : u32, start_NsDataId
|
||||||
* 5 : MappedBufferDesc(permission = W)
|
* 5 : MappedBufferDesc(permission = W)
|
||||||
* 6 : u32 buff_addr
|
* 6 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : u16 unknown value
|
* 2 : u16 Actual number of output entries
|
||||||
* 3 : u16 unknown value
|
* 3 : u16 Last word-index copied to output in the internal NsDataId list
|
||||||
|
* 4 : buff_size << 4 | 0xC
|
||||||
|
* 5 : u32 buff_addr
|
||||||
|
|
||||||
*/
|
*/
|
||||||
void GetOwnNewDataNsDataIdList(Service::Interface* self);
|
void GetNsDataIdList3(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::SendProperty service function
|
* BOSS::SendProperty service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00140082]
|
* 0 : Header Code[0x00140082]
|
||||||
* 1 : u16 unknown value
|
* 1 : u16 PropertyID
|
||||||
* 2 : u32 unknown value
|
* 2 : u32 size
|
||||||
* 3 : MappedBufferDesc(permission = R)
|
* 3 : MappedBufferDesc(permission = R)
|
||||||
* 4 : u32 buff_addr
|
* 4 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
|
@ -285,38 +297,35 @@ void GetOwnNewDataNsDataIdList(Service::Interface* self);
|
||||||
* 2 : buff_size << 4 | 0xA
|
* 2 : buff_size << 4 | 0xA
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void SendProperty(Service::Interface* self);
|
void SendProperty(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::SendPropertyHandle service function
|
* BOSS::SendPropertyHandle service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00150042]
|
* 0 : Header Code[0x00150042]
|
||||||
* 2 : u8 unknown value
|
* 2 : u16 PropertyID
|
||||||
* 3 : MappedBufferDesc(permission = R)
|
* 3 : 0x0
|
||||||
* 4 : u32 buff_addr
|
* 4 : Handle
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : buff_size << 4 | 0xA
|
|
||||||
* 3 : u32 buff_addr
|
|
||||||
*/
|
*/
|
||||||
void SendPropertyHandle(Service::Interface* self);
|
void SendPropertyHandle(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::ReceiveProperty service function
|
* BOSS::ReceiveProperty service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00160082]
|
* 0 : Header Code[0x00160082]
|
||||||
* 1 : u16 unknown1
|
* 1 : u16 PropertyID
|
||||||
* 2 : u32 buff_size
|
* 2 : u32 Size
|
||||||
* 3 : MappedBufferDesc(permission = W)
|
* 3 : MappedBufferDesc(permission = W)
|
||||||
* 4 : u32 buff addr
|
* 4 : u32 buff addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : u32 unknown value
|
* 2 : Actual read size
|
||||||
* 3 : u16 unknown value
|
|
||||||
* 4 : buff_size << 4 | 0xC
|
* 4 : buff_size << 4 | 0xC
|
||||||
* 5 : u32 buff_addr
|
* 5 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void ReceiveProperty(Service::Interface* self);
|
void ReceiveProperty(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::UpdateTaskInterval service function
|
* BOSS::UpdateTaskInterval service function
|
||||||
|
@ -331,7 +340,7 @@ void ReceiveProperty(Service::Interface* self);
|
||||||
* 2 : buff_size << 4 | 0xA
|
* 2 : buff_size << 4 | 0xA
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void UpdateTaskInterval(Service::Interface* self);
|
void UpdateTaskInterval(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::UpdateTaskCount service function
|
* BOSS::UpdateTaskCount service function
|
||||||
|
@ -346,13 +355,13 @@ void UpdateTaskInterval(Service::Interface* self);
|
||||||
* 2 : buff_size << 4 | 0xA
|
* 2 : buff_size << 4 | 0xA
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void UpdateTaskCount(Service::Interface* self);
|
void UpdateTaskCount(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetTaskInterval service function
|
* BOSS::GetTaskInterval service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00190042]
|
* 0 : Header Code[0x00190042]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 size
|
||||||
* 2 : MappedBufferDesc(permission = R)
|
* 2 : MappedBufferDesc(permission = R)
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
|
@ -361,13 +370,13 @@ void UpdateTaskCount(Service::Interface* self);
|
||||||
* 3 : buff_size << 4 | 0xA
|
* 3 : buff_size << 4 | 0xA
|
||||||
* 4 : u32 buff_addr
|
* 4 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void GetTaskInterval(Service::Interface* self);
|
void GetTaskInterval(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetTaskCount service function
|
* BOSS::GetTaskCount service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x001A0042]
|
* 0 : Header Code[0x001A0042]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 size
|
||||||
* 2 : MappedBufferDesc(permission = R)
|
* 2 : MappedBufferDesc(permission = R)
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
|
@ -376,13 +385,13 @@ void GetTaskInterval(Service::Interface* self);
|
||||||
* 3 : buff_size << 4 | 0xA
|
* 3 : buff_size << 4 | 0xA
|
||||||
* 4 : u32 buff_addr
|
* 4 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void GetTaskCount(Service::Interface* self);
|
void GetTaskCount(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetTaskServiceStatus service function
|
* BOSS::GetTaskServiceStatus service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x001B0042]
|
* 0 : Header Code[0x001B0042]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 size
|
||||||
* 2 : MappedBufferDesc(permission = R)
|
* 2 : MappedBufferDesc(permission = R)
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
|
@ -391,13 +400,13 @@ void GetTaskCount(Service::Interface* self);
|
||||||
* 3 : buff_size << 4 | 0xA
|
* 3 : buff_size << 4 | 0xA
|
||||||
* 4 : u32 buff_addr
|
* 4 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void GetTaskServiceStatus(Service::Interface* self);
|
void GetTaskServiceStatus(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::StartTask service function
|
* BOSS::StartTask service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x001C0042]
|
* 0 : Header Code[0x001C0042]
|
||||||
* 1 : u32 unknown value
|
* 1 : TaskID buffer size
|
||||||
* 2 : MappedBufferDesc(permission = R)
|
* 2 : MappedBufferDesc(permission = R)
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
|
@ -405,13 +414,13 @@ void GetTaskServiceStatus(Service::Interface* self);
|
||||||
* 2 : buff_size << 4 | 0xA
|
* 2 : buff_size << 4 | 0xA
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void StartTask(Service::Interface* self);
|
void StartTask(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::StartTaskImmediate service function
|
* BOSS::StartTaskImmediate service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x001D0042]
|
* 0 : Header Code[0x001D0042]
|
||||||
* 1 : u32 unknown value
|
* 1 : TaskID buffer size
|
||||||
* 2 : MappedBufferDesc(permission = R)
|
* 2 : MappedBufferDesc(permission = R)
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
|
@ -419,13 +428,13 @@ void StartTask(Service::Interface* self);
|
||||||
* 2 : buff_size << 4 | 0xA
|
* 2 : buff_size << 4 | 0xA
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void StartTaskImmediate(Service::Interface* self);
|
void StartTaskImmediate(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::CancelTask service function
|
* BOSS::CancelTask service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x001E0042]
|
* 0 : Header Code[0x001E0042]
|
||||||
* 1 : u32 unknown value
|
* 1 : TaskID buffer size
|
||||||
* 2 : MappedBufferDesc(permission = R)
|
* 2 : MappedBufferDesc(permission = R)
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
|
@ -433,7 +442,7 @@ void StartTaskImmediate(Service::Interface* self);
|
||||||
* 2 : buff_size << 4 | 0xA
|
* 2 : buff_size << 4 | 0xA
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void CancelTask(Service::Interface* self);
|
void CancelTask(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetTaskFinishHandle service function
|
* BOSS::GetTaskFinishHandle service function
|
||||||
|
@ -441,34 +450,34 @@ void CancelTask(Service::Interface* self);
|
||||||
* 0 : Header Code[0x001F0000]
|
* 0 : Header Code[0x001F0000]
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : 0
|
* 2 : 0x0
|
||||||
* 3 : Task Finish Handle
|
* 3 : Task Finish Handle
|
||||||
*/
|
*/
|
||||||
void GetTaskFinishHandle(Service::Interface* self);
|
void GetTaskFinishHandle(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetTaskState service function
|
* BOSS::GetTaskState service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00200082]
|
* 0 : Header Code[0x00200082]
|
||||||
* 1 : u32 buff_size
|
* 1 : TaskID buffer size
|
||||||
* 2 : u8 unknown value
|
* 2 : u8 state
|
||||||
* 3 : MappedBufferDesc(permission = R)
|
* 3 : MappedBufferDesc(permission = R)
|
||||||
* 4 : u32 buff_addr
|
* 4 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : u8 unknown value
|
* 2 : u8 TaskStatus
|
||||||
* 3 : u32 unknown value
|
* 3 : u32 Current state value for task PropertyID 0x4
|
||||||
* 4 : u8 unknown value
|
* 4 : u8 unknown value
|
||||||
* 5 : buff_size << 4 | 0xA
|
* 5 : buff_size << 4 | 0xA
|
||||||
* 6 : u32 buff_addr
|
* 6 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void GetTaskState(Service::Interface* self);
|
void GetTaskState(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetTaskResult service function
|
* BOSS::GetTaskResult service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00210042]
|
* 0 : Header Code[0x00210042]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 size
|
||||||
* 2 : MappedBufferDesc(permission = R)
|
* 2 : MappedBufferDesc(permission = R)
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
|
@ -479,13 +488,13 @@ void GetTaskState(Service::Interface* self);
|
||||||
* 5 : buff_size << 4 | 0xA
|
* 5 : buff_size << 4 | 0xA
|
||||||
* 6 : u32 buff_addr
|
* 6 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void GetTaskResult(Service::Interface* self);
|
void GetTaskResult(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetTaskCommErrorCode service function
|
* BOSS::GetTaskCommErrorCode service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00220042]
|
* 0 : Header Code[0x00220042]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 size
|
||||||
* 2 : MappedBufferDesc(permission = R)
|
* 2 : MappedBufferDesc(permission = R)
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
|
@ -496,13 +505,13 @@ void GetTaskResult(Service::Interface* self);
|
||||||
* 5 : buff_size << 4 | 0xA
|
* 5 : buff_size << 4 | 0xA
|
||||||
* 6 : u32 buff_addr
|
* 6 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void GetTaskCommErrorCode(Service::Interface* self);
|
void GetTaskCommErrorCode(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetTaskStatus service function
|
* BOSS::GetTaskStatus service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x002300C2]
|
* 0 : Header Code[0x002300C2]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 size
|
||||||
* 2 : u8 unknown value
|
* 2 : u8 unknown value
|
||||||
* 3 : u8 unknown value
|
* 3 : u8 unknown value
|
||||||
* 4 : MappedBufferDesc(permission = R)
|
* 4 : MappedBufferDesc(permission = R)
|
||||||
|
@ -513,13 +522,13 @@ void GetTaskCommErrorCode(Service::Interface* self);
|
||||||
* 3 : buff_size << 4 | 0xA
|
* 3 : buff_size << 4 | 0xA
|
||||||
* 4 : u32 buff_addr
|
* 4 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void GetTaskStatus(Service::Interface* self);
|
void GetTaskStatus(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetTaskError service function
|
* BOSS::GetTaskError service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00240082]
|
* 0 : Header Code[0x00240082]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 size
|
||||||
* 2 : u8 unknown value
|
* 2 : u8 unknown value
|
||||||
* 3 : MappedBufferDesc(permission = R)
|
* 3 : MappedBufferDesc(permission = R)
|
||||||
* 4 : u32 buff_addr
|
* 4 : u32 buff_addr
|
||||||
|
@ -529,13 +538,13 @@ void GetTaskStatus(Service::Interface* self);
|
||||||
* 3 : buff_size << 4 | 0xA
|
* 3 : buff_size << 4 | 0xA
|
||||||
* 4 : u32 buff_addr
|
* 4 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void GetTaskError(Service::Interface* self);
|
void GetTaskError(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetTaskInfo service function
|
* BOSS::GetTaskInfo service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00250082]
|
* 0 : Header Code[0x00250082]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 size
|
||||||
* 2 : u8 unknown value
|
* 2 : u8 unknown value
|
||||||
* 3 : MappedBufferDesc(permission = R)
|
* 3 : MappedBufferDesc(permission = R)
|
||||||
* 4 : u32 buff_addr
|
* 4 : u32 buff_addr
|
||||||
|
@ -544,52 +553,51 @@ void GetTaskError(Service::Interface* self);
|
||||||
* 2 : buff_size << 4 | 0xA
|
* 2 : buff_size << 4 | 0xA
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void GetTaskInfo(Service::Interface* self);
|
void GetTaskInfo(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::DeleteNsData service function
|
* BOSS::DeleteNsData service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00260040]
|
* 0 : Header Code[0x00260040]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 NsDataID
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
*/
|
*/
|
||||||
void DeleteNsData(Service::Interface* self);
|
void DeleteNsData(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetNsDataHeaderInfo service function
|
* BOSS::GetNsDataHeaderInfo service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x002700C2]
|
* 0 : Header Code[0x002700C2]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32, NsDataID
|
||||||
* 2 : u8 unknown value
|
* 2 : u8, type
|
||||||
* 3 : u32 unknown value
|
* 3 : u32, Size
|
||||||
* 4 : MappedBufferDesc(permission = W)
|
* 4 : MappedBufferDesc(permission = W)
|
||||||
* 5 : u32 buff_addr
|
* 5 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : buff_size << 4 | 0xC
|
* 2 : buff_size << 4 | 0xC
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32, buff_addr
|
||||||
*/
|
*/
|
||||||
void GetNsDataHeaderInfo(Service::Interface* self);
|
void GetNsDataHeaderInfo(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::ReadNsData service function
|
* BOSS::ReadNsData service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00280102]
|
* 0 : Header Code[0x00280102]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32, NsDataID
|
||||||
* 2 : u32 unknown value
|
* 2-3 : u64, offset
|
||||||
* 3 : u32 unknown value
|
* 4 : u32, Size
|
||||||
* 4 : u32 unknown value
|
|
||||||
* 5 : MappedBufferDesc(permission = W)
|
* 5 : MappedBufferDesc(permission = W)
|
||||||
* 6 : u32 buff_addr
|
* 6 : u32, buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : u32 unknown value
|
* 2 : u32 Actual read size
|
||||||
* 3 : u32 unknown value
|
* 3 : u32, unknown value
|
||||||
* 4 : buff_size << 4 | 0xC
|
* 4 : buff_size << 4 | 0xC
|
||||||
* 5 : u32 buff_addr
|
* 5 : u32, buff_addr
|
||||||
*/
|
*/
|
||||||
void ReadNsData(Service::Interface* self);
|
void ReadNsData(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::SetNsDataAdditionalInfo service function
|
* BOSS::SetNsDataAdditionalInfo service function
|
||||||
|
@ -600,7 +608,7 @@ void ReadNsData(Service::Interface* self);
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
*/
|
*/
|
||||||
void SetNsDataAdditionalInfo(Service::Interface* self);
|
void SetNsDataAdditionalInfo(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetNsDataAdditionalInfo service function
|
* BOSS::GetNsDataAdditionalInfo service function
|
||||||
|
@ -611,7 +619,7 @@ void SetNsDataAdditionalInfo(Service::Interface* self);
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : u32 unknown value
|
* 2 : u32 unknown value
|
||||||
*/
|
*/
|
||||||
void GetNsDataAdditionalInfo(Service::Interface* self);
|
void GetNsDataAdditionalInfo(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::SetNsDataNewFlag service function
|
* BOSS::SetNsDataNewFlag service function
|
||||||
|
@ -622,7 +630,7 @@ void GetNsDataAdditionalInfo(Service::Interface* self);
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
*/
|
*/
|
||||||
void SetNsDataNewFlag(Service::Interface* self);
|
void SetNsDataNewFlag(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetNsDataNewFlag service function
|
* BOSS::GetNsDataNewFlag service function
|
||||||
|
@ -633,7 +641,7 @@ void SetNsDataNewFlag(Service::Interface* self);
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : u8 flag
|
* 2 : u8 flag
|
||||||
*/
|
*/
|
||||||
void GetNsDataNewFlag(Service::Interface* self);
|
void GetNsDataNewFlag(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetNsDataLastUpdate service function
|
* BOSS::GetNsDataLastUpdate service function
|
||||||
|
@ -645,18 +653,18 @@ void GetNsDataNewFlag(Service::Interface* self);
|
||||||
* 2 : u32 unknown value
|
* 2 : u32 unknown value
|
||||||
* 3 : u32 unknown value
|
* 3 : u32 unknown value
|
||||||
*/
|
*/
|
||||||
void GetNsDataLastUpdate(Service::Interface* self);
|
void GetNsDataLastUpdate(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetErrorCode service function
|
* BOSS::GetErrorCode service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x002E0040]
|
* 0 : Header Code[0x002E0040]
|
||||||
* 1 : u8 unknown value
|
* 1 : u8 input
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : u32 unknown value
|
* 2 : u32 unknown value
|
||||||
*/
|
*/
|
||||||
void GetErrorCode(Service::Interface* self);
|
void GetErrorCode(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::RegisterStorageEntry service function
|
* BOSS::RegisterStorageEntry service function
|
||||||
|
@ -670,7 +678,7 @@ void GetErrorCode(Service::Interface* self);
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
*/
|
*/
|
||||||
void RegisterStorageEntry(Service::Interface* self);
|
void RegisterStorageEntry(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetStorageEntryInfo service function
|
* BOSS::GetStorageEntryInfo service function
|
||||||
|
@ -681,7 +689,7 @@ void RegisterStorageEntry(Service::Interface* self);
|
||||||
* 2 : u32 unknown value
|
* 2 : u32 unknown value
|
||||||
* 3 : u16 unknown value
|
* 3 : u16 unknown value
|
||||||
*/
|
*/
|
||||||
void GetStorageEntryInfo(Service::Interface* self);
|
void GetStorageEntryInfo(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::SetStorageOption service function
|
* BOSS::SetStorageOption service function
|
||||||
|
@ -694,7 +702,7 @@ void GetStorageEntryInfo(Service::Interface* self);
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
*/
|
*/
|
||||||
void SetStorageOption(Service::Interface* self);
|
void SetStorageOption(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetStorageOption service function
|
* BOSS::GetStorageOption service function
|
||||||
|
@ -707,42 +715,42 @@ void SetStorageOption(Service::Interface* self);
|
||||||
* 4 : u16 unknown value
|
* 4 : u16 unknown value
|
||||||
* 5 : u16 unknown value
|
* 5 : u16 unknown value
|
||||||
*/
|
*/
|
||||||
void GetStorageOption(Service::Interface* self);
|
void GetStorageOption(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::StartBgImmediate service function
|
* BOSS::StartBgImmediate service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00330042]
|
* 0 : Header Code[0x00330042]
|
||||||
* 1 : u32 unknown value
|
* 1 : TaskID buffer size
|
||||||
* 2 : MappedBufferDesc(permission = R)
|
* 2 : MappedBufferDesc(permission = R)
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32, buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : buff_size << 4 | 0xA
|
* 2 : buff_size << 4 | 0xA
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32, buff_addr
|
||||||
*/
|
*/
|
||||||
void StartBgImmediate(Service::Interface* self);
|
void StartBgImmediate(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetTaskActivePriority service function
|
* BOSS::GetTaskProperty0 service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00340042]
|
* 0 : Header Code[0x00340042]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 size
|
||||||
* 2 : MappedBufferDesc(permission = R)
|
* 2 : MappedBufferDesc(permission = R)
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
* Outputs:
|
* Outputs:
|
||||||
* 1 : Result of function, 0 on success, otherwise error code
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
* 2 : u8 unknown value
|
* 2 : u8 current state
|
||||||
* 3 : buff_size << 4 | 0xA
|
* 3 : buff_size << 4 | 0xA
|
||||||
* 4 : u32 buff_addr
|
* 4 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void GetTaskActivePriority(Service::Interface* self);
|
void GetTaskProperty0(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::RegisterImmediateTask service function
|
* BOSS::RegisterImmediateTask service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x003500C2]
|
* 0 : Header Code[0x003500C2]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 size
|
||||||
* 2 : u8 unknown value
|
* 2 : u8 unknown value
|
||||||
* 3 : u8 unknown value
|
* 3 : u8 unknown value
|
||||||
* 4 : MappedBufferDesc(permission = R)
|
* 4 : MappedBufferDesc(permission = R)
|
||||||
|
@ -752,14 +760,14 @@ void GetTaskActivePriority(Service::Interface* self);
|
||||||
* 2 : buff_size << 4 | 0xA
|
* 2 : buff_size << 4 | 0xA
|
||||||
* 3 : u32 buff_addr
|
* 3 : u32 buff_addr
|
||||||
*/
|
*/
|
||||||
void RegisterImmediateTask(Service::Interface* self);
|
void RegisterImmediateTask(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::SetTaskQuery service function
|
* BOSS::SetTaskQuery service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00360084]
|
* 0 : Header Code[0x00360084]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 buffer1 size
|
||||||
* 2 : u32 unknown value
|
* 2 : u32 buffer2 size
|
||||||
* 3 : MappedBufferDesc1(permission = R)
|
* 3 : MappedBufferDesc1(permission = R)
|
||||||
* 4 : u32 buff1_addr
|
* 4 : u32 buff1_addr
|
||||||
* 5 : MappedBufferDesc2(permission = R)
|
* 5 : MappedBufferDesc2(permission = R)
|
||||||
|
@ -771,14 +779,14 @@ void RegisterImmediateTask(Service::Interface* self);
|
||||||
* 4 : buff2_size << 4 | 0xA
|
* 4 : buff2_size << 4 | 0xA
|
||||||
* 5 : u32 buff2_addr
|
* 5 : u32 buff2_addr
|
||||||
*/
|
*/
|
||||||
void SetTaskQuery(Service::Interface* self);
|
void SetTaskQuery(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOSS::GetTaskQuery service function
|
* BOSS::GetTaskQuery service function
|
||||||
* Inputs:
|
* Inputs:
|
||||||
* 0 : Header Code[0x00370084]
|
* 0 : Header Code[0x00370084]
|
||||||
* 1 : u32 unknown value
|
* 1 : u32 buffer1 size
|
||||||
* 2 : u32 unknown value
|
* 2 : u32 buffer2 size
|
||||||
* 3 : MappedBufferDesc1(permission = R)
|
* 3 : MappedBufferDesc1(permission = R)
|
||||||
* 4 : u32 buff1_addr
|
* 4 : u32 buff1_addr
|
||||||
* 5 : MappedBufferDesc2(permission = W)
|
* 5 : MappedBufferDesc2(permission = W)
|
||||||
|
@ -790,13 +798,170 @@ void SetTaskQuery(Service::Interface* self);
|
||||||
* 4 : buff2_size << 4 | 0xC
|
* 4 : buff2_size << 4 | 0xC
|
||||||
* 5 : u32 buff2_addr
|
* 5 : u32 buff2_addr
|
||||||
*/
|
*/
|
||||||
void GetTaskQuery(Service::Interface* self);
|
void GetTaskQuery(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/// Initialize BOSS service(s)
|
/**
|
||||||
void Init();
|
* BOSS_P::InitializeSessionPrivileged service function
|
||||||
|
* Inputs:
|
||||||
|
* 0 : Header Code[0x04010082]
|
||||||
|
* 1-2 : programID, normally zero for using the programID determined from the input PID
|
||||||
|
* 3 : 0x20, ARM11-kernel processID translate-header.
|
||||||
|
* Outputs:
|
||||||
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
|
*/
|
||||||
|
void InitializeSessionPrivileged(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
/// Shutdown BOSS service(s)
|
/**
|
||||||
void Shutdown();
|
* BOSS_P::GetAppNewFlag service function
|
||||||
|
* Inputs:
|
||||||
|
* 0 : Header Code[0x04040080]
|
||||||
|
* 1-2 : u64 ProgramID
|
||||||
|
* Outputs:
|
||||||
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
|
* 2 : u8 flag, 0 = nothing new, 1 = new content
|
||||||
|
*/
|
||||||
|
void GetAppNewFlag(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BOSS_P::GetNsDataIdListPrivileged service function
|
||||||
|
* Inputs:
|
||||||
|
* 0 : Header Code[0x040D0182]
|
||||||
|
* 1-2 : u64 ProgramID
|
||||||
|
* 3 : u32 filter
|
||||||
|
* 4 : u32 Buffer size in words(max entries)
|
||||||
|
* 5 : u16, starting word-index in the internal NsDataId list
|
||||||
|
* 6 : u32, start_NsDataId
|
||||||
|
* 7 : MappedBufferDesc(permission = W)
|
||||||
|
* 8 : u32 buff_addr
|
||||||
|
* Outputs:
|
||||||
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
|
* 2 : u16 Actual number of output entries
|
||||||
|
* 3 : u16 Last word-index copied to output in the internal NsDataId list
|
||||||
|
* 4 : buff_size << 4 | 0xC
|
||||||
|
* 5 : u32 buff_addr
|
||||||
|
*/
|
||||||
|
void GetNsDataIdListPrivileged(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BOSS_P::GetNsDataIdListPrivileged1 service function
|
||||||
|
* Inputs:
|
||||||
|
* 0 : Header Code[0x040E0182]
|
||||||
|
* 1-2 : u64 ProgramID
|
||||||
|
* 3 : u32 filter
|
||||||
|
* 4 : u32 Buffer size in words(max entries)
|
||||||
|
* 5 : u16, starting word-index in the internal NsDataId list
|
||||||
|
* 6 : u32, start_NsDataId
|
||||||
|
* 7 : MappedBufferDesc(permission = W)
|
||||||
|
* 8 : u32 buff_addr
|
||||||
|
* Outputs:
|
||||||
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
|
* 2 : u16 Actual number of output entries
|
||||||
|
* 3 : u16 Last word-index copied to output in the internal NsDataId list
|
||||||
|
* 4 : buff_size << 4 | 0xC
|
||||||
|
* 5 : u32 buff_addr
|
||||||
|
*/
|
||||||
|
void GetNsDataIdListPrivileged1(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BOSS_P::SendPropertyPrivileged service function
|
||||||
|
* Inputs:
|
||||||
|
* 0 : Header Code[0x04130082]
|
||||||
|
* 1 : u16 PropertyID
|
||||||
|
* 2 : u32 size
|
||||||
|
* 3 : MappedBufferDesc(permission = R)
|
||||||
|
* 4 : u32 buff_addr
|
||||||
|
* Outputs:
|
||||||
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
|
* 2 : buff_size << 4 | 0xA
|
||||||
|
* 3 : u32 buff_addr
|
||||||
|
*/
|
||||||
|
void SendPropertyPrivileged(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BOSS_P::DeleteNsDataPrivileged service function
|
||||||
|
* Inputs:
|
||||||
|
* 0 : Header Code[0x041500C0]
|
||||||
|
* 1-2 : u64 ProgramID
|
||||||
|
* 3 : u32 NsDataID
|
||||||
|
* Outputs:
|
||||||
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
|
*/
|
||||||
|
void DeleteNsDataPrivileged(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BOSS_P::GetNsDataHeaderInfoPrivileged service function
|
||||||
|
* Inputs:
|
||||||
|
* 0 : Header Code[0x04160142]
|
||||||
|
* 1-2 : u64 ProgramID
|
||||||
|
* 3 : u32, NsDataID
|
||||||
|
* 4 : u8, type
|
||||||
|
* 5 : u32, Size
|
||||||
|
* 6 : MappedBufferDesc(permission = W)
|
||||||
|
* 7 : u32 buff_addr
|
||||||
|
* Outputs:
|
||||||
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
|
* 2 : buff_size << 4 | 0xC
|
||||||
|
* 3 : u32, buff_addr
|
||||||
|
*/
|
||||||
|
void GetNsDataHeaderInfoPrivileged(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BOSS_P::ReadNsDataPrivileged service function
|
||||||
|
* Inputs:
|
||||||
|
* 0 : Header Code[0x04170182]
|
||||||
|
* 1-2 : u64 ProgramID
|
||||||
|
* 3 : u32, NsDataID
|
||||||
|
* 4-5 : u64, offset
|
||||||
|
* 6 : u32, Size
|
||||||
|
* 7 : MappedBufferDesc(permission = W)
|
||||||
|
* 8 : u32, buff_addr
|
||||||
|
* Outputs:
|
||||||
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
|
* 2 : u32 Actual read size
|
||||||
|
* 3 : u32, unknown value
|
||||||
|
* 4 : buff_size << 4 | 0xC
|
||||||
|
* 5 : u32, buff_addr
|
||||||
|
*/
|
||||||
|
void ReadNsDataPrivileged(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BOSS_P::SetNsDataNewFlagPrivileged service function
|
||||||
|
* Inputs:
|
||||||
|
* 0 : Header Code[0x041A0100]
|
||||||
|
* 1-2 : u64 ProgramID
|
||||||
|
* 3 : u32 unknown value
|
||||||
|
* 4 : u8 flag
|
||||||
|
* Outputs:
|
||||||
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
|
*/
|
||||||
|
void SetNsDataNewFlagPrivileged(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BOSS_P::GetNsDataNewFlagPrivileged service function
|
||||||
|
* Inputs:
|
||||||
|
* 0 : Header Code[0x041B00C0]
|
||||||
|
* 1-2 : u64 ProgramID
|
||||||
|
* 3 : u32 unknown value
|
||||||
|
* Outputs:
|
||||||
|
* 1 : Result of function, 0 on success, otherwise error code
|
||||||
|
* 2 : u8 flag
|
||||||
|
*/
|
||||||
|
void GetNsDataNewFlagPrivileged(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::shared_ptr<Module> boss;
|
||||||
|
|
||||||
|
u8 new_arrival_flag;
|
||||||
|
u8 ns_data_new_flag;
|
||||||
|
u8 ns_data_new_flag_privileged;
|
||||||
|
u8 output_flag;
|
||||||
|
};
|
||||||
|
|
||||||
|
private:
|
||||||
|
Kernel::SharedPtr<Kernel::Event> task_finish_event;
|
||||||
|
};
|
||||||
|
|
||||||
|
void InstallInterfaces(SM::ServiceManager& service_manager);
|
||||||
|
|
||||||
} // namespace BOSS
|
} // namespace BOSS
|
||||||
} // namespace Service
|
} // namespace Service
|
||||||
|
|
|
@ -2,84 +2,86 @@
|
||||||
// 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/boss/boss.h"
|
|
||||||
#include "core/hle/service/boss/boss_p.h"
|
#include "core/hle/service/boss/boss_p.h"
|
||||||
|
|
||||||
namespace Service {
|
namespace Service {
|
||||||
namespace BOSS {
|
namespace BOSS {
|
||||||
|
|
||||||
const Interface::FunctionInfo FunctionTable[] = {
|
BOSS_P::BOSS_P(std::shared_ptr<Module> boss)
|
||||||
|
: Module::Interface(std::move(boss), "boss:P", DefaultMaxSessions) {
|
||||||
|
static const FunctionInfo functions[] = {
|
||||||
// boss:u shared commands
|
// boss:u shared commands
|
||||||
{0x00010082, InitializeSession, "InitializeSession"},
|
// clang-format off
|
||||||
{0x00020100, RegisterStorage, "RegisterStorage"},
|
{0x00010082, &BOSS_P::InitializeSession, "InitializeSession"},
|
||||||
{0x00030000, UnregisterStorage, "UnregisterStorage"},
|
{0x00020100, &BOSS_P::SetStorageInfo, "RegisterStorage"},
|
||||||
{0x00040000, GetStorageInfo, "GetStorageInfo"},
|
{0x00030000, &BOSS_P::UnregisterStorage, "UnregisterStorage"},
|
||||||
{0x00050042, RegisterPrivateRootCa, "RegisterPrivateRootCa"},
|
{0x00040000, &BOSS_P::GetStorageInfo, "GetStorageInfo"},
|
||||||
{0x00060084, RegisterPrivateClientCert, "RegisterPrivateClientCert"},
|
{0x00050042, &BOSS_P::RegisterPrivateRootCa, "RegisterPrivateRootCa"},
|
||||||
{0x00070000, GetNewArrivalFlag, "GetNewArrivalFlag"},
|
{0x00060084, &BOSS_P::RegisterPrivateClientCert, "RegisterPrivateClientCert"},
|
||||||
{0x00080002, RegisterNewArrivalEvent, "RegisterNewArrivalEvent"},
|
{0x00070000, &BOSS_P::GetNewArrivalFlag, "GetNewArrivalFlag"},
|
||||||
{0x00090040, SetOptoutFlag, "SetOptoutFlag"},
|
{0x00080002, &BOSS_P::RegisterNewArrivalEvent, "RegisterNewArrivalEvent"},
|
||||||
{0x000A0000, GetOptoutFlag, "GetOptoutFlag"},
|
{0x00090040, &BOSS_P::SetOptoutFlag, "SetOptoutFlag"},
|
||||||
{0x000B00C2, RegisterTask, "RegisterTask"},
|
{0x000A0000, &BOSS_P::GetOptoutFlag, "GetOptoutFlag"},
|
||||||
{0x000C0082, UnregisterTask, "UnregisterTask"},
|
{0x000B00C2, &BOSS_P::RegisterTask, "RegisterTask"},
|
||||||
{0x000D0082, ReconfigureTask, "ReconfigureTask"},
|
{0x000C0082, &BOSS_P::UnregisterTask, "UnregisterTask"},
|
||||||
{0x000E0000, GetTaskIdList, "GetTaskIdList"},
|
{0x000D0082, &BOSS_P::ReconfigureTask, "ReconfigureTask"},
|
||||||
{0x000F0042, GetStepIdList, "GetStepIdList"},
|
{0x000E0000, &BOSS_P::GetTaskIdList, "GetTaskIdList"},
|
||||||
{0x00100102, GetNsDataIdList, "GetNsDataIdList"},
|
{0x000F0042, &BOSS_P::GetStepIdList, "GetStepIdList"},
|
||||||
{0x00110102, GetOwnNsDataIdList, "GetOwnNsDataIdList"},
|
{0x00100102, &BOSS_P::GetNsDataIdList, "GetNsDataIdList"},
|
||||||
{0x00120102, GetNewDataNsDataIdList, "GetNewDataNsDataIdList"},
|
{0x00110102, &BOSS_P::GetNsDataIdList1, "GetNsDataIdList1"},
|
||||||
{0x00130102, GetOwnNewDataNsDataIdList, "GetOwnNewDataNsDataIdList"},
|
{0x00120102, &BOSS_P::GetNsDataIdList2, "GetNsDataIdList2"},
|
||||||
{0x00140082, SendProperty, "SendProperty"},
|
{0x00130102, &BOSS_P::GetNsDataIdList3, "GetNsDataIdList3"},
|
||||||
{0x00150042, SendPropertyHandle, "SendPropertyHandle"},
|
{0x00140082, &BOSS_P::SendProperty, "SendProperty"},
|
||||||
{0x00160082, ReceiveProperty, "ReceiveProperty"},
|
{0x00150042, &BOSS_P::SendPropertyHandle, "SendPropertyHandle"},
|
||||||
{0x00170082, UpdateTaskInterval, "UpdateTaskInterval"},
|
{0x00160082, &BOSS_P::ReceiveProperty, "ReceiveProperty"},
|
||||||
{0x00180082, UpdateTaskCount, "UpdateTaskCount"},
|
{0x00170082, &BOSS_P::UpdateTaskInterval, "UpdateTaskInterval"},
|
||||||
{0x00190042, GetTaskInterval, "GetTaskInterval"},
|
{0x00180082, &BOSS_P::UpdateTaskCount, "UpdateTaskCount"},
|
||||||
{0x001A0042, GetTaskCount, "GetTaskCount"},
|
{0x00190042, &BOSS_P::GetTaskInterval, "GetTaskInterval"},
|
||||||
{0x001B0042, GetTaskServiceStatus, "GetTaskServiceStatus"},
|
{0x001A0042, &BOSS_P::GetTaskCount, "GetTaskCount"},
|
||||||
{0x001C0042, StartTask, "StartTask"},
|
{0x001B0042, &BOSS_P::GetTaskServiceStatus, "GetTaskServiceStatus"},
|
||||||
{0x001D0042, StartTaskImmediate, "StartTaskImmediate"},
|
{0x001C0042, &BOSS_P::StartTask, "StartTask"},
|
||||||
{0x001E0042, CancelTask, "CancelTask"},
|
{0x001D0042, &BOSS_P::StartTaskImmediate, "StartTaskImmediate"},
|
||||||
{0x001F0000, GetTaskFinishHandle, "GetTaskFinishHandle"},
|
{0x001E0042, &BOSS_P::CancelTask, "CancelTask"},
|
||||||
{0x00200082, GetTaskState, "GetTaskState"},
|
{0x001F0000, &BOSS_P::GetTaskFinishHandle, "GetTaskFinishHandle"},
|
||||||
{0x00210042, GetTaskResult, "GetTaskResult"},
|
{0x00200082, &BOSS_P::GetTaskState, "GetTaskState"},
|
||||||
{0x00220042, GetTaskCommErrorCode, "GetTaskCommErrorCode"},
|
{0x00210042, &BOSS_P::GetTaskResult, "GetTaskResult"},
|
||||||
{0x002300C2, GetTaskStatus, "GetTaskStatus"},
|
{0x00220042, &BOSS_P::GetTaskCommErrorCode, "GetTaskCommErrorCode"},
|
||||||
{0x00240082, GetTaskError, "GetTaskError"},
|
{0x002300C2, &BOSS_P::GetTaskStatus, "GetTaskStatus"},
|
||||||
{0x00250082, GetTaskInfo, "GetTaskInfo"},
|
{0x00240082, &BOSS_P::GetTaskError, "GetTaskError"},
|
||||||
{0x00260040, DeleteNsData, "DeleteNsData"},
|
{0x00250082, &BOSS_P::GetTaskInfo, "GetTaskInfo"},
|
||||||
{0x002700C2, GetNsDataHeaderInfo, "GetNsDataHeaderInfo"},
|
{0x00260040, &BOSS_P::DeleteNsData, "DeleteNsData"},
|
||||||
{0x00280102, ReadNsData, "ReadNsData"},
|
{0x002700C2, &BOSS_P::GetNsDataHeaderInfo, "GetNsDataHeaderInfo"},
|
||||||
{0x00290080, SetNsDataAdditionalInfo, "SetNsDataAdditionalInfo"},
|
{0x00280102, &BOSS_P::ReadNsData, "ReadNsData"},
|
||||||
{0x002A0040, GetNsDataAdditionalInfo, "GetNsDataAdditionalInfo"},
|
{0x00290080, &BOSS_P::SetNsDataAdditionalInfo, "SetNsDataAdditionalInfo"},
|
||||||
{0x002B0080, SetNsDataNewFlag, "SetNsDataNewFlag"},
|
{0x002A0040, &BOSS_P::GetNsDataAdditionalInfo, "GetNsDataAdditionalInfo"},
|
||||||
{0x002C0040, GetNsDataNewFlag, "GetNsDataNewFlag"},
|
{0x002B0080, &BOSS_P::SetNsDataNewFlag, "SetNsDataNewFlag"},
|
||||||
{0x002D0040, GetNsDataLastUpdate, "GetNsDataLastUpdate"},
|
{0x002C0040, &BOSS_P::GetNsDataNewFlag, "GetNsDataNewFlag"},
|
||||||
{0x002E0040, GetErrorCode, "GetErrorCode"},
|
{0x002D0040, &BOSS_P::GetNsDataLastUpdate, "GetNsDataLastUpdate"},
|
||||||
{0x002F0140, RegisterStorageEntry, "RegisterStorageEntry"},
|
{0x002E0040, &BOSS_P::GetErrorCode, "GetErrorCode"},
|
||||||
{0x00300000, GetStorageEntryInfo, "GetStorageEntryInfo"},
|
{0x002F0140, &BOSS_P::RegisterStorageEntry, "RegisterStorageEntry"},
|
||||||
{0x00310100, SetStorageOption, "SetStorageOption"},
|
{0x00300000, &BOSS_P::GetStorageEntryInfo, "GetStorageEntryInfo"},
|
||||||
{0x00320000, GetStorageOption, "GetStorageOption"},
|
{0x00310100, &BOSS_P::SetStorageOption, "SetStorageOption"},
|
||||||
{0x00330042, StartBgImmediate, "StartBgImmediate"},
|
{0x00320000, &BOSS_P::GetStorageOption, "GetStorageOption"},
|
||||||
{0x00340042, GetTaskActivePriority, "GetTaskActivePriority"},
|
{0x00330042, &BOSS_P::StartBgImmediate, "StartBgImmediate"},
|
||||||
{0x003500C2, RegisterImmediateTask, "RegisterImmediateTask"},
|
{0x00340042, &BOSS_P::GetTaskProperty0, "GetTaskProperty0"},
|
||||||
{0x00360084, SetTaskQuery, "SetTaskQuery"},
|
{0x003500C2, &BOSS_P::RegisterImmediateTask, "RegisterImmediateTask"},
|
||||||
{0x00370084, GetTaskQuery, "GetTaskQuery"},
|
{0x00360084, &BOSS_P::SetTaskQuery, "SetTaskQuery"},
|
||||||
|
{0x00370084, &BOSS_P::GetTaskQuery, "GetTaskQuery"},
|
||||||
// boss:p
|
// boss:p
|
||||||
{0x04010082, nullptr, "InitializeSessionPrivileged"},
|
{0x04010082, &BOSS_P::InitializeSessionPrivileged, "InitializeSessionPrivileged"},
|
||||||
{0x04040080, nullptr, "GetAppNewFlag"},
|
{0x04040080, &BOSS_P::GetAppNewFlag, "GetAppNewFlag"},
|
||||||
{0x040D0182, nullptr, "GetNsDataIdListPrivileged"},
|
{0x040D0182, &BOSS_P::GetNsDataIdListPrivileged, "GetNsDataIdListPrivileged"},
|
||||||
{0x040E0182, nullptr, "GetNsDataIdListPrivileged1"},
|
{0x040E0182, &BOSS_P::GetNsDataIdListPrivileged1, "GetNsDataIdListPrivileged1"},
|
||||||
{0x04130082, nullptr, "SendPropertyPrivileged"},
|
{0x04130082, &BOSS_P::SendPropertyPrivileged, "SendPropertyPrivileged"},
|
||||||
{0x041500C0, nullptr, "DeleteNsDataPrivileged"},
|
{0x041500C0, &BOSS_P::DeleteNsDataPrivileged, "DeleteNsDataPrivileged"},
|
||||||
{0x04160142, nullptr, "GetNsDataHeaderInfoPrivileged"},
|
{0x04160142, &BOSS_P::GetNsDataHeaderInfoPrivileged, "GetNsDataHeaderInfoPrivileged"},
|
||||||
{0x04170182, nullptr, "ReadNsDataPrivileged"},
|
{0x04170182, &BOSS_P::ReadNsDataPrivileged, "ReadNsDataPrivileged"},
|
||||||
{0x041A0100, nullptr, "SetNsDataNewFlagPrivileged"},
|
{0x041A0100, &BOSS_P::SetNsDataNewFlagPrivileged, "SetNsDataNewFlagPrivileged"},
|
||||||
{0x041B00C0, nullptr, "GetNsDataNewFlagPrivileged"},
|
{0x041B00C0, &BOSS_P::GetNsDataNewFlagPrivileged, "GetNsDataNewFlagPrivileged"},
|
||||||
|
// clang-format on
|
||||||
};
|
};
|
||||||
|
|
||||||
BOSS_P_Interface::BOSS_P_Interface() {
|
RegisterHandlers(functions);
|
||||||
Register(FunctionTable);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace BOSS
|
} // namespace BOSS
|
||||||
|
|
|
@ -4,18 +4,14 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "core/hle/service/service.h"
|
#include "core/hle/service/boss/boss.h"
|
||||||
|
|
||||||
namespace Service {
|
namespace Service {
|
||||||
namespace BOSS {
|
namespace BOSS {
|
||||||
|
|
||||||
class BOSS_P_Interface : public Service::Interface {
|
class BOSS_P final : public Module::Interface {
|
||||||
public:
|
public:
|
||||||
BOSS_P_Interface();
|
explicit BOSS_P(std::shared_ptr<Module> boss);
|
||||||
|
|
||||||
std::string GetPortName() const override {
|
|
||||||
return "boss:P";
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace BOSS
|
} // namespace BOSS
|
||||||
|
|
|
@ -2,72 +2,74 @@
|
||||||
// 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/boss/boss.h"
|
|
||||||
#include "core/hle/service/boss/boss_u.h"
|
#include "core/hle/service/boss/boss_u.h"
|
||||||
|
|
||||||
namespace Service {
|
namespace Service {
|
||||||
namespace BOSS {
|
namespace BOSS {
|
||||||
|
|
||||||
const Interface::FunctionInfo FunctionTable[] = {
|
BOSS_U::BOSS_U(std::shared_ptr<Module> boss)
|
||||||
{0x00010082, InitializeSession, "InitializeSession"},
|
: Module::Interface(std::move(boss), "boss:U", DefaultMaxSessions) {
|
||||||
{0x00020100, RegisterStorage, "RegisterStorage"},
|
static const FunctionInfo functions[] = {
|
||||||
{0x00030000, UnregisterStorage, "UnregisterStorage"},
|
// clang-format off
|
||||||
{0x00040000, GetStorageInfo, "GetStorageInfo"},
|
{0x00010082, &BOSS_U::InitializeSession, "InitializeSession"},
|
||||||
{0x00050042, RegisterPrivateRootCa, "RegisterPrivateRootCa"},
|
{0x00020100, &BOSS_U::SetStorageInfo, "SetStorageInfo"},
|
||||||
{0x00060084, RegisterPrivateClientCert, "RegisterPrivateClientCert"},
|
{0x00030000, &BOSS_U::UnregisterStorage, "UnregisterStorage"},
|
||||||
{0x00070000, GetNewArrivalFlag, "GetNewArrivalFlag"},
|
{0x00040000, &BOSS_U::GetStorageInfo, "GetStorageInfo"},
|
||||||
{0x00080002, RegisterNewArrivalEvent, "RegisterNewArrivalEvent"},
|
{0x00050042, &BOSS_U::RegisterPrivateRootCa, "RegisterPrivateRootCa"},
|
||||||
{0x00090040, SetOptoutFlag, "SetOptoutFlag"},
|
{0x00060084, &BOSS_U::RegisterPrivateClientCert, "RegisterPrivateClientCert"},
|
||||||
{0x000A0000, GetOptoutFlag, "GetOptoutFlag"},
|
{0x00070000, &BOSS_U::GetNewArrivalFlag, "GetNewArrivalFlag"},
|
||||||
{0x000B00C2, RegisterTask, "RegisterTask"},
|
{0x00080002, &BOSS_U::RegisterNewArrivalEvent, "RegisterNewArrivalEvent"},
|
||||||
{0x000C0082, UnregisterTask, "UnregisterTask"},
|
{0x00090040, &BOSS_U::SetOptoutFlag, "SetOptoutFlag"},
|
||||||
{0x000D0082, ReconfigureTask, "ReconfigureTask"},
|
{0x000A0000, &BOSS_U::GetOptoutFlag, "GetOptoutFlag"},
|
||||||
{0x000E0000, GetTaskIdList, "GetTaskIdList"},
|
{0x000B00C2, &BOSS_U::RegisterTask, "RegisterTask"},
|
||||||
{0x000F0042, GetStepIdList, "GetStepIdList"},
|
{0x000C0082, &BOSS_U::UnregisterTask, "UnregisterTask"},
|
||||||
{0x00100102, GetNsDataIdList, "GetNsDataIdList"},
|
{0x000D0082, &BOSS_U::ReconfigureTask, "ReconfigureTask"},
|
||||||
{0x00110102, GetOwnNsDataIdList, "GetOwnNsDataIdList"},
|
{0x000E0000, &BOSS_U::GetTaskIdList, "GetTaskIdList"},
|
||||||
{0x00120102, GetNewDataNsDataIdList, "GetNewDataNsDataIdList"},
|
{0x000F0042, &BOSS_U::GetStepIdList, "GetStepIdList"},
|
||||||
{0x00130102, GetOwnNewDataNsDataIdList, "GetOwnNewDataNsDataIdList"},
|
{0x00100102, &BOSS_U::GetNsDataIdList, "GetNsDataIdList"},
|
||||||
{0x00140082, SendProperty, "SendProperty"},
|
{0x00110102, &BOSS_U::GetNsDataIdList1, "GetNsDataIdList1"},
|
||||||
{0x00150042, SendPropertyHandle, "SendPropertyHandle"},
|
{0x00120102, &BOSS_U::GetNsDataIdList2, "GetNsDataIdList2"},
|
||||||
{0x00160082, ReceiveProperty, "ReceiveProperty"},
|
{0x00130102, &BOSS_U::GetNsDataIdList3, "GetNsDataIdList3"},
|
||||||
{0x00170082, UpdateTaskInterval, "UpdateTaskInterval"},
|
{0x00140082, &BOSS_U::SendProperty, "SendProperty"},
|
||||||
{0x00180082, UpdateTaskCount, "UpdateTaskCount"},
|
{0x00150042, &BOSS_U::SendPropertyHandle, "SendPropertyHandle"},
|
||||||
{0x00190042, GetTaskInterval, "GetTaskInterval"},
|
{0x00160082, &BOSS_U::ReceiveProperty, "ReceiveProperty"},
|
||||||
{0x001A0042, GetTaskCount, "GetTaskCount"},
|
{0x00170082, &BOSS_U::UpdateTaskInterval, "UpdateTaskInterval"},
|
||||||
{0x001B0042, GetTaskServiceStatus, "GetTaskServiceStatus"},
|
{0x00180082, &BOSS_U::UpdateTaskCount, "UpdateTaskCount"},
|
||||||
{0x001C0042, StartTask, "StartTask"},
|
{0x00190042, &BOSS_U::GetTaskInterval, "GetTaskInterval"},
|
||||||
{0x001D0042, StartTaskImmediate, "StartTaskImmediate"},
|
{0x001A0042, &BOSS_U::GetTaskCount, "GetTaskCount"},
|
||||||
{0x001E0042, CancelTask, "CancelTask"},
|
{0x001B0042, &BOSS_U::GetTaskServiceStatus, "GetTaskServiceStatus"},
|
||||||
{0x001F0000, GetTaskFinishHandle, "GetTaskFinishHandle"},
|
{0x001C0042, &BOSS_U::StartTask, "StartTask"},
|
||||||
{0x00200082, GetTaskState, "GetTaskState"},
|
{0x001D0042, &BOSS_U::StartTaskImmediate, "StartTaskImmediate"},
|
||||||
{0x00210042, GetTaskResult, "GetTaskResult"},
|
{0x001E0042, &BOSS_U::CancelTask, "CancelTask"},
|
||||||
{0x00220042, GetTaskCommErrorCode, "GetTaskCommErrorCode"},
|
{0x001F0000, &BOSS_U::GetTaskFinishHandle, "GetTaskFinishHandle"},
|
||||||
{0x002300C2, GetTaskStatus, "GetTaskStatus"},
|
{0x00200082, &BOSS_U::GetTaskState, "GetTaskState"},
|
||||||
{0x00240082, GetTaskError, "GetTaskError"},
|
{0x00210042, &BOSS_U::GetTaskResult, "GetTaskResult"},
|
||||||
{0x00250082, GetTaskInfo, "GetTaskInfo"},
|
{0x00220042, &BOSS_U::GetTaskCommErrorCode, "GetTaskCommErrorCode"},
|
||||||
{0x00260040, DeleteNsData, "DeleteNsData"},
|
{0x002300C2, &BOSS_U::GetTaskStatus, "GetTaskStatus"},
|
||||||
{0x002700C2, GetNsDataHeaderInfo, "GetNsDataHeaderInfo"},
|
{0x00240082, &BOSS_U::GetTaskError, "GetTaskError"},
|
||||||
{0x00280102, ReadNsData, "ReadNsData"},
|
{0x00250082, &BOSS_U::GetTaskInfo, "GetTaskInfo"},
|
||||||
{0x00290080, SetNsDataAdditionalInfo, "SetNsDataAdditionalInfo"},
|
{0x00260040, &BOSS_U::DeleteNsData, "DeleteNsData"},
|
||||||
{0x002A0040, GetNsDataAdditionalInfo, "GetNsDataAdditionalInfo"},
|
{0x002700C2, &BOSS_U::GetNsDataHeaderInfo, "GetNsDataHeaderInfo"},
|
||||||
{0x002B0080, SetNsDataNewFlag, "SetNsDataNewFlag"},
|
{0x00280102, &BOSS_U::ReadNsData, "ReadNsData"},
|
||||||
{0x002C0040, GetNsDataNewFlag, "GetNsDataNewFlag"},
|
{0x00290080, &BOSS_U::SetNsDataAdditionalInfo, "SetNsDataAdditionalInfo"},
|
||||||
{0x002D0040, GetNsDataLastUpdate, "GetNsDataLastUpdate"},
|
{0x002A0040, &BOSS_U::GetNsDataAdditionalInfo, "GetNsDataAdditionalInfo"},
|
||||||
{0x002E0040, GetErrorCode, "GetErrorCode"},
|
{0x002B0080, &BOSS_U::SetNsDataNewFlag, "SetNsDataNewFlag"},
|
||||||
{0x002F0140, RegisterStorageEntry, "RegisterStorageEntry"},
|
{0x002C0040, &BOSS_U::GetNsDataNewFlag, "GetNsDataNewFlag"},
|
||||||
{0x00300000, GetStorageEntryInfo, "GetStorageEntryInfo"},
|
{0x002D0040, &BOSS_U::GetNsDataLastUpdate, "GetNsDataLastUpdate"},
|
||||||
{0x00310100, SetStorageOption, "SetStorageOption"},
|
{0x002E0040, &BOSS_U::GetErrorCode, "GetErrorCode"},
|
||||||
{0x00320000, GetStorageOption, "GetStorageOption"},
|
{0x002F0140, &BOSS_U::RegisterStorageEntry, "RegisterStorageEntry"},
|
||||||
{0x00330042, StartBgImmediate, "StartBgImmediate"},
|
{0x00300000, &BOSS_U::GetStorageEntryInfo, "GetStorageEntryInfo"},
|
||||||
{0x00340042, GetTaskActivePriority, "GetTaskActivePriority"},
|
{0x00310100, &BOSS_U::SetStorageOption, "SetStorageOption"},
|
||||||
{0x003500C2, RegisterImmediateTask, "RegisterImmediateTask"},
|
{0x00320000, &BOSS_U::GetStorageOption, "GetStorageOption"},
|
||||||
{0x00360084, SetTaskQuery, "SetTaskQuery"},
|
{0x00330042, &BOSS_U::StartBgImmediate, "StartBgImmediate"},
|
||||||
{0x00370084, GetTaskQuery, "GetTaskQuery"},
|
{0x00340042, &BOSS_U::GetTaskProperty0, "GetTaskProperty0"},
|
||||||
|
{0x003500C2, &BOSS_U::RegisterImmediateTask, "RegisterImmediateTask"},
|
||||||
|
{0x00360084, &BOSS_U::SetTaskQuery, "SetTaskQuery"},
|
||||||
|
{0x00370084, &BOSS_U::GetTaskQuery, "GetTaskQuery"},
|
||||||
|
// clang-format on
|
||||||
};
|
};
|
||||||
|
|
||||||
BOSS_U_Interface::BOSS_U_Interface() {
|
RegisterHandlers(functions);
|
||||||
Register(FunctionTable);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace BOSS
|
} // namespace BOSS
|
||||||
|
|
|
@ -4,18 +4,14 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "core/hle/service/service.h"
|
#include "core/hle/service/boss/boss.h"
|
||||||
|
|
||||||
namespace Service {
|
namespace Service {
|
||||||
namespace BOSS {
|
namespace BOSS {
|
||||||
|
|
||||||
class BOSS_U_Interface : public Service::Interface {
|
class BOSS_U final : public Module::Interface {
|
||||||
public:
|
public:
|
||||||
BOSS_U_Interface();
|
explicit BOSS_U(std::shared_ptr<Module> boss);
|
||||||
|
|
||||||
std::string GetPortName() const override {
|
|
||||||
return "boss:U";
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace BOSS
|
} // namespace BOSS
|
||||||
|
|
|
@ -239,7 +239,7 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) {
|
||||||
ACT::InstallInterfaces(*sm);
|
ACT::InstallInterfaces(*sm);
|
||||||
AM::InstallInterfaces(*sm);
|
AM::InstallInterfaces(*sm);
|
||||||
APT::InstallInterfaces(*sm);
|
APT::InstallInterfaces(*sm);
|
||||||
BOSS::Init();
|
BOSS::InstallInterfaces(*sm);
|
||||||
CAM::InstallInterfaces(*sm);
|
CAM::InstallInterfaces(*sm);
|
||||||
CECD::InstallInterfaces(*sm);
|
CECD::InstallInterfaces(*sm);
|
||||||
CFG::InstallInterfaces(*sm);
|
CFG::InstallInterfaces(*sm);
|
||||||
|
@ -269,7 +269,6 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) {
|
||||||
|
|
||||||
/// Shutdown ServiceManager
|
/// Shutdown ServiceManager
|
||||||
void Shutdown() {
|
void Shutdown() {
|
||||||
BOSS::Shutdown();
|
|
||||||
FS::ArchiveShutdown();
|
FS::ArchiveShutdown();
|
||||||
|
|
||||||
g_kernel_named_ports.clear();
|
g_kernel_named_ports.clear();
|
||||||
|
|
Reference in New Issue