forked from suyu/suyu
Merge pull request #2364 from mailwl/nwm-services
Service/NWM: add nwm services
This commit is contained in:
commit
5e8ef00497
18 changed files with 317 additions and 10 deletions
|
@ -123,7 +123,14 @@ set(SRCS
|
||||||
hle/service/nim/nim_s.cpp
|
hle/service/nim/nim_s.cpp
|
||||||
hle/service/nim/nim_u.cpp
|
hle/service/nim/nim_u.cpp
|
||||||
hle/service/ns_s.cpp
|
hle/service/ns_s.cpp
|
||||||
hle/service/nwm_uds.cpp
|
hle/service/nwm/nwm.cpp
|
||||||
|
hle/service/nwm/nwm_cec.cpp
|
||||||
|
hle/service/nwm/nwm_ext.cpp
|
||||||
|
hle/service/nwm/nwm_inf.cpp
|
||||||
|
hle/service/nwm/nwm_sap.cpp
|
||||||
|
hle/service/nwm/nwm_soc.cpp
|
||||||
|
hle/service/nwm/nwm_tst.cpp
|
||||||
|
hle/service/nwm/nwm_uds.cpp
|
||||||
hle/service/pm_app.cpp
|
hle/service/pm_app.cpp
|
||||||
hle/service/ptm/ptm.cpp
|
hle/service/ptm/ptm.cpp
|
||||||
hle/service/ptm/ptm_gets.cpp
|
hle/service/ptm/ptm_gets.cpp
|
||||||
|
@ -288,7 +295,14 @@ set(HEADERS
|
||||||
hle/service/nim/nim_s.h
|
hle/service/nim/nim_s.h
|
||||||
hle/service/nim/nim_u.h
|
hle/service/nim/nim_u.h
|
||||||
hle/service/ns_s.h
|
hle/service/ns_s.h
|
||||||
hle/service/nwm_uds.h
|
hle/service/nwm/nwm.h
|
||||||
|
hle/service/nwm/nwm_cec.h
|
||||||
|
hle/service/nwm/nwm_ext.h
|
||||||
|
hle/service/nwm/nwm_inf.h
|
||||||
|
hle/service/nwm/nwm_sap.h
|
||||||
|
hle/service/nwm/nwm_soc.h
|
||||||
|
hle/service/nwm/nwm_tst.h
|
||||||
|
hle/service/nwm/nwm_uds.h
|
||||||
hle/service/pm_app.h
|
hle/service/pm_app.h
|
||||||
hle/service/ptm/ptm.h
|
hle/service/ptm/ptm.h
|
||||||
hle/service/ptm/ptm_gets.h
|
hle/service/ptm/ptm_gets.h
|
||||||
|
|
28
src/core/hle/service/nwm/nwm.cpp
Normal file
28
src/core/hle/service/nwm/nwm.cpp
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "core/hle/service/nwm/nwm.h"
|
||||||
|
#include "core/hle/service/nwm/nwm_cec.h"
|
||||||
|
#include "core/hle/service/nwm/nwm_ext.h"
|
||||||
|
#include "core/hle/service/nwm/nwm_inf.h"
|
||||||
|
#include "core/hle/service/nwm/nwm_sap.h"
|
||||||
|
#include "core/hle/service/nwm/nwm_soc.h"
|
||||||
|
#include "core/hle/service/nwm/nwm_tst.h"
|
||||||
|
#include "core/hle/service/nwm/nwm_uds.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NWM {
|
||||||
|
|
||||||
|
void Init() {
|
||||||
|
AddService(new NWM_CEC);
|
||||||
|
AddService(new NWM_EXT);
|
||||||
|
AddService(new NWM_INF);
|
||||||
|
AddService(new NWM_SAP);
|
||||||
|
AddService(new NWM_SOC);
|
||||||
|
AddService(new NWM_TST);
|
||||||
|
AddService(new NWM_UDS);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace NWM
|
||||||
|
} // namespace Service
|
14
src/core/hle/service/nwm/nwm.h
Normal file
14
src/core/hle/service/nwm/nwm.h
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NWM {
|
||||||
|
|
||||||
|
/// Initialize all NWM services
|
||||||
|
void Init();
|
||||||
|
|
||||||
|
} // namespace NWM
|
||||||
|
} // namespace Service
|
19
src/core/hle/service/nwm/nwm_cec.cpp
Normal file
19
src/core/hle/service/nwm/nwm_cec.cpp
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "core/hle/service/nwm/nwm_cec.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NWM {
|
||||||
|
|
||||||
|
const Interface::FunctionInfo FunctionTable[] = {
|
||||||
|
{0x000D0082, nullptr, "SendProbeRequest"},
|
||||||
|
};
|
||||||
|
|
||||||
|
NWM_CEC::NWM_CEC() {
|
||||||
|
Register(FunctionTable);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace NWM
|
||||||
|
} // namespace Service
|
22
src/core/hle/service/nwm/nwm_cec.h
Normal file
22
src/core/hle/service/nwm/nwm_cec.h
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/hle/service/service.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NWM {
|
||||||
|
|
||||||
|
class NWM_CEC final : public Interface {
|
||||||
|
public:
|
||||||
|
NWM_CEC();
|
||||||
|
|
||||||
|
std::string GetPortName() const override {
|
||||||
|
return "nwm::CEC";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace NWM
|
||||||
|
} // namespace Service
|
19
src/core/hle/service/nwm/nwm_ext.cpp
Normal file
19
src/core/hle/service/nwm/nwm_ext.cpp
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "core/hle/service/nwm/nwm_ext.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NWM {
|
||||||
|
|
||||||
|
const Interface::FunctionInfo FunctionTable[] = {
|
||||||
|
{0x00080040, nullptr, "ControlWirelessEnabled"},
|
||||||
|
};
|
||||||
|
|
||||||
|
NWM_EXT::NWM_EXT() {
|
||||||
|
Register(FunctionTable);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace NWM
|
||||||
|
} // namespace Service
|
22
src/core/hle/service/nwm/nwm_ext.h
Normal file
22
src/core/hle/service/nwm/nwm_ext.h
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/hle/service/service.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NWM {
|
||||||
|
|
||||||
|
class NWM_EXT final : public Interface {
|
||||||
|
public:
|
||||||
|
NWM_EXT();
|
||||||
|
|
||||||
|
std::string GetPortName() const override {
|
||||||
|
return "nwm::EXT";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace NWM
|
||||||
|
} // namespace Service
|
21
src/core/hle/service/nwm/nwm_inf.cpp
Normal file
21
src/core/hle/service/nwm/nwm_inf.cpp
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "core/hle/service/nwm/nwm_inf.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NWM {
|
||||||
|
|
||||||
|
const Interface::FunctionInfo FunctionTable[] = {
|
||||||
|
{0x000603C4, nullptr, "RecvBeaconBroadcastData"},
|
||||||
|
{0x00070742, nullptr, "ConnectToEncryptedAP"},
|
||||||
|
{0x00080302, nullptr, "ConnectToAP"},
|
||||||
|
};
|
||||||
|
|
||||||
|
NWM_INF::NWM_INF() {
|
||||||
|
Register(FunctionTable);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace NWM
|
||||||
|
} // namespace Service
|
22
src/core/hle/service/nwm/nwm_inf.h
Normal file
22
src/core/hle/service/nwm/nwm_inf.h
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/hle/service/service.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NWM {
|
||||||
|
|
||||||
|
class NWM_INF final : public Interface {
|
||||||
|
public:
|
||||||
|
NWM_INF();
|
||||||
|
|
||||||
|
std::string GetPortName() const override {
|
||||||
|
return "nwm::INF";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace NWM
|
||||||
|
} // namespace Service
|
20
src/core/hle/service/nwm/nwm_sap.cpp
Normal file
20
src/core/hle/service/nwm/nwm_sap.cpp
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "core/hle/service/nwm/nwm_sap.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NWM {
|
||||||
|
|
||||||
|
/*
|
||||||
|
const Interface::FunctionInfo FunctionTable[] = {
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
NWM_SAP::NWM_SAP() {
|
||||||
|
// Register(FunctionTable);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace NWM
|
||||||
|
} // namespace Service
|
22
src/core/hle/service/nwm/nwm_sap.h
Normal file
22
src/core/hle/service/nwm/nwm_sap.h
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/hle/service/service.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NWM {
|
||||||
|
|
||||||
|
class NWM_SAP final : public Interface {
|
||||||
|
public:
|
||||||
|
NWM_SAP();
|
||||||
|
|
||||||
|
std::string GetPortName() const override {
|
||||||
|
return "nwm::SAP";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace NWM
|
||||||
|
} // namespace Service
|
20
src/core/hle/service/nwm/nwm_soc.cpp
Normal file
20
src/core/hle/service/nwm/nwm_soc.cpp
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "core/hle/service/nwm/nwm_soc.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NWM {
|
||||||
|
|
||||||
|
/*
|
||||||
|
const Interface::FunctionInfo FunctionTable[] = {
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
NWM_SOC::NWM_SOC() {
|
||||||
|
// Register(FunctionTable);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace NWM
|
||||||
|
} // namespace Service
|
22
src/core/hle/service/nwm/nwm_soc.h
Normal file
22
src/core/hle/service/nwm/nwm_soc.h
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/hle/service/service.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NWM {
|
||||||
|
|
||||||
|
class NWM_SOC final : public Interface {
|
||||||
|
public:
|
||||||
|
NWM_SOC();
|
||||||
|
|
||||||
|
std::string GetPortName() const override {
|
||||||
|
return "nwm::SOC";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace NWM
|
||||||
|
} // namespace Service
|
20
src/core/hle/service/nwm/nwm_tst.cpp
Normal file
20
src/core/hle/service/nwm/nwm_tst.cpp
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "core/hle/service/nwm/nwm_tst.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NWM {
|
||||||
|
|
||||||
|
/*
|
||||||
|
const Interface::FunctionInfo FunctionTable[] = {
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
NWM_TST::NWM_TST() {
|
||||||
|
// Register(FunctionTable);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace NWM
|
||||||
|
} // namespace Service
|
22
src/core/hle/service/nwm/nwm_tst.h
Normal file
22
src/core/hle/service/nwm/nwm_tst.h
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/hle/service/service.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NWM {
|
||||||
|
|
||||||
|
class NWM_TST final : public Interface {
|
||||||
|
public:
|
||||||
|
NWM_TST();
|
||||||
|
|
||||||
|
std::string GetPortName() const override {
|
||||||
|
return "nwm::TST";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace NWM
|
||||||
|
} // namespace Service
|
|
@ -5,12 +5,12 @@
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
#include "common/logging/log.h"
|
#include "common/logging/log.h"
|
||||||
#include "core/hle/kernel/event.h"
|
#include "core/hle/kernel/event.h"
|
||||||
#include "core/hle/service/nwm_uds.h"
|
#include "core/hle/service/nwm/nwm_uds.h"
|
||||||
|
|
||||||
namespace Service {
|
namespace Service {
|
||||||
namespace NWM {
|
namespace NWM {
|
||||||
|
|
||||||
static Kernel::SharedPtr<Kernel::Event> handle_event;
|
static Kernel::SharedPtr<Kernel::Event> uds_handle_event;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NWM_UDS::Shutdown service function
|
* NWM_UDS::Shutdown service function
|
||||||
|
@ -101,7 +101,7 @@ static void InitializeWithVersion(Interface* self) {
|
||||||
/*
|
/*
|
||||||
cmd_buff[1] = RESULT_SUCCESS.raw;
|
cmd_buff[1] = RESULT_SUCCESS.raw;
|
||||||
cmd_buff[2] = 0;
|
cmd_buff[2] = 0;
|
||||||
cmd_buff[3] = Kernel::g_handle_table.Create(handle_event)
|
cmd_buff[3] = Kernel::g_handle_table.Create(uds_handle_event)
|
||||||
.MoveFrom(); // TODO(purpasmart): Verify if this is a event handle
|
.MoveFrom(); // TODO(purpasmart): Verify if this is a event handle
|
||||||
*/
|
*/
|
||||||
cmd_buff[0] = IPC::MakeHeader(0x1B, 1, 2);
|
cmd_buff[0] = IPC::MakeHeader(0x1B, 1, 2);
|
||||||
|
@ -116,6 +116,7 @@ static void InitializeWithVersion(Interface* self) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const Interface::FunctionInfo FunctionTable[] = {
|
const Interface::FunctionInfo FunctionTable[] = {
|
||||||
|
{0x00010442, nullptr, "Initialize (deprecated)"},
|
||||||
{0x00020000, nullptr, "Scrap"},
|
{0x00020000, nullptr, "Scrap"},
|
||||||
{0x00030000, Shutdown, "Shutdown"},
|
{0x00030000, Shutdown, "Shutdown"},
|
||||||
{0x00040402, nullptr, "CreateNetwork (deprecated)"},
|
{0x00040402, nullptr, "CreateNetwork (deprecated)"},
|
||||||
|
@ -147,13 +148,13 @@ const Interface::FunctionInfo FunctionTable[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
NWM_UDS::NWM_UDS() {
|
NWM_UDS::NWM_UDS() {
|
||||||
handle_event = Kernel::Event::Create(Kernel::ResetType::OneShot, "NWM_UDS::handle_event");
|
uds_handle_event = Kernel::Event::Create(Kernel::ResetType::OneShot, "NWM::uds_handle_event");
|
||||||
|
|
||||||
Register(FunctionTable);
|
Register(FunctionTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
NWM_UDS::~NWM_UDS() {
|
NWM_UDS::~NWM_UDS() {
|
||||||
handle_event = nullptr;
|
uds_handle_event = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace NWM
|
} // namespace NWM
|
|
@ -35,7 +35,7 @@
|
||||||
#include "core/hle/service/nfc/nfc.h"
|
#include "core/hle/service/nfc/nfc.h"
|
||||||
#include "core/hle/service/nim/nim.h"
|
#include "core/hle/service/nim/nim.h"
|
||||||
#include "core/hle/service/ns_s.h"
|
#include "core/hle/service/ns_s.h"
|
||||||
#include "core/hle/service/nwm_uds.h"
|
#include "core/hle/service/nwm/nwm.h"
|
||||||
#include "core/hle/service/pm_app.h"
|
#include "core/hle/service/pm_app.h"
|
||||||
#include "core/hle/service/ptm/ptm.h"
|
#include "core/hle/service/ptm/ptm.h"
|
||||||
#include "core/hle/service/qtm/qtm.h"
|
#include "core/hle/service/qtm/qtm.h"
|
||||||
|
@ -154,6 +154,7 @@ void Init() {
|
||||||
NEWS::Init();
|
NEWS::Init();
|
||||||
NFC::Init();
|
NFC::Init();
|
||||||
NIM::Init();
|
NIM::Init();
|
||||||
|
NWM::Init();
|
||||||
PTM::Init();
|
PTM::Init();
|
||||||
QTM::Init();
|
QTM::Init();
|
||||||
|
|
||||||
|
@ -166,7 +167,6 @@ void Init() {
|
||||||
AddService(new LDR::LDR_RO);
|
AddService(new LDR::LDR_RO);
|
||||||
AddService(new MIC::MIC_U);
|
AddService(new MIC::MIC_U);
|
||||||
AddService(new NS::NS_S);
|
AddService(new NS::NS_S);
|
||||||
AddService(new NWM::NWM_UDS);
|
|
||||||
AddService(new PM::PM_APP);
|
AddService(new PM::PM_APP);
|
||||||
AddService(new SOC::SOC_U);
|
AddService(new SOC::SOC_U);
|
||||||
AddService(new SSL::SSL_C);
|
AddService(new SSL::SSL_C);
|
||||||
|
@ -177,7 +177,6 @@ void Init() {
|
||||||
|
|
||||||
/// Shutdown ServiceManager
|
/// Shutdown ServiceManager
|
||||||
void Shutdown() {
|
void Shutdown() {
|
||||||
|
|
||||||
PTM::Shutdown();
|
PTM::Shutdown();
|
||||||
NIM::Shutdown();
|
NIM::Shutdown();
|
||||||
NEWS::Shutdown();
|
NEWS::Shutdown();
|
||||||
|
|
Loading…
Reference in a new issue