wlan.cpp 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. // Copyright 2018 yuzu emulator team
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #include <memory>
  5. #include "core/hle/service/service.h"
  6. #include "core/hle/service/sm/sm.h"
  7. #include "core/hle/service/wlan/wlan.h"
  8. namespace Service::WLAN {
  9. class WLANInfra final : public ServiceFramework<WLANInfra> {
  10. public:
  11. explicit WLANInfra() : ServiceFramework{"wlan:inf"} {
  12. // clang-format off
  13. static const FunctionInfo functions[] = {
  14. {0, nullptr, "Unknown1"},
  15. {1, nullptr, "Unknown2"},
  16. {2, nullptr, "GetMacAddress"},
  17. {3, nullptr, "StartScan"},
  18. {4, nullptr, "StopScan"},
  19. {5, nullptr, "Connect"},
  20. {6, nullptr, "CancelConnect"},
  21. {7, nullptr, "Disconnect"},
  22. {8, nullptr, "Unknown3"},
  23. {9, nullptr, "Unknown4"},
  24. {10, nullptr, "GetState"},
  25. {11, nullptr, "GetScanResult"},
  26. {12, nullptr, "GetRssi"},
  27. {13, nullptr, "ChangeRxAntenna"},
  28. {14, nullptr, "Unknown5"},
  29. {15, nullptr, "Unknown6"},
  30. {16, nullptr, "RequestWakeUp"},
  31. {17, nullptr, "RequestIfUpDown"},
  32. {18, nullptr, "Unknown7"},
  33. {19, nullptr, "Unknown8"},
  34. {20, nullptr, "Unknown9"},
  35. {21, nullptr, "Unknown10"},
  36. {22, nullptr, "Unknown11"},
  37. {23, nullptr, "Unknown12"},
  38. {24, nullptr, "Unknown13"},
  39. {25, nullptr, "Unknown14"},
  40. {26, nullptr, "Unknown15"},
  41. {27, nullptr, "Unknown16"},
  42. };
  43. // clang-format on
  44. RegisterHandlers(functions);
  45. }
  46. };
  47. class WLANLocal final : public ServiceFramework<WLANLocal> {
  48. public:
  49. explicit WLANLocal() : ServiceFramework{"wlan:lcl"} {
  50. // clang-format off
  51. static const FunctionInfo functions[] = {
  52. {0, nullptr, "Unknown1"},
  53. {1, nullptr, "Unknown2"},
  54. {2, nullptr, "Unknown3"},
  55. {3, nullptr, "Unknown4"},
  56. {4, nullptr, "Unknown5"},
  57. {5, nullptr, "Unknown6"},
  58. {6, nullptr, "GetMacAddress"},
  59. {7, nullptr, "CreateBss"},
  60. {8, nullptr, "DestroyBss"},
  61. {9, nullptr, "StartScan"},
  62. {10, nullptr, "StopScan"},
  63. {11, nullptr, "Connect"},
  64. {12, nullptr, "CancelConnect"},
  65. {13, nullptr, "Join"},
  66. {14, nullptr, "CancelJoin"},
  67. {15, nullptr, "Disconnect"},
  68. {16, nullptr, "SetBeaconLostCount"},
  69. {17, nullptr, "Unknown7"},
  70. {18, nullptr, "Unknown8"},
  71. {19, nullptr, "Unknown9"},
  72. {20, nullptr, "GetBssIndicationEvent"},
  73. {21, nullptr, "GetBssIndicationInfo"},
  74. {22, nullptr, "GetState"},
  75. {23, nullptr, "GetAllowedChannels"},
  76. {24, nullptr, "AddIe"},
  77. {25, nullptr, "DeleteIe"},
  78. {26, nullptr, "Unknown10"},
  79. {27, nullptr, "Unknown11"},
  80. {28, nullptr, "CreateRxEntry"},
  81. {29, nullptr, "DeleteRxEntry"},
  82. {30, nullptr, "Unknown12"},
  83. {31, nullptr, "Unknown13"},
  84. {32, nullptr, "AddMatchingDataToRxEntry"},
  85. {33, nullptr, "RemoveMatchingDataFromRxEntry"},
  86. {34, nullptr, "GetScanResult"},
  87. {35, nullptr, "Unknown14"},
  88. {36, nullptr, "SetActionFrameWithBeacon"},
  89. {37, nullptr, "CancelActionFrameWithBeacon"},
  90. {38, nullptr, "CreateRxEntryForActionFrame"},
  91. {39, nullptr, "DeleteRxEntryForActionFrame"},
  92. {40, nullptr, "Unknown15"},
  93. {41, nullptr, "Unknown16"},
  94. {42, nullptr, "CancelGetActionFrame"},
  95. {43, nullptr, "GetRssi"},
  96. {44, nullptr, "Unknown17"},
  97. {45, nullptr, "Unknown18"},
  98. {46, nullptr, "Unknown19"},
  99. {47, nullptr, "Unknown20"},
  100. {48, nullptr, "Unknown21"},
  101. };
  102. // clang-format on
  103. RegisterHandlers(functions);
  104. }
  105. };
  106. class WLANLocalGetFrame final : public ServiceFramework<WLANLocalGetFrame> {
  107. public:
  108. explicit WLANLocalGetFrame() : ServiceFramework{"wlan:lg"} {
  109. // clang-format off
  110. static const FunctionInfo functions[] = {
  111. {0, nullptr, "Unknown"},
  112. };
  113. // clang-format on
  114. RegisterHandlers(functions);
  115. }
  116. };
  117. class WLANSocketGetFrame final : public ServiceFramework<WLANSocketGetFrame> {
  118. public:
  119. explicit WLANSocketGetFrame() : ServiceFramework{"wlan:sg"} {
  120. // clang-format off
  121. static const FunctionInfo functions[] = {
  122. {0, nullptr, "Unknown"},
  123. };
  124. // clang-format on
  125. RegisterHandlers(functions);
  126. }
  127. };
  128. class WLANSocketManager final : public ServiceFramework<WLANSocketManager> {
  129. public:
  130. explicit WLANSocketManager() : ServiceFramework{"wlan:soc"} {
  131. // clang-format off
  132. static const FunctionInfo functions[] = {
  133. {0, nullptr, "Unknown1"},
  134. {1, nullptr, "Unknown2"},
  135. {2, nullptr, "Unknown3"},
  136. {3, nullptr, "Unknown4"},
  137. {4, nullptr, "Unknown5"},
  138. {5, nullptr, "Unknown6"},
  139. {6, nullptr, "GetMacAddress"},
  140. {7, nullptr, "SwitchTsfTimerFunction"},
  141. {8, nullptr, "Unknown7"},
  142. {9, nullptr, "Unknown8"},
  143. {10, nullptr, "Unknown9"},
  144. {11, nullptr, "Unknown10"},
  145. };
  146. // clang-format on
  147. RegisterHandlers(functions);
  148. }
  149. };
  150. void InstallInterfaces(SM::ServiceManager& sm) {
  151. std::make_shared<WLANInfra>()->InstallAsService(sm);
  152. std::make_shared<WLANLocal>()->InstallAsService(sm);
  153. std::make_shared<WLANLocalGetFrame>()->InstallAsService(sm);
  154. std::make_shared<WLANSocketGetFrame>()->InstallAsService(sm);
  155. std::make_shared<WLANSocketManager>()->InstallAsService(sm);
  156. }
  157. } // namespace Service::WLAN