mirror of
https://github.com/citra-emu/citra.git
synced 2024-12-18 11:50:05 +00:00
Merge pull request #1650 from JamePeng/update-the-ndm-code
Update the stub code of NDM service!
This commit is contained in:
commit
594bd182b4
@ -11,28 +11,217 @@
|
||||
namespace Service {
|
||||
namespace NDM {
|
||||
|
||||
void SuspendDaemons(Service::Interface* self) {
|
||||
enum : u32 {
|
||||
DEFAULT_RETRY_INTERVAL = 10,
|
||||
DEFAULT_SCAN_INTERVAL = 30
|
||||
};
|
||||
|
||||
static DaemonMask daemon_bit_mask = DaemonMask::Default;
|
||||
static DaemonMask default_daemon_bit_mask = DaemonMask::Default;
|
||||
static std::array<DaemonStatus, 4> daemon_status = { DaemonStatus::Idle, DaemonStatus::Idle, DaemonStatus::Idle, DaemonStatus::Idle };
|
||||
static ExclusiveState exclusive_state = ExclusiveState::None;
|
||||
static u32 scan_interval = DEFAULT_SCAN_INTERVAL;
|
||||
static u32 retry_interval = DEFAULT_RETRY_INTERVAL;
|
||||
static bool daemon_lock_enabled = false;
|
||||
|
||||
void EnterExclusiveState(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
exclusive_state = static_cast<ExclusiveState>(cmd_buff[1]);
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x1, 1, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) exclusive_state=0x%08X ", exclusive_state);
|
||||
}
|
||||
|
||||
void LeaveExclusiveState(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
exclusive_state = ExclusiveState::None;
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x2, 1, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) exclusive_state=0x%08X ", exclusive_state);
|
||||
}
|
||||
|
||||
void QueryExclusiveMode(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) bit_mask=0x%08X ", cmd_buff[1]);
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x3, 2, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
cmd_buff[2] = static_cast<u32>(exclusive_state);
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) exclusive_state=0x%08X ", exclusive_state);
|
||||
}
|
||||
|
||||
void LockState(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
daemon_lock_enabled = true;
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x4, 1, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) daemon_lock_enabled=0x%08X ", daemon_lock_enabled);
|
||||
}
|
||||
|
||||
void UnlockState(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
daemon_lock_enabled = false;
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x5, 1, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) daemon_lock_enabled=0x%08X ", daemon_lock_enabled);
|
||||
}
|
||||
|
||||
void SuspendDaemons(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
u32 bit_mask = cmd_buff[1] & 0xF;
|
||||
daemon_bit_mask = static_cast<DaemonMask>(static_cast<u32>(default_daemon_bit_mask) & ~bit_mask);
|
||||
for (size_t index = 0; index < daemon_status.size(); ++index) {
|
||||
if (bit_mask & (1 << index)) {
|
||||
daemon_status[index] = DaemonStatus::Suspended;
|
||||
}
|
||||
}
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x6, 1, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) daemon_bit_mask=0x%08X ", daemon_bit_mask);
|
||||
}
|
||||
|
||||
void ResumeDaemons(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
u32 bit_mask = cmd_buff[1] & 0xF;
|
||||
daemon_bit_mask = static_cast<DaemonMask>(static_cast<u32>(daemon_bit_mask) | bit_mask);
|
||||
for (size_t index = 0; index < daemon_status.size(); ++index) {
|
||||
if (bit_mask & (1 << index)) {
|
||||
daemon_status[index] = DaemonStatus::Idle;
|
||||
}
|
||||
}
|
||||
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) bit_mask=0x%08X ", cmd_buff[1]);
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x7, 1, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) daemon_bit_mask=0x%08X ", daemon_bit_mask);
|
||||
}
|
||||
|
||||
void SuspendScheduler(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x8, 1, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) called");
|
||||
}
|
||||
|
||||
void ResumeScheduler(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x9, 1, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) called");
|
||||
}
|
||||
|
||||
void QueryStatus(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
u32 daemon = cmd_buff[1] & 0xF;
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0xD, 2, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
cmd_buff[2] = static_cast<u32>(daemon_status.at(daemon));
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) daemon=0x%08X, daemon_status=0x%08X", daemon, cmd_buff[2]);
|
||||
}
|
||||
|
||||
void GetDaemonDisableCount(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
u32 daemon = cmd_buff[1] & 0xF;
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0xE, 3, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
cmd_buff[2] = 0;
|
||||
cmd_buff[3] = 0;
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) daemon=0x%08X", daemon);
|
||||
}
|
||||
|
||||
void GetSchedulerDisableCount(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0xF, 3, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
cmd_buff[2] = 0;
|
||||
cmd_buff[3] = 0;
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) called");
|
||||
}
|
||||
|
||||
void SetScanInterval(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
scan_interval = cmd_buff[1];
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x10, 1, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) scan_interval=0x%08X ", scan_interval);
|
||||
}
|
||||
|
||||
void GetScanInterval(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x11, 2, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
cmd_buff[2] = scan_interval;
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) scan_interval=0x%08X ", scan_interval);
|
||||
}
|
||||
|
||||
void SetRetryInterval(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
retry_interval = cmd_buff[1];
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x12, 1, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) retry_interval=0x%08X ", retry_interval);
|
||||
}
|
||||
|
||||
void GetRetryInterval(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x13, 2, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
cmd_buff[2] = retry_interval;
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) retry_interval=0x%08X ", retry_interval);
|
||||
}
|
||||
|
||||
void OverrideDefaultDaemons(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
u32 bit_mask = cmd_buff[1] & 0xF;
|
||||
default_daemon_bit_mask = static_cast<DaemonMask>(bit_mask);
|
||||
daemon_bit_mask = default_daemon_bit_mask;
|
||||
for (size_t index = 0; index < daemon_status.size(); ++index) {
|
||||
if (bit_mask & (1 << index)) {
|
||||
daemon_status[index] = DaemonStatus::Idle;
|
||||
}
|
||||
}
|
||||
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) bit_mask=0x%08X ", cmd_buff[1]);
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x14, 1, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) default_daemon_bit_mask=0x%08X ", default_daemon_bit_mask);
|
||||
}
|
||||
|
||||
void ResetDefaultDaemons(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
default_daemon_bit_mask = DaemonMask::Default;
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x15, 1, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) default_daemon_bit_mask=0x%08X ", default_daemon_bit_mask);
|
||||
}
|
||||
|
||||
void GetDefaultDaemons(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x16, 2, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
cmd_buff[2] = static_cast<u32>(default_daemon_bit_mask);
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) default_daemon_bit_mask=0x%08X ", default_daemon_bit_mask);
|
||||
}
|
||||
|
||||
void ClearHalfAwakeMacFilter(Service::Interface* self) {
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
|
||||
cmd_buff[0] = IPC::MakeHeader(0x17, 1, 0);
|
||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
||||
LOG_WARNING(Service_NDM, "(STUBBED) called");
|
||||
}
|
||||
|
||||
void Init() {
|
||||
|
@ -12,10 +12,91 @@ class Interface;
|
||||
|
||||
namespace NDM {
|
||||
|
||||
enum class Daemon : u32 {
|
||||
Cec = 0,
|
||||
Boss = 1,
|
||||
Nim = 2,
|
||||
Friend = 3
|
||||
};
|
||||
|
||||
enum class DaemonMask : u32 {
|
||||
None = 0,
|
||||
Cec = (1 << static_cast<u32>(Daemon::Cec)),
|
||||
Boss = (1 << static_cast<u32>(Daemon::Boss)),
|
||||
Nim = (1 << static_cast<u32>(Daemon::Nim)),
|
||||
Friend = (1 << static_cast<u32>(Daemon::Friend)),
|
||||
Default = Cec | Friend,
|
||||
All = Cec | Boss | Nim | Friend
|
||||
};
|
||||
|
||||
enum class DaemonStatus : u32 {
|
||||
Busy = 0,
|
||||
Idle = 1,
|
||||
Suspending = 2,
|
||||
Suspended = 3
|
||||
};
|
||||
|
||||
enum class ExclusiveState : u32 {
|
||||
None = 0,
|
||||
Infrastructure = 1,
|
||||
LocalCommunications = 2,
|
||||
Streetpass = 3,
|
||||
StreetpassData = 4,
|
||||
};
|
||||
|
||||
/**
|
||||
* SuspendDaemons
|
||||
* NDM::EnterExclusiveState service function
|
||||
* Inputs:
|
||||
* 0 : Command header (0x00020082)
|
||||
* 0 : Header code [0x00010042]
|
||||
* 1 : Exclusive State
|
||||
* 2 : 0x20
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
*/
|
||||
void EnterExclusiveState(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::LeaveExclusiveState service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x00020002]
|
||||
* 1 : 0x20
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
*/
|
||||
void LeaveExclusiveState(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::QueryExclusiveMode service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x00030000]
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
* 2 : Current Exclusive State
|
||||
*/
|
||||
void QueryExclusiveMode(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::LockState service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x00040002]
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
*/
|
||||
void LockState(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::UnlockState service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x00050002]
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
*/
|
||||
void UnlockState(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::SuspendDaemons service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x00060040]
|
||||
* 1 : Daemon bit mask
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
@ -23,9 +104,9 @@ namespace NDM {
|
||||
void SuspendDaemons(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* ResumeDaemons
|
||||
* NDM::ResumeDaemons service function
|
||||
* Inputs:
|
||||
* 0 : Command header (0x00020082)
|
||||
* 0 : Header code [0x00070040]
|
||||
* 1 : Daemon bit mask
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
@ -33,15 +114,138 @@ void SuspendDaemons(Service::Interface* self);
|
||||
void ResumeDaemons(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* OverrideDefaultDaemons
|
||||
* NDM::SuspendScheduler service function
|
||||
* Inputs:
|
||||
* 0 : Command header (0x00020082)
|
||||
* 0 : Header code [0x00080040]
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
*/
|
||||
void SuspendScheduler(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::ResumeScheduler service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x00090000]
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
*/
|
||||
void ResumeScheduler(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::QueryStatus service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x000D0040]
|
||||
* 1 : Daemon
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
* 2 : Daemon status
|
||||
*/
|
||||
void QueryStatus(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::GetDaemonDisableCount service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x000E0040]
|
||||
* 1 : Daemon
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
* 2 : Current process disable count
|
||||
* 3 : Total disable count
|
||||
*/
|
||||
void GetDaemonDisableCount(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::GetSchedulerDisableCount service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x000F0000]
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
* 2 : Current process disable count
|
||||
* 3 : Total disable count
|
||||
*/
|
||||
void GetSchedulerDisableCount(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::SetScanInterval service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x00100040]
|
||||
* 1 : Interval (default = 30)
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
*/
|
||||
void SetScanInterval(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::GetScanInterval service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x00110000]
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
* 2 : Interval (default = 30)
|
||||
*/
|
||||
void GetScanInterval(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::SetRetryInterval service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x00120040]
|
||||
* 1 : Interval (default = 10)
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
*/
|
||||
void SetRetryInterval(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::GetRetryInterval service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x00130000]
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
* 2 : Interval (default = 10)
|
||||
*/
|
||||
void GetRetryInterval(Service::Interface* self);
|
||||
|
||||
|
||||
/**
|
||||
* NDM::OverrideDefaultDaemons service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x00140040]
|
||||
* 1 : Daemon bit mask
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
*/
|
||||
void OverrideDefaultDaemons(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::ResetDefaultDaemons service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x00150000]
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
*/
|
||||
void ResetDefaultDaemons(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::GetDefaultDaemons service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x00160000]
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
* 2 : Daemon bit mask
|
||||
* Note:
|
||||
* Gets the current default daemon bit mask. The default value is (DAEMONMASK_CEC | DAEMONMASK_FRIENDS)
|
||||
*/
|
||||
void GetDefaultDaemons(Service::Interface* self);
|
||||
|
||||
/**
|
||||
* NDM::ClearHalfAwakeMacFilter service function
|
||||
* Inputs:
|
||||
* 0 : Header code [0x00170000]
|
||||
* Outputs:
|
||||
* 1 : Result, 0 on success, otherwise error code
|
||||
*/
|
||||
void ClearHalfAwakeMacFilter(Service::Interface* self);
|
||||
|
||||
/// Initialize NDM service
|
||||
void Init();
|
||||
|
||||
|
@ -9,29 +9,29 @@ namespace Service {
|
||||
namespace NDM {
|
||||
|
||||
const Interface::FunctionInfo FunctionTable[] = {
|
||||
{0x00010042, nullptr, "EnterExclusiveState"},
|
||||
{0x00020002, nullptr, "LeaveExclusiveState"},
|
||||
{0x00030000, nullptr, "QueryExclusiveMode"},
|
||||
{0x00040002, nullptr, "LockState"},
|
||||
{0x00050002, nullptr, "UnlockState"},
|
||||
{0x00010042, EnterExclusiveState, "EnterExclusiveState"},
|
||||
{0x00020002, LeaveExclusiveState, "LeaveExclusiveState"},
|
||||
{0x00030000, QueryExclusiveMode, "QueryExclusiveMode"},
|
||||
{0x00040002, LockState, "LockState"},
|
||||
{0x00050002, UnlockState, "UnlockState"},
|
||||
{0x00060040, SuspendDaemons, "SuspendDaemons"},
|
||||
{0x00070040, ResumeDaemons, "ResumeDaemons"},
|
||||
{0x00080040, nullptr, "DisableWifiUsage"},
|
||||
{0x00090000, nullptr, "EnableWifiUsage"},
|
||||
{0x00080040, SuspendScheduler, "SuspendScheduler"},
|
||||
{0x00090000, ResumeScheduler, "ResumeScheduler"},
|
||||
{0x000A0000, nullptr, "GetCurrentState"},
|
||||
{0x000B0000, nullptr, "GetTargetState"},
|
||||
{0x000C0000, nullptr, "<Stubbed>"},
|
||||
{0x000D0040, nullptr, "QueryStatus"},
|
||||
{0x000E0040, nullptr, "GetDaemonDisableCount"},
|
||||
{0x000F0000, nullptr, "GetSchedulerDisableCount"},
|
||||
{0x00100040, nullptr, "SetScanInterval"},
|
||||
{0x00110000, nullptr, "GetScanInterval"},
|
||||
{0x00120040, nullptr, "SetRetryInterval"},
|
||||
{0x00130000, nullptr, "GetRetryInterval"},
|
||||
{0x000D0040, QueryStatus, "QueryStatus"},
|
||||
{0x000E0040, GetDaemonDisableCount, "GetDaemonDisableCount"},
|
||||
{0x000F0000, GetSchedulerDisableCount,"GetSchedulerDisableCount"},
|
||||
{0x00100040, SetScanInterval, "SetScanInterval"},
|
||||
{0x00110000, GetScanInterval, "GetScanInterval"},
|
||||
{0x00120040, SetRetryInterval, "SetRetryInterval"},
|
||||
{0x00130000, GetRetryInterval, "GetRetryInterval"},
|
||||
{0x00140040, OverrideDefaultDaemons, "OverrideDefaultDaemons"},
|
||||
{0x00150000, nullptr, "ResetDefaultDaemons"},
|
||||
{0x00160000, nullptr, "GetDefaultDaemons"},
|
||||
{0x00170000, nullptr, "ClearHalfAwakeMacFilter"},
|
||||
{0x00150000, ResetDefaultDaemons, "ResetDefaultDaemons"},
|
||||
{0x00160000, GetDefaultDaemons, "GetDefaultDaemons"},
|
||||
{0x00170000, ClearHalfAwakeMacFilter, "ClearHalfAwakeMacFilter"},
|
||||
};
|
||||
|
||||
NDM_U_Interface::NDM_U_Interface() {
|
||||
|
Loading…
Reference in New Issue
Block a user