diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/common/logging/backend.cpp | 1 | ||||
| -rw-r--r-- | src/common/logging/log.h | 1 | ||||
| -rw-r--r-- | src/core/hle/service/boss/boss.cpp | 967 | ||||
| -rw-r--r-- | src/core/hle/service/boss/boss.h | 785 | ||||
| -rw-r--r-- | src/core/hle/service/boss/boss_u.cpp | 60 |
5 files changed, 1810 insertions, 4 deletions
diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp index 9a13a9e90..88209081d 100644 --- a/src/common/logging/backend.cpp +++ b/src/common/logging/backend.cpp | |||
| @@ -37,6 +37,7 @@ namespace Log { | |||
| 37 | SUB(Service, FS) \ | 37 | SUB(Service, FS) \ |
| 38 | SUB(Service, ERR) \ | 38 | SUB(Service, ERR) \ |
| 39 | SUB(Service, APT) \ | 39 | SUB(Service, APT) \ |
| 40 | SUB(Service, BOSS) \ | ||
| 40 | SUB(Service, GSP) \ | 41 | SUB(Service, GSP) \ |
| 41 | SUB(Service, AC) \ | 42 | SUB(Service, AC) \ |
| 42 | SUB(Service, AM) \ | 43 | SUB(Service, AM) \ |
diff --git a/src/common/logging/log.h b/src/common/logging/log.h index a4b4750de..8d3a2d03e 100644 --- a/src/common/logging/log.h +++ b/src/common/logging/log.h | |||
| @@ -54,6 +54,7 @@ enum class Class : ClassType { | |||
| 54 | Service_FS, ///< The FS (Filesystem) service implementation | 54 | Service_FS, ///< The FS (Filesystem) service implementation |
| 55 | Service_ERR, ///< The ERR (Error) port implementation | 55 | Service_ERR, ///< The ERR (Error) port implementation |
| 56 | Service_APT, ///< The APT (Applets) service | 56 | Service_APT, ///< The APT (Applets) service |
| 57 | Service_BOSS, ///< The BOSS (SpotPass) service | ||
| 57 | Service_GSP, ///< The GSP (GPU control) service | 58 | Service_GSP, ///< The GSP (GPU control) service |
| 58 | Service_AC, ///< The AC (WiFi status) service | 59 | Service_AC, ///< The AC (WiFi status) service |
| 59 | Service_AM, ///< The AM (Application manager) service | 60 | Service_AM, ///< The AM (Application manager) service |
diff --git a/src/core/hle/service/boss/boss.cpp b/src/core/hle/service/boss/boss.cpp index 757a8c2c7..6ab16ccd5 100644 --- a/src/core/hle/service/boss/boss.cpp +++ b/src/core/hle/service/boss/boss.cpp | |||
| @@ -10,11 +10,978 @@ | |||
| 10 | namespace Service { | 10 | namespace Service { |
| 11 | namespace BOSS { | 11 | namespace BOSS { |
| 12 | 12 | ||
| 13 | static u32 new_arrival_flag; | ||
| 14 | static u32 ns_data_new_flag; | ||
| 15 | static u32 output_flag; | ||
| 16 | |||
| 17 | void InitializeSession(Service::Interface* self) { | ||
| 18 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 19 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 20 | u64 unk_param = ((u64)cmd_buff[1] | ((u64)cmd_buff[2] << 32)); | ||
| 21 | u32 translation = cmd_buff[3]; | ||
| 22 | u32 unk_param4 = cmd_buff[4]; | ||
| 23 | |||
| 24 | if (translation != IPC::CallingPidDesc()) { | ||
| 25 | cmd_buff[0] = IPC::MakeHeader(0, 0x1, 0); // 0x40 | ||
| 26 | cmd_buff[1] = ResultCode(ErrorDescription::OS_InvalidBufferDescriptor, ErrorModule::OS, | ||
| 27 | ErrorSummary::WrongArgument, ErrorLevel::Permanent) | ||
| 28 | .raw; | ||
| 29 | LOG_ERROR(Service_BOSS, "The translation was invalid, translation=0x%08X", translation); | ||
| 30 | return; | ||
| 31 | } | ||
| 32 | |||
| 33 | cmd_buff[0] = IPC::MakeHeader(0x1, 0x1, 0); | ||
| 34 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 35 | |||
| 36 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param=0x%016X, translation=0x%08X, unk_param4=0x%08X", | ||
| 37 | unk_param, translation, unk_param4); | ||
| 38 | } | ||
| 39 | |||
| 40 | void RegisterStorage(Service::Interface* self) { | ||
| 41 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 42 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 43 | u32 unk_param1 = cmd_buff[1]; | ||
| 44 | u32 unk_param2 = cmd_buff[2]; | ||
| 45 | u32 unk_param3 = cmd_buff[3]; | ||
| 46 | u32 unk_flag = cmd_buff[4] & 0xFF; | ||
| 47 | |||
| 48 | cmd_buff[0] = IPC::MakeHeader(0x2, 0x1, 0); | ||
| 49 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 50 | |||
| 51 | LOG_WARNING( | ||
| 52 | Service_BOSS, | ||
| 53 | "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, unk_flag=0x%08X", | ||
| 54 | unk_param1, unk_param2, unk_param3, unk_flag); | ||
| 55 | } | ||
| 56 | |||
| 57 | void UnregisterStorage(Service::Interface* self) { | ||
| 58 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 59 | |||
| 60 | cmd_buff[0] = IPC::MakeHeader(0x3, 0x1, 0); | ||
| 61 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 62 | |||
| 63 | LOG_WARNING(Service_BOSS, "(STUBBED) called"); | ||
| 64 | } | ||
| 65 | |||
| 66 | void GetStorageInfo(Service::Interface* self) { | ||
| 67 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 68 | |||
| 69 | cmd_buff[0] = IPC::MakeHeader(0x4, 0x2, 0); | ||
| 70 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 71 | cmd_buff[2] = 0; // stub 0 | ||
| 72 | |||
| 73 | LOG_WARNING(Service_BOSS, "(STUBBED) called"); | ||
| 74 | } | ||
| 75 | |||
| 76 | void RegisterPrivateRootCa(Service::Interface* self) { | ||
| 77 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 78 | |||
| 79 | u32 translation = cmd_buff[2]; | ||
| 80 | u32 buff_addr = cmd_buff[3]; | ||
| 81 | u32 buff_size = (translation >> 4); | ||
| 82 | |||
| 83 | cmd_buff[0] = IPC::MakeHeader(0x5, 0x1, 0x2); | ||
| 84 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 85 | cmd_buff[2] = (buff_size << 4 | 0xA); | ||
| 86 | cmd_buff[3] = buff_addr; | ||
| 87 | |||
| 88 | LOG_WARNING(Service_BOSS, "(STUBBED) translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X", | ||
| 89 | translation, buff_addr, buff_size); | ||
| 90 | } | ||
| 91 | |||
| 92 | void RegisterPrivateClientCert(Service::Interface* self) { | ||
| 93 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 94 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 95 | u32 unk_param1 = cmd_buff[1]; | ||
| 96 | u32 unk_param2 = cmd_buff[2]; | ||
| 97 | u32 translation1 = cmd_buff[3]; | ||
| 98 | u32 buff1_addr = cmd_buff[4]; | ||
| 99 | u32 buff1_size = (translation1 >> 4); | ||
| 100 | u32 translation2 = cmd_buff[5]; | ||
| 101 | u32 buff2_addr = cmd_buff[6]; | ||
| 102 | u32 buff2_size = (translation2 >> 4); | ||
| 103 | |||
| 104 | cmd_buff[0] = IPC::MakeHeader(0x6, 0x1, 0x4); | ||
| 105 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 106 | cmd_buff[2] = (buff1_size << 4 | 0xA); | ||
| 107 | cmd_buff[3] = buff1_addr; | ||
| 108 | cmd_buff[2] = (buff2_size << 4 | 0xA); | ||
| 109 | cmd_buff[3] = buff2_addr; | ||
| 110 | |||
| 111 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, " | ||
| 112 | "translation1=0x%08X, buff1_addr=0x%08X, buff1_size=0x%08X, " | ||
| 113 | "translation2=0x%08X, buff2_addr=0x%08X, buff2_size=0x%08X", | ||
| 114 | unk_param1, unk_param2, translation1, buff1_addr, buff1_size, translation2, | ||
| 115 | buff2_addr, buff2_size); | ||
| 116 | } | ||
| 117 | |||
| 118 | void GetNewArrivalFlag(Service::Interface* self) { | ||
| 119 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 120 | |||
| 121 | cmd_buff[0] = IPC::MakeHeader(0x7, 0x2, 0); | ||
| 122 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 123 | cmd_buff[2] = new_arrival_flag; | ||
| 124 | |||
| 125 | LOG_WARNING(Service_BOSS, "(STUBBED) new_arrival_flag=%u", new_arrival_flag); | ||
| 126 | } | ||
| 127 | |||
| 128 | void RegisterNewArrivalEvent(Service::Interface* self) { | ||
| 129 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 130 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 131 | u32 unk_param1 = cmd_buff[1]; | ||
| 132 | u32 unk_param2 = cmd_buff[2]; | ||
| 133 | |||
| 134 | cmd_buff[0] = IPC::MakeHeader(0x8, 0x1, 0); | ||
| 135 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 136 | |||
| 137 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X", unk_param1, | ||
| 138 | unk_param2); | ||
| 139 | } | ||
| 140 | |||
| 141 | void SetOptoutFlag(Service::Interface* self) { | ||
| 142 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 143 | |||
| 144 | output_flag = cmd_buff[1] & 0xFF; | ||
| 145 | |||
| 146 | cmd_buff[0] = IPC::MakeHeader(0x9, 0x1, 0); | ||
| 147 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 148 | |||
| 149 | LOG_WARNING(Service_BOSS, "output_flag=%u", output_flag); | ||
| 150 | } | ||
| 151 | |||
| 152 | void GetOptoutFlag(Service::Interface* self) { | ||
| 153 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 154 | |||
| 155 | cmd_buff[0] = IPC::MakeHeader(0xA, 0x2, 0); | ||
| 156 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 157 | cmd_buff[2] = output_flag; | ||
| 158 | |||
| 159 | LOG_WARNING(Service_BOSS, "output_flag=%u", output_flag); | ||
| 160 | } | ||
| 161 | |||
| 162 | void RegisterTask(Service::Interface* self) { | ||
| 163 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 164 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 165 | u32 unk_param1 = cmd_buff[1]; | ||
| 166 | u32 unk_param2 = cmd_buff[2] & 0xFF; | ||
| 167 | u32 unk_param3 = cmd_buff[3] & 0xFF; | ||
| 168 | u32 translation = cmd_buff[4]; | ||
| 169 | u32 buff_addr = cmd_buff[5]; | ||
| 170 | u32 buff_size = (translation >> 4); | ||
| 171 | |||
| 172 | cmd_buff[0] = IPC::MakeHeader(0xB, 0x1, 0x2); | ||
| 173 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 174 | cmd_buff[2] = (buff_size << 4 | 0xA); | ||
| 175 | cmd_buff[3] = buff_addr; | ||
| 176 | |||
| 177 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, " | ||
| 178 | "translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X", | ||
| 179 | unk_param1, unk_param2, unk_param3, translation, buff_addr, buff_size); | ||
| 180 | } | ||
| 181 | |||
| 182 | void UnregisterTask(Service::Interface* self) { | ||
| 183 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 184 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 185 | u32 unk_param1 = cmd_buff[1]; | ||
| 186 | u32 unk_param2 = cmd_buff[2] & 0xFF; | ||
| 187 | u32 translation = cmd_buff[3]; | ||
| 188 | u32 buff_addr = cmd_buff[4]; | ||
| 189 | u32 buff_size = (translation >> 4); | ||
| 190 | |||
| 191 | cmd_buff[0] = IPC::MakeHeader(0xC, 0x1, 0x2); | ||
| 192 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 193 | cmd_buff[2] = (buff_size << 4 | 0xA); | ||
| 194 | cmd_buff[3] = buff_addr; | ||
| 195 | |||
| 196 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, " | ||
| 197 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 198 | unk_param1, unk_param2, translation, buff_addr, buff_size); | ||
| 199 | } | ||
| 200 | |||
| 201 | void ReconfigureTask(Service::Interface* self) { | ||
| 202 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 203 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 204 | u32 unk_param1 = cmd_buff[1]; | ||
| 205 | u32 unk_param2 = cmd_buff[2] & 0xFF; | ||
| 206 | u32 translation = cmd_buff[3]; | ||
| 207 | u32 buff_addr = cmd_buff[4]; | ||
| 208 | u32 buff_size = (translation >> 4); | ||
| 209 | |||
| 210 | cmd_buff[0] = IPC::MakeHeader(0xD, 0x1, 0x2); | ||
| 211 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 212 | cmd_buff[2] = (buff_size << 4 | 0xA); | ||
| 213 | cmd_buff[3] = buff_addr; | ||
| 214 | |||
| 215 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, " | ||
| 216 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 217 | unk_param1, unk_param2, translation, buff_addr, buff_size); | ||
| 218 | } | ||
| 219 | |||
| 220 | void GetTaskIdList(Service::Interface* self) { | ||
| 221 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 222 | |||
| 223 | cmd_buff[0] = IPC::MakeHeader(0xE, 0x1, 0); | ||
| 224 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 225 | |||
| 226 | LOG_WARNING(Service_BOSS, "(STUBBED) called"); | ||
| 227 | } | ||
| 228 | |||
| 229 | void GetStepIdList(Service::Interface* self) { | ||
| 230 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 231 | |||
| 232 | u32 translation = cmd_buff[2]; | ||
| 233 | u32 buff_addr = cmd_buff[3]; | ||
| 234 | u32 buff_size = (translation >> 4); | ||
| 235 | |||
| 236 | cmd_buff[0] = IPC::MakeHeader(0xF, 0x1, 0x2); | ||
| 237 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 238 | cmd_buff[2] = (buff_size << 4 | 0xA); | ||
| 239 | cmd_buff[3] = buff_addr; | ||
| 240 | |||
| 241 | LOG_WARNING(Service_BOSS, "(STUBBED) translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X", | ||
| 242 | translation, buff_addr, buff_size); | ||
| 243 | } | ||
| 244 | |||
| 245 | void GetNsDataIdList(Service::Interface* self) { | ||
| 246 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 247 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 248 | u32 unk_param1 = cmd_buff[1]; | ||
| 249 | u32 unk_param2 = cmd_buff[2]; | ||
| 250 | u32 unk_param3 = cmd_buff[3]; | ||
| 251 | u32 unk_param4 = cmd_buff[4]; | ||
| 252 | u32 translation = cmd_buff[5]; | ||
| 253 | u32 buff_addr = cmd_buff[6]; | ||
| 254 | u32 buff_size = (translation >> 4); | ||
| 255 | |||
| 256 | cmd_buff[0] = IPC::MakeHeader(0x10, 0x3, 0x2); | ||
| 257 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 258 | cmd_buff[2] = 0; // stub 0 (16 bit value) | ||
| 259 | cmd_buff[3] = 0; // stub 0 (16 bit value) | ||
| 260 | cmd_buff[4] = (buff_size << 4 | 0xC); | ||
| 261 | cmd_buff[5] = buff_addr; | ||
| 262 | |||
| 263 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, " | ||
| 264 | "unk_param4=0x%08X, translation=0x%08X, " | ||
| 265 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 266 | unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size); | ||
| 267 | } | ||
| 268 | |||
| 269 | void GetOwnNsDataIdList(Service::Interface* self) { | ||
| 270 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 271 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 272 | u32 unk_param1 = cmd_buff[1]; | ||
| 273 | u32 unk_param2 = cmd_buff[2]; | ||
| 274 | u32 unk_param3 = cmd_buff[3]; | ||
| 275 | u32 unk_param4 = cmd_buff[4]; | ||
| 276 | u32 translation = cmd_buff[5]; | ||
| 277 | u32 buff_addr = cmd_buff[6]; | ||
| 278 | u32 buff_size = (translation >> 4); | ||
| 279 | |||
| 280 | cmd_buff[0] = IPC::MakeHeader(0x11, 0x3, 0x2); | ||
| 281 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 282 | cmd_buff[2] = 0; // stub 0 (16 bit value) | ||
| 283 | cmd_buff[3] = 0; // stub 0 (16 bit value) | ||
| 284 | cmd_buff[4] = (buff_size << 4 | 0xC); | ||
| 285 | cmd_buff[5] = buff_addr; | ||
| 286 | |||
| 287 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, " | ||
| 288 | "unk_param4=0x%08X, translation=0x%08X, " | ||
| 289 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 290 | unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size); | ||
| 291 | } | ||
| 292 | |||
| 293 | void GetNewDataNsDataIdList(Service::Interface* self) { | ||
| 294 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 295 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 296 | u32 unk_param1 = cmd_buff[1]; | ||
| 297 | u32 unk_param2 = cmd_buff[2]; | ||
| 298 | u32 unk_param3 = cmd_buff[3]; | ||
| 299 | u32 unk_param4 = cmd_buff[4]; | ||
| 300 | u32 translation = cmd_buff[5]; | ||
| 301 | u32 buff_addr = cmd_buff[6]; | ||
| 302 | u32 buff_size = (translation >> 4); | ||
| 303 | |||
| 304 | cmd_buff[0] = IPC::MakeHeader(0x12, 0x3, 0x2); | ||
| 305 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 306 | cmd_buff[2] = 0; // stub 0 (16 bit value) | ||
| 307 | cmd_buff[3] = 0; // stub 0 (16 bit value) | ||
| 308 | cmd_buff[4] = (buff_size << 4 | 0xC); | ||
| 309 | cmd_buff[5] = buff_addr; | ||
| 310 | |||
| 311 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, " | ||
| 312 | "unk_param4=0x%08X, translation=0x%08X, " | ||
| 313 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 314 | unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size); | ||
| 315 | } | ||
| 316 | |||
| 317 | void GetOwnNewDataNsDataIdList(Service::Interface* self) { | ||
| 318 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 319 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 320 | u32 unk_param1 = cmd_buff[1]; | ||
| 321 | u32 unk_param2 = cmd_buff[2]; | ||
| 322 | u32 unk_param3 = cmd_buff[3]; | ||
| 323 | u32 unk_param4 = cmd_buff[4]; | ||
| 324 | u32 translation = cmd_buff[5]; | ||
| 325 | u32 buff_addr = cmd_buff[6]; | ||
| 326 | u32 buff_size = (translation >> 4); | ||
| 327 | |||
| 328 | cmd_buff[0] = IPC::MakeHeader(0x13, 0x3, 0x2); | ||
| 329 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 330 | cmd_buff[2] = 0; // stub 0 (16 bit value) | ||
| 331 | cmd_buff[3] = 0; // stub 0 (16 bit value) | ||
| 332 | cmd_buff[4] = (buff_size << 4 | 0xC); | ||
| 333 | cmd_buff[5] = buff_addr; | ||
| 334 | |||
| 335 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, " | ||
| 336 | "unk_param4=0x%08X, translation=0x%08X, " | ||
| 337 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 338 | unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size); | ||
| 339 | } | ||
| 340 | |||
| 341 | void SendProperty(Service::Interface* self) { | ||
| 342 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 343 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 344 | u32 unk_param1 = cmd_buff[1]; | ||
| 345 | u32 unk_param2 = cmd_buff[2]; | ||
| 346 | u32 translation = cmd_buff[3]; | ||
| 347 | u32 buff_addr = cmd_buff[4]; | ||
| 348 | u32 buff_size = (translation >> 4); | ||
| 349 | |||
| 350 | cmd_buff[0] = IPC::MakeHeader(0x14, 0x1, 0x2); | ||
| 351 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 352 | cmd_buff[2] = (buff_size << 4 | 0xA); | ||
| 353 | cmd_buff[3] = buff_addr; | ||
| 354 | |||
| 355 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, " | ||
| 356 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 357 | unk_param1, unk_param2, translation, buff_addr, buff_size); | ||
| 358 | } | ||
| 359 | |||
| 360 | void SendPropertyHandle(Service::Interface* self) { | ||
| 361 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 362 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 363 | u32 unk_param1 = cmd_buff[2] & 0xFF; | ||
| 364 | u32 translation = cmd_buff[3]; | ||
| 365 | u32 buff_addr = cmd_buff[4]; | ||
| 366 | u32 buff_size = (translation >> 4); | ||
| 367 | |||
| 368 | cmd_buff[0] = IPC::MakeHeader(0x15, 0x1, 0x2); | ||
| 369 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 370 | cmd_buff[2] = (buff_size << 4 | 0xA); | ||
| 371 | cmd_buff[3] = buff_addr; | ||
| 372 | |||
| 373 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, " | ||
| 374 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 375 | unk_param1, translation, buff_addr, buff_size); | ||
| 376 | } | ||
| 377 | |||
| 378 | void ReceiveProperty(Service::Interface* self) { | ||
| 379 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 380 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 381 | u32 unk_param1 = cmd_buff[1]; | ||
| 382 | u32 buff_size = cmd_buff[2]; | ||
| 383 | u32 translation = cmd_buff[3]; | ||
| 384 | u32 buff_addr = cmd_buff[4]; | ||
| 385 | |||
| 386 | cmd_buff[0] = IPC::MakeHeader(0x16, 0x2, 0x2); | ||
| 387 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 388 | cmd_buff[2] = 0; // stub 0 (32 bit value) | ||
| 389 | cmd_buff[2] = (buff_size << 4 | 0xC); | ||
| 390 | cmd_buff[3] = buff_addr; | ||
| 391 | |||
| 392 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, buff_size=0x%08X, " | ||
| 393 | "translation=0x%08X, buff_addr=0x%08X", | ||
| 394 | unk_param1, buff_size, translation, buff_addr); | ||
| 395 | } | ||
| 396 | |||
| 397 | void UpdateTaskInterval(Service::Interface* self) { | ||
| 398 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 399 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 400 | u32 unk_param1 = cmd_buff[1]; | ||
| 401 | u32 unk_param2 = cmd_buff[2] & 0xFF; | ||
| 402 | u32 translation = cmd_buff[3]; | ||
| 403 | u32 buff_addr = cmd_buff[4]; | ||
| 404 | u32 buff_size = (translation >> 4); | ||
| 405 | |||
| 406 | cmd_buff[0] = IPC::MakeHeader(0x17, 0x1, 0x2); | ||
| 407 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 408 | cmd_buff[2] = (buff_size << 4 | 0xA); | ||
| 409 | cmd_buff[3] = buff_addr; | ||
| 410 | |||
| 411 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, " | ||
| 412 | "translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X", | ||
| 413 | unk_param1, unk_param2, translation, buff_addr, buff_size); | ||
| 414 | } | ||
| 415 | |||
| 416 | void UpdateTaskCount(Service::Interface* self) { | ||
| 417 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 418 | |||
| 419 | u32 buff_size = cmd_buff[1]; | ||
| 420 | u32 unk_param2 = cmd_buff[2]; // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 421 | u32 translation = cmd_buff[3]; | ||
| 422 | u32 buff_addr = cmd_buff[4]; | ||
| 423 | |||
| 424 | cmd_buff[0] = IPC::MakeHeader(0x18, 0x1, 0x2); | ||
| 425 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 426 | cmd_buff[2] = (buff_size << 4 | 0xA); | ||
| 427 | cmd_buff[3] = buff_addr; | ||
| 428 | |||
| 429 | LOG_WARNING(Service_BOSS, "(STUBBED) buff_size=0x%08X, unk_param2=0x%08X, " | ||
| 430 | "translation=0x%08X, buff_addr=0x%08X", | ||
| 431 | buff_size, unk_param2, translation, buff_addr); | ||
| 432 | } | ||
| 433 | |||
| 434 | void GetTaskInterval(Service::Interface* self) { | ||
| 435 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 436 | |||
| 437 | u32 unk_param1 = cmd_buff[1]; // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 438 | u32 translation = cmd_buff[2]; | ||
| 439 | u32 buff_addr = cmd_buff[3]; | ||
| 440 | u32 buff_size = (translation >> 4); | ||
| 441 | |||
| 442 | cmd_buff[0] = IPC::MakeHeader(0x19, 0x2, 0x2); | ||
| 443 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 444 | cmd_buff[2] = 0; // stub 0 ( 32bit value) | ||
| 445 | cmd_buff[3] = (buff_size << 4 | 0xA); | ||
| 446 | cmd_buff[4] = buff_addr; | ||
| 447 | |||
| 448 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, " | ||
| 449 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 450 | unk_param1, translation, buff_addr, buff_size); | ||
| 451 | } | ||
| 452 | |||
| 453 | void GetTaskCount(Service::Interface* self) { | ||
| 454 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 455 | |||
| 456 | u32 unk_param1 = cmd_buff[1]; // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 457 | u32 translation = cmd_buff[2]; | ||
| 458 | u32 buff_addr = cmd_buff[3]; | ||
| 459 | u32 buff_size = (translation >> 4); | ||
| 460 | |||
| 461 | cmd_buff[0] = IPC::MakeHeader(0x1A, 0x2, 0x2); | ||
| 462 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 463 | cmd_buff[2] = 0; // stub 0 ( 32bit value) | ||
| 464 | cmd_buff[3] = (buff_size << 4 | 0xA); | ||
| 465 | cmd_buff[4] = buff_addr; | ||
| 466 | |||
| 467 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, " | ||
| 468 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 469 | unk_param1, translation, buff_addr, buff_size); | ||
| 470 | } | ||
| 471 | |||
| 472 | void GetTaskServiceStatus(Service::Interface* self) { | ||
| 473 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 474 | |||
| 475 | u32 unk_param1 = cmd_buff[1]; // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 476 | u32 translation = cmd_buff[2]; | ||
| 477 | u32 buff_addr = cmd_buff[3]; | ||
| 478 | u32 buff_size = (translation >> 4); | ||
| 479 | |||
| 480 | cmd_buff[0] = IPC::MakeHeader(0x1B, 0x2, 0x2); | ||
| 481 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 482 | cmd_buff[2] = 0; // stub 0 ( 8bit value) | ||
| 483 | cmd_buff[3] = (buff_size << 4 | 0xA); | ||
| 484 | cmd_buff[4] = buff_addr; | ||
| 485 | |||
| 486 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, " | ||
| 487 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 488 | unk_param1, translation, buff_addr, buff_size); | ||
| 489 | } | ||
| 490 | |||
| 491 | void StartTask(Service::Interface* self) { | ||
| 492 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 493 | |||
| 494 | u32 unk_param1 = cmd_buff[1]; // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 495 | u32 translation = cmd_buff[2]; | ||
| 496 | u32 buff_addr = cmd_buff[3]; | ||
| 497 | u32 buff_size = (translation >> 4); | ||
| 498 | |||
| 499 | cmd_buff[0] = IPC::MakeHeader(0x1C, 0x1, 0x2); | ||
| 500 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 501 | cmd_buff[2] = (buff_size << 4 | 0xA); | ||
| 502 | cmd_buff[3] = buff_addr; | ||
| 503 | |||
| 504 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, " | ||
| 505 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 506 | unk_param1, translation, buff_addr, buff_size); | ||
| 507 | } | ||
| 508 | |||
| 509 | void StartTaskImmediate(Service::Interface* self) { | ||
| 510 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 511 | |||
| 512 | u32 unk_param1 = cmd_buff[1]; // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 513 | u32 translation = cmd_buff[2]; | ||
| 514 | u32 buff_addr = cmd_buff[3]; | ||
| 515 | u32 buff_size = (translation >> 4); | ||
| 516 | |||
| 517 | cmd_buff[0] = IPC::MakeHeader(0x1D, 0x1, 0x2); | ||
| 518 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 519 | cmd_buff[2] = (buff_size << 4 | 0xA); | ||
| 520 | cmd_buff[3] = buff_addr; | ||
| 521 | |||
| 522 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, " | ||
| 523 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 524 | unk_param1, translation, buff_addr, buff_size); | ||
| 525 | } | ||
| 526 | |||
| 527 | void CancelTask(Service::Interface* self) { | ||
| 528 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 529 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 530 | u32 unk_param1 = cmd_buff[1]; | ||
| 531 | u32 translation = cmd_buff[2]; | ||
| 532 | u32 buff_addr = cmd_buff[3]; | ||
| 533 | u32 buff_size = (translation >> 4); | ||
| 534 | |||
| 535 | cmd_buff[0] = IPC::MakeHeader(0x1E, 0x1, 0x2); | ||
| 536 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 537 | cmd_buff[2] = (buff_size << 4 | 0xA); | ||
| 538 | cmd_buff[3] = buff_addr; | ||
| 539 | |||
| 540 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, " | ||
| 541 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 542 | unk_param1, translation, buff_addr, buff_size); | ||
| 543 | } | ||
| 544 | |||
| 545 | void GetTaskFinishHandle(Service::Interface* self) { | ||
| 546 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 547 | |||
| 548 | cmd_buff[0] = IPC::MakeHeader(0x1F, 0x1, 0x2); | ||
| 549 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 550 | cmd_buff[2] = 0; | ||
| 551 | cmd_buff[3] = 0; // stub 0(This should be a handle of task_finish ?) | ||
| 552 | |||
| 553 | LOG_WARNING(Service_BOSS, "(STUBBED) called"); | ||
| 554 | } | ||
| 555 | |||
| 556 | void GetTaskState(Service::Interface* self) { | ||
| 557 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 558 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 559 | u32 buff_size = cmd_buff[1]; | ||
| 560 | u32 unk_param2 = cmd_buff[2] & 0xFF; | ||
| 561 | u32 translation = cmd_buff[3]; | ||
| 562 | u32 buff_addr = cmd_buff[4]; | ||
| 563 | |||
| 564 | cmd_buff[0] = IPC::MakeHeader(0x20, 0x4, 0x2); | ||
| 565 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 566 | cmd_buff[2] = 0; // stub 0 (8 bit value) | ||
| 567 | cmd_buff[3] = 0; // stub 0 (32 bit value) | ||
| 568 | cmd_buff[4] = 0; // stub 0 (8 bit value) | ||
| 569 | cmd_buff[5] = (buff_size << 4 | 0xA); | ||
| 570 | cmd_buff[6] = buff_addr; | ||
| 571 | |||
| 572 | LOG_WARNING(Service_BOSS, "(STUBBED) buff_size=0x%08X, unk_param2=0x%08X, " | ||
| 573 | "translation=0x%08X, buff_addr=0x%08X", | ||
| 574 | buff_size, unk_param2, translation, buff_addr); | ||
| 575 | } | ||
| 576 | |||
| 577 | void GetTaskResult(Service::Interface* self) { | ||
| 578 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 579 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 580 | u32 unk_param1 = cmd_buff[1]; | ||
| 581 | u32 translation = cmd_buff[2]; | ||
| 582 | u32 buff_addr = cmd_buff[3]; | ||
| 583 | u32 buff_size = (translation >> 4); | ||
| 584 | |||
| 585 | cmd_buff[0] = IPC::MakeHeader(0x21, 0x4, 0x2); | ||
| 586 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 587 | cmd_buff[2] = 0; // stub 0 (8 bit value) | ||
| 588 | cmd_buff[3] = 0; // stub 0 (32 bit value) | ||
| 589 | cmd_buff[4] = 0; // stub 0 (8 bit value) | ||
| 590 | cmd_buff[5] = (buff_size << 4 | 0xA); | ||
| 591 | cmd_buff[6] = buff_addr; | ||
| 592 | |||
| 593 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, " | ||
| 594 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 595 | unk_param1, translation, buff_addr, buff_size); | ||
| 596 | } | ||
| 597 | |||
| 598 | void GetTaskCommErrorCode(Service::Interface* self) { | ||
| 599 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 600 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 601 | u32 unk_param1 = cmd_buff[1]; | ||
| 602 | u32 translation = cmd_buff[2]; | ||
| 603 | u32 buff_addr = cmd_buff[3]; | ||
| 604 | u32 buff_size = (translation >> 4); | ||
| 605 | |||
| 606 | cmd_buff[0] = IPC::MakeHeader(0x22, 0x4, 0x2); | ||
| 607 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 608 | cmd_buff[2] = 0; // stub 0 (32 bit value) | ||
| 609 | cmd_buff[3] = 0; // stub 0 (32 bit value) | ||
| 610 | cmd_buff[4] = 0; // stub 0 (8 bit value) | ||
| 611 | cmd_buff[5] = (buff_size << 4 | 0xA); | ||
| 612 | cmd_buff[6] = buff_addr; | ||
| 613 | |||
| 614 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, translation=0x%08X, " | ||
| 615 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 616 | unk_param1, translation, buff_addr, buff_size); | ||
| 617 | } | ||
| 618 | |||
| 619 | void GetTaskStatus(Service::Interface* self) { | ||
| 620 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 621 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 622 | u32 unk_param1 = cmd_buff[1]; | ||
| 623 | u32 unk_param2 = cmd_buff[2] & 0xFF; | ||
| 624 | u32 unk_param3 = cmd_buff[3] & 0xFF; | ||
| 625 | u32 translation = cmd_buff[4]; | ||
| 626 | u32 buff_addr = cmd_buff[5]; | ||
| 627 | u32 buff_size = (translation >> 4); | ||
| 628 | |||
| 629 | cmd_buff[0] = IPC::MakeHeader(0x23, 0x2, 0x2); | ||
| 630 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 631 | cmd_buff[2] = 0; // stub 0 (8 bit value) | ||
| 632 | cmd_buff[3] = (buff_size << 4 | 0xA); | ||
| 633 | cmd_buff[4] = buff_addr; | ||
| 634 | |||
| 635 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, " | ||
| 636 | "translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X", | ||
| 637 | unk_param1, unk_param2, unk_param3, translation, buff_addr, buff_size); | ||
| 638 | } | ||
| 639 | |||
| 640 | void GetTaskError(Service::Interface* self) { | ||
| 641 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 642 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 643 | u32 unk_param1 = cmd_buff[1]; | ||
| 644 | u32 unk_param2 = cmd_buff[2] & 0xFF; | ||
| 645 | u32 translation = cmd_buff[4]; | ||
| 646 | u32 buff_addr = cmd_buff[5]; | ||
| 647 | u32 buff_size = (translation >> 4); | ||
| 648 | |||
| 649 | cmd_buff[0] = IPC::MakeHeader(0x24, 0x2, 0x2); | ||
| 650 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 651 | cmd_buff[2] = 0; // stub 0 (8 bit value) | ||
| 652 | cmd_buff[3] = (buff_size << 4 | 0xA); | ||
| 653 | cmd_buff[4] = buff_addr; | ||
| 654 | |||
| 655 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, " | ||
| 656 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 657 | unk_param1, unk_param2, translation, buff_addr, buff_size); | ||
| 658 | } | ||
| 659 | |||
| 660 | void GetTaskInfo(Service::Interface* self) { | ||
| 661 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 662 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 663 | u32 unk_param1 = cmd_buff[1]; | ||
| 664 | u32 unk_param2 = cmd_buff[2] & 0xFF; | ||
| 665 | u32 translation = cmd_buff[4]; | ||
| 666 | u32 buff_addr = cmd_buff[5]; | ||
| 667 | u32 buff_size = (translation >> 4); | ||
| 668 | |||
| 669 | cmd_buff[0] = IPC::MakeHeader(0x25, 0x1, 0x2); | ||
| 670 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 671 | cmd_buff[2] = (buff_size << 4 | 0xA); | ||
| 672 | cmd_buff[3] = buff_addr; | ||
| 673 | |||
| 674 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, translation=0x%08X, " | ||
| 675 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 676 | unk_param1, unk_param2, translation, buff_addr, buff_size); | ||
| 677 | } | ||
| 678 | |||
| 679 | void DeleteNsData(Service::Interface* self) { | ||
| 680 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 681 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 682 | u32 unk_param1 = cmd_buff[1]; | ||
| 683 | |||
| 684 | cmd_buff[0] = IPC::MakeHeader(0x26, 0x1, 0); | ||
| 685 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 686 | |||
| 687 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X", unk_param1); | ||
| 688 | } | ||
| 689 | |||
| 690 | void GetNsDataHeaderInfo(Service::Interface* self) { | ||
| 691 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 692 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 693 | u32 unk_param1 = cmd_buff[1]; | ||
| 694 | u32 unk_param2 = cmd_buff[2] & 0xFF; | ||
| 695 | u32 unk_param3 = cmd_buff[3]; | ||
| 696 | u32 translation = cmd_buff[4]; | ||
| 697 | u32 buff_addr = cmd_buff[5]; | ||
| 698 | u32 buff_size = (translation >> 4); | ||
| 699 | |||
| 700 | cmd_buff[0] = IPC::MakeHeader(0x27, 0x1, 0x2); | ||
| 701 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 702 | cmd_buff[2] = (buff_size << 4 | 0xC); | ||
| 703 | cmd_buff[3] = buff_addr; | ||
| 704 | |||
| 705 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, " | ||
| 706 | "translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X", | ||
| 707 | unk_param1, unk_param2, unk_param3, translation, buff_addr, buff_size); | ||
| 708 | } | ||
| 709 | |||
| 710 | void ReadNsData(Service::Interface* self) { | ||
| 711 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 712 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 713 | u32 unk_param1 = cmd_buff[1]; | ||
| 714 | u32 unk_param2 = cmd_buff[2]; | ||
| 715 | u32 unk_param3 = cmd_buff[3]; | ||
| 716 | u32 unk_param4 = cmd_buff[4]; | ||
| 717 | u32 translation = cmd_buff[5]; | ||
| 718 | u32 buff_addr = cmd_buff[6]; | ||
| 719 | u32 buff_size = (translation >> 4); | ||
| 720 | |||
| 721 | cmd_buff[0] = IPC::MakeHeader(0x28, 0x3, 0x2); | ||
| 722 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 723 | cmd_buff[2] = 0; // stub 0 (32bit value) | ||
| 724 | cmd_buff[3] = 0; // stub 0 (32bit value) | ||
| 725 | cmd_buff[4] = (buff_size << 4 | 0xC); | ||
| 726 | cmd_buff[5] = buff_addr; | ||
| 727 | |||
| 728 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, " | ||
| 729 | "unk_param4=0x%08X, translation=0x%08X, " | ||
| 730 | "buff_addr=0x%08X, buff_size=0x%08X", | ||
| 731 | unk_param1, unk_param2, unk_param3, unk_param4, translation, buff_addr, buff_size); | ||
| 732 | } | ||
| 733 | |||
| 734 | void SetNsDataAdditionalInfo(Service::Interface* self) { | ||
| 735 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 736 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 737 | u32 unk_param1 = cmd_buff[1]; | ||
| 738 | u32 unk_param2 = cmd_buff[2]; | ||
| 739 | |||
| 740 | cmd_buff[0] = IPC::MakeHeader(0x29, 0x1, 0); | ||
| 741 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 742 | |||
| 743 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X", unk_param1, | ||
| 744 | unk_param2); | ||
| 745 | } | ||
| 746 | |||
| 747 | void GetNsDataAdditionalInfo(Service::Interface* self) { | ||
| 748 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 749 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 750 | u32 unk_param1 = cmd_buff[1]; | ||
| 751 | |||
| 752 | cmd_buff[0] = IPC::MakeHeader(0x2A, 0x2, 0); | ||
| 753 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 754 | cmd_buff[2] = 0; // stub 0 (32bit value) | ||
| 755 | |||
| 756 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X", unk_param1); | ||
| 757 | } | ||
| 758 | |||
| 759 | void SetNsDataNewFlag(Service::Interface* self) { | ||
| 760 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 761 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 762 | u32 unk_param1 = cmd_buff[1]; | ||
| 763 | ns_data_new_flag = cmd_buff[2] & 0xFF; | ||
| 764 | |||
| 765 | cmd_buff[0] = IPC::MakeHeader(0x2B, 0x1, 0); | ||
| 766 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 767 | |||
| 768 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, ns_data_new_flag=0x%08X", unk_param1, | ||
| 769 | ns_data_new_flag); | ||
| 770 | } | ||
| 771 | |||
| 772 | void GetNsDataNewFlag(Service::Interface* self) { | ||
| 773 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 774 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 775 | u32 unk_param1 = cmd_buff[1]; | ||
| 776 | |||
| 777 | cmd_buff[0] = IPC::MakeHeader(0x2C, 0x2, 0); | ||
| 778 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 779 | cmd_buff[2] = ns_data_new_flag; | ||
| 780 | |||
| 781 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, ns_data_new_flag=0x%08X", unk_param1, | ||
| 782 | ns_data_new_flag); | ||
| 783 | } | ||
| 784 | |||
| 785 | void GetNsDataLastUpdate(Service::Interface* self) { | ||
| 786 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 787 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 788 | u32 unk_param1 = cmd_buff[1]; | ||
| 789 | |||
| 790 | cmd_buff[0] = IPC::MakeHeader(0x2D, 0x3, 0); | ||
| 791 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 792 | cmd_buff[2] = 0; // stub 0 (32bit value) | ||
| 793 | cmd_buff[3] = 0; // stub 0 (32bit value) | ||
| 794 | |||
| 795 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X", unk_param1); | ||
| 796 | } | ||
| 797 | |||
| 798 | void GetErrorCode(Service::Interface* self) { | ||
| 799 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 800 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 801 | u32 unk_param1 = cmd_buff[1]; | ||
| 802 | |||
| 803 | cmd_buff[0] = IPC::MakeHeader(0x2E, 0x2, 0); | ||
| 804 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 805 | cmd_buff[2] = 0; // stub 0 (32bit value) | ||
| 806 | |||
| 807 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X", unk_param1); | ||
| 808 | } | ||
| 809 | |||
| 810 | void RegisterStorageEntry(Service::Interface* self) { | ||
| 811 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 812 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 813 | u32 unk_param1 = cmd_buff[1]; | ||
| 814 | u32 unk_param2 = cmd_buff[2]; | ||
| 815 | u32 unk_param3 = cmd_buff[3]; | ||
| 816 | u32 unk_param4 = cmd_buff[4]; | ||
| 817 | u32 unk_param5 = cmd_buff[5] & 0xFF; | ||
| 818 | |||
| 819 | cmd_buff[0] = IPC::MakeHeader(0x2F, 0x1, 0); | ||
| 820 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 821 | |||
| 822 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, " | ||
| 823 | "unk_param4=0x%08X, unk_param5=0x%08X", | ||
| 824 | unk_param1, unk_param2, unk_param3, unk_param4, unk_param5); | ||
| 825 | } | ||
| 826 | |||
| 827 | void GetStorageEntryInfo(Service::Interface* self) { | ||
| 828 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 829 | |||
| 830 | cmd_buff[0] = IPC::MakeHeader(0x30, 0x3, 0); | ||
| 831 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 832 | cmd_buff[2] = 0; // stub 0 (32bit value) | ||
| 833 | cmd_buff[3] = 0; // stub 0 (16bit value) | ||
| 834 | |||
| 835 | LOG_WARNING(Service_BOSS, "(STUBBED) called"); | ||
| 836 | } | ||
| 837 | |||
| 838 | void SetStorageOption(Service::Interface* self) { | ||
| 839 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 840 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 841 | u32 unk_param1 = cmd_buff[1] & 0xFF; | ||
| 842 | u32 unk_param2 = cmd_buff[2]; | ||
| 843 | u32 unk_param3 = cmd_buff[3]; | ||
| 844 | u32 unk_param4 = cmd_buff[4]; | ||
| 845 | |||
| 846 | cmd_buff[0] = IPC::MakeHeader(0x31, 0x1, 0); | ||
| 847 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 848 | |||
| 849 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, " | ||
| 850 | "unk_param3=0x%08X, unk_param4=0x%08X", | ||
| 851 | unk_param1, unk_param2, unk_param3, unk_param4); | ||
| 852 | } | ||
| 853 | |||
| 854 | void GetStorageOption(Service::Interface* self) { | ||
| 855 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 856 | |||
| 857 | cmd_buff[0] = IPC::MakeHeader(0x32, 0x5, 0); | ||
| 858 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 859 | cmd_buff[2] = 0; // stub 0 (32bit value) | ||
| 860 | cmd_buff[3] = 0; // stub 0 (8bit value) | ||
| 861 | cmd_buff[4] = 0; // stub 0 (16bit value) | ||
| 862 | cmd_buff[5] = 0; // stub 0 (16bit value) | ||
| 863 | |||
| 864 | LOG_WARNING(Service_BOSS, "(STUBBED) called"); | ||
| 865 | } | ||
| 866 | |||
| 867 | void StartBgImmediate(Service::Interface* self) { | ||
| 868 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 869 | |||
| 870 | u32 unk_param1 = cmd_buff[1]; // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 871 | u32 translation = cmd_buff[2]; | ||
| 872 | u32 buff_addr = cmd_buff[3]; | ||
| 873 | u32 buff_size = (translation >> 4); | ||
| 874 | |||
| 875 | cmd_buff[0] = IPC::MakeHeader(0x33, 0x1, 0x2); | ||
| 876 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 877 | cmd_buff[2] = (buff_size << 4 | 0xA); | ||
| 878 | cmd_buff[3] = buff_addr; | ||
| 879 | |||
| 880 | LOG_WARNING(Service_BOSS, "(STUBBED) buff_size=0x%08X, unk_param2=0x%08X, " | ||
| 881 | "translation=0x%08X, buff_addr=0x%08X", | ||
| 882 | unk_param1, translation, buff_addr, buff_size); | ||
| 883 | } | ||
| 884 | |||
| 885 | void GetTaskActivePriority(Service::Interface* self) { | ||
| 886 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 887 | |||
| 888 | u32 unk_param1 = cmd_buff[1]; // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 889 | u32 translation = cmd_buff[2]; | ||
| 890 | u32 buff_addr = cmd_buff[3]; | ||
| 891 | u32 buff_size = (translation >> 4); | ||
| 892 | |||
| 893 | cmd_buff[0] = IPC::MakeHeader(0x34, 0x2, 0x2); | ||
| 894 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 895 | cmd_buff[2] = 0; // stub 0 (8bit value) | ||
| 896 | cmd_buff[3] = (buff_size << 4 | 0xA); | ||
| 897 | cmd_buff[4] = buff_addr; | ||
| 898 | |||
| 899 | LOG_WARNING(Service_BOSS, "(STUBBED) buff_size=0x%08X, unk_param2=0x%08X, " | ||
| 900 | "translation=0x%08X, buff_addr=0x%08X", | ||
| 901 | unk_param1, translation, buff_addr, buff_size); | ||
| 902 | } | ||
| 903 | |||
| 904 | void RegisterImmediateTask(Service::Interface* self) { | ||
| 905 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 906 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 907 | u32 unk_param1 = cmd_buff[1]; | ||
| 908 | u32 unk_param2 = cmd_buff[2] & 0xFF; | ||
| 909 | u32 unk_param3 = cmd_buff[3] & 0xFF; | ||
| 910 | u32 translation = cmd_buff[4]; | ||
| 911 | u32 buff_addr = cmd_buff[5]; | ||
| 912 | u32 buff_size = (translation >> 4); | ||
| 913 | |||
| 914 | cmd_buff[0] = IPC::MakeHeader(0x35, 0x1, 0x2); | ||
| 915 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 916 | cmd_buff[3] = (buff_size << 4 | 0xA); | ||
| 917 | cmd_buff[4] = buff_addr; | ||
| 918 | |||
| 919 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, unk_param3=0x%08X, " | ||
| 920 | "translation=0x%08X, buff_addr=0x%08X, buff_size=0x%08X", | ||
| 921 | unk_param1, unk_param2, unk_param3, translation, buff_addr, buff_size); | ||
| 922 | } | ||
| 923 | |||
| 924 | void SetTaskQuery(Service::Interface* self) { | ||
| 925 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 926 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 927 | u32 unk_param1 = cmd_buff[1]; | ||
| 928 | u32 unk_param2 = cmd_buff[2]; | ||
| 929 | u32 translation1 = cmd_buff[3]; | ||
| 930 | u32 buff1_addr = cmd_buff[4]; | ||
| 931 | u32 buff1_size = (translation1 >> 4); | ||
| 932 | u32 translation2 = cmd_buff[5]; | ||
| 933 | u32 buff2_addr = cmd_buff[6]; | ||
| 934 | u32 buff2_size = (translation2 >> 4); | ||
| 935 | |||
| 936 | cmd_buff[0] = IPC::MakeHeader(0x36, 0x1, 0x4); | ||
| 937 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 938 | cmd_buff[2] = (buff1_size << 4 | 0xA); | ||
| 939 | cmd_buff[3] = buff1_addr; | ||
| 940 | cmd_buff[2] = (buff2_size << 4 | 0xA); | ||
| 941 | cmd_buff[3] = buff2_addr; | ||
| 942 | |||
| 943 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, " | ||
| 944 | "translation1=0x%08X, buff1_addr=0x%08X, buff1_size=0x%08X, " | ||
| 945 | "translation2=0x%08X, buff2_addr=0x%08X, buff2_size=0x%08X", | ||
| 946 | unk_param1, unk_param2, translation1, buff1_addr, buff1_size, translation2, | ||
| 947 | buff2_addr, buff2_size); | ||
| 948 | } | ||
| 949 | |||
| 950 | void GetTaskQuery(Service::Interface* self) { | ||
| 951 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 952 | // TODO(JamePeng): Figure out the meaning of these parameters | ||
| 953 | u32 unk_param1 = cmd_buff[1]; | ||
| 954 | u32 unk_param2 = cmd_buff[2]; | ||
| 955 | u32 translation1 = cmd_buff[3]; | ||
| 956 | u32 buff1_addr = cmd_buff[4]; | ||
| 957 | u32 buff1_size = (translation1 >> 4); | ||
| 958 | u32 translation2 = cmd_buff[5]; | ||
| 959 | u32 buff2_addr = cmd_buff[6]; | ||
| 960 | u32 buff2_size = (translation2 >> 4); | ||
| 961 | |||
| 962 | cmd_buff[0] = IPC::MakeHeader(0x37, 0x1, 0x4); | ||
| 963 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 964 | cmd_buff[2] = (buff1_size << 4 | 0xA); | ||
| 965 | cmd_buff[3] = buff1_addr; | ||
| 966 | cmd_buff[2] = (buff2_size << 4 | 0xC); | ||
| 967 | cmd_buff[3] = buff2_addr; | ||
| 968 | |||
| 969 | LOG_WARNING(Service_BOSS, "(STUBBED) unk_param1=0x%08X, unk_param2=0x%08X, " | ||
| 970 | "translation1=0x%08X, buff1_addr=0x%08X, buff1_size=0x%08X, " | ||
| 971 | "translation2=0x%08X, buff2_addr=0x%08X, buff2_size=0x%08X", | ||
| 972 | unk_param1, unk_param2, translation1, buff1_addr, buff1_size, translation2, | ||
| 973 | buff2_addr, buff2_size); | ||
| 974 | } | ||
| 975 | |||
| 13 | void Init() { | 976 | void Init() { |
| 14 | using namespace Kernel; | 977 | using namespace Kernel; |
| 15 | 978 | ||
| 16 | AddService(new BOSS_P_Interface); | 979 | AddService(new BOSS_P_Interface); |
| 17 | AddService(new BOSS_U_Interface); | 980 | AddService(new BOSS_U_Interface); |
| 981 | |||
| 982 | new_arrival_flag = 0; | ||
| 983 | ns_data_new_flag = 0; | ||
| 984 | output_flag = 0; | ||
| 18 | } | 985 | } |
| 19 | 986 | ||
| 20 | void Shutdown() {} | 987 | void Shutdown() {} |
diff --git a/src/core/hle/service/boss/boss.h b/src/core/hle/service/boss/boss.h index d3b5d7101..8cdc663c8 100644 --- a/src/core/hle/service/boss/boss.h +++ b/src/core/hle/service/boss/boss.h | |||
| @@ -4,9 +4,794 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include "core/hle/service/service.h" | ||
| 8 | |||
| 7 | namespace Service { | 9 | namespace Service { |
| 8 | namespace BOSS { | 10 | namespace BOSS { |
| 9 | 11 | ||
| 12 | /** | ||
| 13 | * BOSS::InitializeSession service function | ||
| 14 | * Inputs: | ||
| 15 | * 0 : Header Code[0x00010082] | ||
| 16 | * 1 : u32 lower 64bit value | ||
| 17 | * 2 : u32 higher 64bit value | ||
| 18 | * 3 : 0x20 | ||
| 19 | * 4 : u32 unknown value | ||
| 20 | * Outputs: | ||
| 21 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 22 | */ | ||
| 23 | void InitializeSession(Service::Interface* self); | ||
| 24 | |||
| 25 | /** | ||
| 26 | * BOSS::RegisterStorage service function | ||
| 27 | * Inputs: | ||
| 28 | * 0 : Header Code[0x00020010] | ||
| 29 | * 1 : u32 unknown1 | ||
| 30 | * 2 : u32 unknown2 | ||
| 31 | * 3 : u32 unknown3 | ||
| 32 | * 4 : u8 unknown_flag | ||
| 33 | * Outputs: | ||
| 34 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 35 | */ | ||
| 36 | void RegisterStorage(Service::Interface* self); | ||
| 37 | |||
| 38 | /** | ||
| 39 | * BOSS::UnregisterStorage service function | ||
| 40 | * Inputs: | ||
| 41 | * 0 : Header Code[0x00030000] | ||
| 42 | * Outputs: | ||
| 43 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 44 | */ | ||
| 45 | void UnregisterStorage(Service::Interface* self); | ||
| 46 | |||
| 47 | /** | ||
| 48 | * BOSS::GetStorageInfo service function | ||
| 49 | * Inputs: | ||
| 50 | * 0 : Header Code[0x00040000] | ||
| 51 | * Outputs: | ||
| 52 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 53 | * 2 : u32 unknown value | ||
| 54 | */ | ||
| 55 | void GetStorageInfo(Service::Interface* self); | ||
| 56 | |||
| 57 | /** | ||
| 58 | * BOSS::RegisterPrivateRootCa service function | ||
| 59 | * Inputs: | ||
| 60 | * 0 : Header Code[0x00050042] | ||
| 61 | * 1 : u32 unknown value | ||
| 62 | * 2 : MappedBufferDesc(permission = R) | ||
| 63 | * 3 : u32 buff_addr | ||
| 64 | * Outputs: | ||
| 65 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 66 | * 2 : buff_size << 4 | 0xA | ||
| 67 | * 3 : u32 buff_addr | ||
| 68 | */ | ||
| 69 | void RegisterPrivateRootCa(Service::Interface* self); | ||
| 70 | |||
| 71 | /** | ||
| 72 | * BOSS::RegisterPrivateClientCert service function | ||
| 73 | * Inputs: | ||
| 74 | * 0 : Header Code[0x00060084] | ||
| 75 | * 1 : u32 unknown value | ||
| 76 | * 2 : u32 unknown value | ||
| 77 | * 3 : MappedBufferDesc1(permission = R) | ||
| 78 | * 4 : u32 buff_addr1 | ||
| 79 | * 5 : MappedBufferDesc2(permission = R) | ||
| 80 | * 6 : u32 buff_addr2 | ||
| 81 | * Outputs: | ||
| 82 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 83 | * 2 : buff1_size << 4 | 0xA | ||
| 84 | * 3 : u32 buff_addr1 | ||
| 85 | * 4 : buff2_size << 4 | 0xA | ||
| 86 | * 5 : u32 buff_addr2 | ||
| 87 | */ | ||
| 88 | void RegisterPrivateClientCert(Service::Interface* self); | ||
| 89 | |||
| 90 | /** | ||
| 91 | * BOSS::GetNewArrivalFlag service function | ||
| 92 | * Inputs: | ||
| 93 | * 0 : Header Code[0x00070000] | ||
| 94 | * Outputs: | ||
| 95 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 96 | * 2 : u8 flag | ||
| 97 | */ | ||
| 98 | void GetNewArrivalFlag(Service::Interface* self); | ||
| 99 | |||
| 100 | /** | ||
| 101 | * BOSS::RegisterNewArrivalEvent service function | ||
| 102 | * Inputs: | ||
| 103 | * 0 : Header Code[0x00080002] | ||
| 104 | * 1 : u32 unknown1 | ||
| 105 | * 2 : u32 unknown2 | ||
| 106 | * Outputs: | ||
| 107 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 108 | */ | ||
| 109 | void RegisterNewArrivalEvent(Service::Interface* self); | ||
| 110 | |||
| 111 | /** | ||
| 112 | * BOSS::SetOptoutFlag service function | ||
| 113 | * Inputs: | ||
| 114 | * 0 : Header Code[0x00090040] | ||
| 115 | * 1 : u8 output_flag | ||
| 116 | * Outputs: | ||
| 117 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 118 | */ | ||
| 119 | void SetOptoutFlag(Service::Interface* self); | ||
| 120 | |||
| 121 | /** | ||
| 122 | * BOSS::GetOptoutFlag service function | ||
| 123 | * Inputs: | ||
| 124 | * 0 : Header Code[0x000A0000] | ||
| 125 | * Outputs: | ||
| 126 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 127 | * 2 : u8 output_flag | ||
| 128 | */ | ||
| 129 | void GetOptoutFlag(Service::Interface* self); | ||
| 130 | |||
| 131 | /** | ||
| 132 | * BOSS::RegisterTask service function | ||
| 133 | * Inputs: | ||
| 134 | * 0 : Header Code[0x000B00C2] | ||
| 135 | * 1 : u32 unknown value | ||
| 136 | * 2 : u8 unknown value | ||
| 137 | * 3 : u8 unknown value | ||
| 138 | * 4 : MappedBufferDesc1(permission = R) | ||
| 139 | * 5 : buff_addr | ||
| 140 | * Outputs: | ||
| 141 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 142 | * 2 : buff_size << 4 | 0xA | ||
| 143 | * 3 : u32 buff_addr | ||
| 144 | */ | ||
| 145 | void RegisterTask(Service::Interface* self); | ||
| 146 | |||
| 147 | /** | ||
| 148 | * BOSS::UnregisterTask service function | ||
| 149 | * Inputs: | ||
| 150 | * 0 : Header Code[0x000C0082] | ||
| 151 | * 1 : u32 unknown value | ||
| 152 | * 2 : u8 unknown value | ||
| 153 | * 3 : MappedBufferDesc1(permission = R) | ||
| 154 | * 4 : buff_addr | ||
| 155 | * Outputs: | ||
| 156 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 157 | * 2 : buff_size << 4 | 0xA | ||
| 158 | * 3 : u32 buff_addr | ||
| 159 | */ | ||
| 160 | void UnregisterTask(Service::Interface* self); | ||
| 161 | |||
| 162 | /** | ||
| 163 | * BOSS::ReconfigureTask service function | ||
| 164 | * Inputs: | ||
| 165 | * 0 : Header Code[0x000D0082] | ||
| 166 | * 1 : u32 unknown value | ||
| 167 | * 2 : u8 unknown value | ||
| 168 | * 3 : MappedBufferDesc1(permission = R) | ||
| 169 | * 4 : buff_addr | ||
| 170 | * Outputs: | ||
| 171 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 172 | * 2 : buff_size << 4 | 0xA | ||
| 173 | * 3 : u32 buff_addr | ||
| 174 | */ | ||
| 175 | void ReconfigureTask(Service::Interface* self); | ||
| 176 | |||
| 177 | /** | ||
| 178 | * BOSS::GetTaskIdList service function | ||
| 179 | * Inputs: | ||
| 180 | * 0 : Header Code[0x000E0000] | ||
| 181 | * Outputs: | ||
| 182 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 183 | */ | ||
| 184 | void GetTaskIdList(Service::Interface* self); | ||
| 185 | |||
| 186 | /** | ||
| 187 | * BOSS::GetStepIdList service function | ||
| 188 | * Inputs: | ||
| 189 | * 0 : Header Code[0x000F0042] | ||
| 190 | * 2 : MappedBufferDesc(permission = R) | ||
| 191 | * 3 : u32 buff_addr | ||
| 192 | * | ||
| 193 | * Outputs: | ||
| 194 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 195 | * 2 : buff_size << 4 | 0xA | ||
| 196 | * 3 : u32 buff_addr | ||
| 197 | */ | ||
| 198 | void GetStepIdList(Service::Interface* self); | ||
| 199 | |||
| 200 | /** | ||
| 201 | * BOSS::GetNsDataIdList service function | ||
| 202 | * Inputs: | ||
| 203 | * 0 : Header Code[0x00100102] | ||
| 204 | * 1 : u32 unknown1 | ||
| 205 | * 2 : u32 unknown2 | ||
| 206 | * 3 : u32 unknown3 | ||
| 207 | * 4 : u32 unknown4 | ||
| 208 | * 5 : MappedBufferDesc(permission = W) | ||
| 209 | * 6 : u32 buff_addr | ||
| 210 | * Outputs: | ||
| 211 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 212 | * 2 : u16 unknown value | ||
| 213 | * 3 : u16 unknown value | ||
| 214 | * 4 : buff_size << 4 | 0xC | ||
| 215 | * 5 : u32 buff_addr | ||
| 216 | */ | ||
| 217 | void GetNsDataIdList(Service::Interface* self); | ||
| 218 | |||
| 219 | /** | ||
| 220 | * BOSS::GetOwnNsDataIdList service function | ||
| 221 | * Inputs: | ||
| 222 | * 0 : Header Code[0x00110102] | ||
| 223 | * 1 : u32 unknown1 | ||
| 224 | * 2 : u32 unknown2 | ||
| 225 | * 3 : u32 unknown3 | ||
| 226 | * 4 : u32 unknown4 | ||
| 227 | * 5 : MappedBufferDesc(permission = W) | ||
| 228 | * 6 : u32 buff_addr | ||
| 229 | * Outputs: | ||
| 230 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 231 | * 2 : u16 unknown value | ||
| 232 | * 3 : u16 unknown value | ||
| 233 | * 4 : buff_size << 4 | 0xC | ||
| 234 | * 5 : u32 buff_addr | ||
| 235 | */ | ||
| 236 | void GetOwnNsDataIdList(Service::Interface* self); | ||
| 237 | |||
| 238 | /** | ||
| 239 | * BOSS::GetNewDataNsDataIdList service function | ||
| 240 | * Inputs: | ||
| 241 | * 0 : Header Code[0x00120102] | ||
| 242 | * 1 : u32 unknown1 | ||
| 243 | * 2 : u32 unknown2 | ||
| 244 | * 3 : u32 unknown3 | ||
| 245 | * 4 : u32 unknown4 | ||
| 246 | * 5 : MappedBufferDesc(permission = W) | ||
| 247 | * 6 : u32 buff_addr | ||
| 248 | * Outputs: | ||
| 249 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 250 | * 2 : u16 unknown value | ||
| 251 | * 3 : u16 unknown value | ||
| 252 | * 4 : buff_size << 4 | 0xC | ||
| 253 | * 5 : u32 buff_addr | ||
| 254 | */ | ||
| 255 | void GetNewDataNsDataIdList(Service::Interface* self); | ||
| 256 | |||
| 257 | /** | ||
| 258 | * BOSS::GetOwnNewDataNsDataIdList service function | ||
| 259 | * Inputs: | ||
| 260 | * 0 : Header Code[0x00130102] | ||
| 261 | * 1 : u32 unknown1 | ||
| 262 | * 2 : u32 unknown2 | ||
| 263 | * 3 : u32 unknown3 | ||
| 264 | * 4 : u32 unknown4 | ||
| 265 | * 5 : MappedBufferDesc(permission = W) | ||
| 266 | * 6 : u32 buff_addr | ||
| 267 | * Outputs: | ||
| 268 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 269 | * 2 : u16 unknown value | ||
| 270 | * 3 : u16 unknown value | ||
| 271 | |||
| 272 | */ | ||
| 273 | void GetOwnNewDataNsDataIdList(Service::Interface* self); | ||
| 274 | |||
| 275 | /** | ||
| 276 | * BOSS::SendProperty service function | ||
| 277 | * Inputs: | ||
| 278 | * 0 : Header Code[0x00140082] | ||
| 279 | * 1 : u16 unknown value | ||
| 280 | * 2 : u32 unknown value | ||
| 281 | * 3 : MappedBufferDesc(permission = R) | ||
| 282 | * 4 : u32 buff_addr | ||
| 283 | * Outputs: | ||
| 284 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 285 | * 2 : buff_size << 4 | 0xA | ||
| 286 | * 3 : u32 buff_addr | ||
| 287 | */ | ||
| 288 | void SendProperty(Service::Interface* self); | ||
| 289 | |||
| 290 | /** | ||
| 291 | * BOSS::SendPropertyHandle service function | ||
| 292 | * Inputs: | ||
| 293 | * 0 : Header Code[0x00150042] | ||
| 294 | * 2 : u8 unknown value | ||
| 295 | * 3 : MappedBufferDesc(permission = R) | ||
| 296 | * 4 : u32 buff_addr | ||
| 297 | * Outputs: | ||
| 298 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 299 | * 2 : buff_size << 4 | 0xA | ||
| 300 | * 3 : u32 buff_addr | ||
| 301 | */ | ||
| 302 | void SendPropertyHandle(Service::Interface* self); | ||
| 303 | |||
| 304 | /** | ||
| 305 | * BOSS::ReceiveProperty service function | ||
| 306 | * Inputs: | ||
| 307 | * 0 : Header Code[0x00160082] | ||
| 308 | * 1 : u16 unknown1 | ||
| 309 | * 2 : u32 buff_size | ||
| 310 | * 3 : MappedBufferDesc(permission = W) | ||
| 311 | * 4 : u32 buff addr | ||
| 312 | * Outputs: | ||
| 313 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 314 | * 2 : u32 unknown value | ||
| 315 | * 3 : u16 unknown value | ||
| 316 | * 4 : buff_size << 4 | 0xC | ||
| 317 | * 5 : u32 buff_addr | ||
| 318 | */ | ||
| 319 | void ReceiveProperty(Service::Interface* self); | ||
| 320 | |||
| 321 | /** | ||
| 322 | * BOSS::UpdateTaskInterval service function | ||
| 323 | * Inputs: | ||
| 324 | * 0 : Header Code[0x00170082] | ||
| 325 | * 1 : u32 unknown value | ||
| 326 | * 2 : u8 unknown value | ||
| 327 | * 3 : MappedBufferDesc1(permission = R) | ||
| 328 | * 4 : buff_addr | ||
| 329 | * Outputs: | ||
| 330 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 331 | * 2 : buff_size << 4 | 0xA | ||
| 332 | * 3 : u32 buff_addr | ||
| 333 | */ | ||
| 334 | void UpdateTaskInterval(Service::Interface* self); | ||
| 335 | |||
| 336 | /** | ||
| 337 | * BOSS::UpdateTaskCount service function | ||
| 338 | * Inputs: | ||
| 339 | * 0 : Header Code[0x00180082] | ||
| 340 | * 1 : u32 buff_size | ||
| 341 | * 2 : u32 unknown2 | ||
| 342 | * 3 : MappedBufferDesc(permission = R) | ||
| 343 | * 4 : u32 buff_addr | ||
| 344 | * Outputs: | ||
| 345 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 346 | * 2 : buff_size << 4 | 0xA | ||
| 347 | * 3 : u32 buff_addr | ||
| 348 | */ | ||
| 349 | void UpdateTaskCount(Service::Interface* self); | ||
| 350 | |||
| 351 | /** | ||
| 352 | * BOSS::GetTaskInterval service function | ||
| 353 | * Inputs: | ||
| 354 | * 0 : Header Code[0x00190042] | ||
| 355 | * 1 : u32 unknown value | ||
| 356 | * 2 : MappedBufferDesc(permission = R) | ||
| 357 | * 3 : u32 buff_addr | ||
| 358 | * Outputs: | ||
| 359 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 360 | * 2 : u32 unknown value | ||
| 361 | * 3 : buff_size << 4 | 0xA | ||
| 362 | * 4 : u32 buff_addr | ||
| 363 | */ | ||
| 364 | void GetTaskInterval(Service::Interface* self); | ||
| 365 | |||
| 366 | /** | ||
| 367 | * BOSS::GetTaskCount service function | ||
| 368 | * Inputs: | ||
| 369 | * 0 : Header Code[0x001A0042] | ||
| 370 | * 1 : u32 unknown value | ||
| 371 | * 2 : MappedBufferDesc(permission = R) | ||
| 372 | * 3 : u32 buff_addr | ||
| 373 | * Outputs: | ||
| 374 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 375 | * 2 : u32 unknown value | ||
| 376 | * 3 : buff_size << 4 | 0xA | ||
| 377 | * 4 : u32 buff_addr | ||
| 378 | */ | ||
| 379 | void GetTaskCount(Service::Interface* self); | ||
| 380 | |||
| 381 | /** | ||
| 382 | * BOSS::GetTaskServiceStatus service function | ||
| 383 | * Inputs: | ||
| 384 | * 0 : Header Code[0x001B0042] | ||
| 385 | * 1 : u32 unknown value | ||
| 386 | * 2 : MappedBufferDesc(permission = R) | ||
| 387 | * 3 : u32 buff_addr | ||
| 388 | * Outputs: | ||
| 389 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 390 | * 2 : u8 unknown value | ||
| 391 | * 3 : buff_size << 4 | 0xA | ||
| 392 | * 4 : u32 buff_addr | ||
| 393 | */ | ||
| 394 | void GetTaskServiceStatus(Service::Interface* self); | ||
| 395 | |||
| 396 | /** | ||
| 397 | * BOSS::StartTask service function | ||
| 398 | * Inputs: | ||
| 399 | * 0 : Header Code[0x001C0042] | ||
| 400 | * 1 : u32 unknown value | ||
| 401 | * 2 : MappedBufferDesc(permission = R) | ||
| 402 | * 3 : u32 buff_addr | ||
| 403 | * Outputs: | ||
| 404 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 405 | * 2 : buff_size << 4 | 0xA | ||
| 406 | * 3 : u32 buff_addr | ||
| 407 | */ | ||
| 408 | void StartTask(Service::Interface* self); | ||
| 409 | |||
| 410 | /** | ||
| 411 | * BOSS::StartTaskImmediate service function | ||
| 412 | * Inputs: | ||
| 413 | * 0 : Header Code[0x001D0042] | ||
| 414 | * 1 : u32 unknown value | ||
| 415 | * 2 : MappedBufferDesc(permission = R) | ||
| 416 | * 3 : u32 buff_addr | ||
| 417 | * Outputs: | ||
| 418 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 419 | * 2 : buff_size << 4 | 0xA | ||
| 420 | * 3 : u32 buff_addr | ||
| 421 | */ | ||
| 422 | void StartTaskImmediate(Service::Interface* self); | ||
| 423 | |||
| 424 | /** | ||
| 425 | * BOSS::CancelTask service function | ||
| 426 | * Inputs: | ||
| 427 | * 0 : Header Code[0x001E0042] | ||
| 428 | * 1 : u32 unknown value | ||
| 429 | * 2 : MappedBufferDesc(permission = R) | ||
| 430 | * 3 : u32 buff_addr | ||
| 431 | * Outputs: | ||
| 432 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 433 | * 2 : buff_size << 4 | 0xA | ||
| 434 | * 3 : u32 buff_addr | ||
| 435 | */ | ||
| 436 | void CancelTask(Service::Interface* self); | ||
| 437 | |||
| 438 | /** | ||
| 439 | * BOSS::GetTaskFinishHandle service function | ||
| 440 | * Inputs: | ||
| 441 | * 0 : Header Code[0x001F0000] | ||
| 442 | * Outputs: | ||
| 443 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 444 | * 2 : 0 | ||
| 445 | * 3 : Task Finish Handle | ||
| 446 | */ | ||
| 447 | void GetTaskFinishHandle(Service::Interface* self); | ||
| 448 | |||
| 449 | /** | ||
| 450 | * BOSS::GetTaskState service function | ||
| 451 | * Inputs: | ||
| 452 | * 0 : Header Code[0x00200082] | ||
| 453 | * 1 : u32 buff_size | ||
| 454 | * 2 : u8 unknown value | ||
| 455 | * 3 : MappedBufferDesc(permission = R) | ||
| 456 | * 4 : u32 buff_addr | ||
| 457 | * Outputs: | ||
| 458 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 459 | * 2 : u8 unknown value | ||
| 460 | * 3 : u32 unknown value | ||
| 461 | * 4 : u8 unknown value | ||
| 462 | * 5 : buff_size << 4 | 0xA | ||
| 463 | * 6 : u32 buff_addr | ||
| 464 | */ | ||
| 465 | void GetTaskState(Service::Interface* self); | ||
| 466 | |||
| 467 | /** | ||
| 468 | * BOSS::GetTaskResult service function | ||
| 469 | * Inputs: | ||
| 470 | * 0 : Header Code[0x00210042] | ||
| 471 | * 1 : u32 unknown value | ||
| 472 | * 2 : MappedBufferDesc(permission = R) | ||
| 473 | * 3 : u32 buff_addr | ||
| 474 | * Outputs: | ||
| 475 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 476 | * 2 : u8 unknown value | ||
| 477 | * 3 : u32 unknown value | ||
| 478 | * 4 : u8 unknown value | ||
| 479 | * 5 : buff_size << 4 | 0xA | ||
| 480 | * 6 : u32 buff_addr | ||
| 481 | */ | ||
| 482 | void GetTaskResult(Service::Interface* self); | ||
| 483 | |||
| 484 | /** | ||
| 485 | * BOSS::GetTaskCommErrorCode service function | ||
| 486 | * Inputs: | ||
| 487 | * 0 : Header Code[0x00220042] | ||
| 488 | * 1 : u32 unknown value | ||
| 489 | * 2 : MappedBufferDesc(permission = R) | ||
| 490 | * 3 : u32 buff_addr | ||
| 491 | * Outputs: | ||
| 492 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 493 | * 2 : u32 unknown value | ||
| 494 | * 3 : u32 unknown value | ||
| 495 | * 4 : u8 unknown value | ||
| 496 | * 5 : buff_size << 4 | 0xA | ||
| 497 | * 6 : u32 buff_addr | ||
| 498 | */ | ||
| 499 | void GetTaskCommErrorCode(Service::Interface* self); | ||
| 500 | |||
| 501 | /** | ||
| 502 | * BOSS::GetTaskStatus service function | ||
| 503 | * Inputs: | ||
| 504 | * 0 : Header Code[0x002300C2] | ||
| 505 | * 1 : u32 unknown value | ||
| 506 | * 2 : u8 unknown value | ||
| 507 | * 3 : u8 unknown value | ||
| 508 | * 4 : MappedBufferDesc(permission = R) | ||
| 509 | * 5 : u32 buff_addr | ||
| 510 | * Outputs: | ||
| 511 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 512 | * 2 : u8 unknown value | ||
| 513 | * 3 : buff_size << 4 | 0xA | ||
| 514 | * 4 : u32 buff_addr | ||
| 515 | */ | ||
| 516 | void GetTaskStatus(Service::Interface* self); | ||
| 517 | |||
| 518 | /** | ||
| 519 | * BOSS::GetTaskError service function | ||
| 520 | * Inputs: | ||
| 521 | * 0 : Header Code[0x00240082] | ||
| 522 | * 1 : u32 unknown value | ||
| 523 | * 2 : u8 unknown value | ||
| 524 | * 3 : MappedBufferDesc(permission = R) | ||
| 525 | * 4 : u32 buff_addr | ||
| 526 | * Outputs: | ||
| 527 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 528 | * 2 : u8 unknown value | ||
| 529 | * 3 : buff_size << 4 | 0xA | ||
| 530 | * 4 : u32 buff_addr | ||
| 531 | */ | ||
| 532 | void GetTaskError(Service::Interface* self); | ||
| 533 | |||
| 534 | /** | ||
| 535 | * BOSS::GetTaskInfo service function | ||
| 536 | * Inputs: | ||
| 537 | * 0 : Header Code[0x00250082] | ||
| 538 | * 1 : u32 unknown value | ||
| 539 | * 2 : u8 unknown value | ||
| 540 | * 3 : MappedBufferDesc(permission = R) | ||
| 541 | * 4 : u32 buff_addr | ||
| 542 | * Outputs: | ||
| 543 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 544 | * 2 : buff_size << 4 | 0xA | ||
| 545 | * 3 : u32 buff_addr | ||
| 546 | */ | ||
| 547 | void GetTaskInfo(Service::Interface* self); | ||
| 548 | |||
| 549 | /** | ||
| 550 | * BOSS::DeleteNsData service function | ||
| 551 | * Inputs: | ||
| 552 | * 0 : Header Code[0x00260040] | ||
| 553 | * 1 : u32 unknown value | ||
| 554 | * Outputs: | ||
| 555 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 556 | */ | ||
| 557 | void DeleteNsData(Service::Interface* self); | ||
| 558 | |||
| 559 | /** | ||
| 560 | * BOSS::GetNsDataHeaderInfo service function | ||
| 561 | * Inputs: | ||
| 562 | * 0 : Header Code[0x002700C2] | ||
| 563 | * 1 : u32 unknown value | ||
| 564 | * 2 : u8 unknown value | ||
| 565 | * 3 : u32 unknown value | ||
| 566 | * 4 : MappedBufferDesc(permission = W) | ||
| 567 | * 5 : u32 buff_addr | ||
| 568 | * Outputs: | ||
| 569 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 570 | * 2 : buff_size << 4 | 0xC | ||
| 571 | * 3 : u32 buff_addr | ||
| 572 | */ | ||
| 573 | void GetNsDataHeaderInfo(Service::Interface* self); | ||
| 574 | |||
| 575 | /** | ||
| 576 | * BOSS::ReadNsData service function | ||
| 577 | * Inputs: | ||
| 578 | * 0 : Header Code[0x00280102] | ||
| 579 | * 1 : u32 unknown value | ||
| 580 | * 2 : u32 unknown value | ||
| 581 | * 3 : u32 unknown value | ||
| 582 | * 4 : u32 unknown value | ||
| 583 | * 5 : MappedBufferDesc(permission = W) | ||
| 584 | * 6 : u32 buff_addr | ||
| 585 | * Outputs: | ||
| 586 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 587 | * 2 : u32 unknown value | ||
| 588 | * 3 : u32 unknown value | ||
| 589 | * 4 : buff_size << 4 | 0xC | ||
| 590 | * 5 : u32 buff_addr | ||
| 591 | */ | ||
| 592 | void ReadNsData(Service::Interface* self); | ||
| 593 | |||
| 594 | /** | ||
| 595 | * BOSS::SetNsDataAdditionalInfo service function | ||
| 596 | * Inputs: | ||
| 597 | * 0 : Header Code[0x00290080] | ||
| 598 | * 1 : u32 unknown value | ||
| 599 | * 2 : u32 unknown value | ||
| 600 | * Outputs: | ||
| 601 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 602 | */ | ||
| 603 | void SetNsDataAdditionalInfo(Service::Interface* self); | ||
| 604 | |||
| 605 | /** | ||
| 606 | * BOSS::GetNsDataAdditionalInfo service function | ||
| 607 | * Inputs: | ||
| 608 | * 0 : Header Code[0x002A0040] | ||
| 609 | * 1 : u32 unknown value | ||
| 610 | * Outputs: | ||
| 611 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 612 | * 2 : u32 unknown value | ||
| 613 | */ | ||
| 614 | void GetNsDataAdditionalInfo(Service::Interface* self); | ||
| 615 | |||
| 616 | /** | ||
| 617 | * BOSS::SetNsDataNewFlag service function | ||
| 618 | * Inputs: | ||
| 619 | * 0 : Header Code[0x002B0080] | ||
| 620 | * 1 : u32 unknown value | ||
| 621 | * 2 : u8 flag | ||
| 622 | * Outputs: | ||
| 623 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 624 | */ | ||
| 625 | void SetNsDataNewFlag(Service::Interface* self); | ||
| 626 | |||
| 627 | /** | ||
| 628 | * BOSS::GetNsDataNewFlag service function | ||
| 629 | * Inputs: | ||
| 630 | * 0 : Header Code[0x002C0040] | ||
| 631 | * 1 : u32 unknown value | ||
| 632 | * Outputs: | ||
| 633 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 634 | * 2 : u8 flag | ||
| 635 | */ | ||
| 636 | void GetNsDataNewFlag(Service::Interface* self); | ||
| 637 | |||
| 638 | /** | ||
| 639 | * BOSS::GetNsDataLastUpdate service function | ||
| 640 | * Inputs: | ||
| 641 | * 0 : Header Code[0x002D0040] | ||
| 642 | * 1 : u32 unknown value | ||
| 643 | * Outputs: | ||
| 644 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 645 | * 2 : u32 unknown value | ||
| 646 | * 3 : u32 unknown value | ||
| 647 | */ | ||
| 648 | void GetNsDataLastUpdate(Service::Interface* self); | ||
| 649 | |||
| 650 | /** | ||
| 651 | * BOSS::GetErrorCode service function | ||
| 652 | * Inputs: | ||
| 653 | * 0 : Header Code[0x002E0040] | ||
| 654 | * 1 : u8 unknown value | ||
| 655 | * Outputs: | ||
| 656 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 657 | * 2 : u32 unknown value | ||
| 658 | */ | ||
| 659 | void GetErrorCode(Service::Interface* self); | ||
| 660 | |||
| 661 | /** | ||
| 662 | * BOSS::RegisterStorageEntry service function | ||
| 663 | * Inputs: | ||
| 664 | * 0 : Header Code[0x002F0140] | ||
| 665 | * 1 : u32 unknown value | ||
| 666 | * 2 : u32 unknown value | ||
| 667 | * 3 : u32 unknown value | ||
| 668 | * 4 : u16 unknown value | ||
| 669 | * 5 : u8 unknown value | ||
| 670 | * Outputs: | ||
| 671 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 672 | */ | ||
| 673 | void RegisterStorageEntry(Service::Interface* self); | ||
| 674 | |||
| 675 | /** | ||
| 676 | * BOSS::GetStorageEntryInfo service function | ||
| 677 | * Inputs: | ||
| 678 | * 0 : Header Code[0x00300000] | ||
| 679 | * Outputs: | ||
| 680 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 681 | * 2 : u32 unknown value | ||
| 682 | * 3 : u16 unknown value | ||
| 683 | */ | ||
| 684 | void GetStorageEntryInfo(Service::Interface* self); | ||
| 685 | |||
| 686 | /** | ||
| 687 | * BOSS::SetStorageOption service function | ||
| 688 | * Inputs: | ||
| 689 | * 0 : Header Code[0x00310100] | ||
| 690 | * 1 : u8 unknown value | ||
| 691 | * 2 : u32 unknown value | ||
| 692 | * 3 : u16 unknown value | ||
| 693 | * 4 : u16 unknown value | ||
| 694 | * Outputs: | ||
| 695 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 696 | */ | ||
| 697 | void SetStorageOption(Service::Interface* self); | ||
| 698 | |||
| 699 | /** | ||
| 700 | * BOSS::GetStorageOption service function | ||
| 701 | * Inputs: | ||
| 702 | * 0 : Header Code[0x00320000] | ||
| 703 | * Outputs: | ||
| 704 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 705 | * 2 : u8 unknown value | ||
| 706 | * 3 : u32 unknown value | ||
| 707 | * 4 : u16 unknown value | ||
| 708 | * 5 : u16 unknown value | ||
| 709 | */ | ||
| 710 | void GetStorageOption(Service::Interface* self); | ||
| 711 | |||
| 712 | /** | ||
| 713 | * BOSS::StartBgImmediate service function | ||
| 714 | * Inputs: | ||
| 715 | * 0 : Header Code[0x00330042] | ||
| 716 | * 1 : u32 unknown value | ||
| 717 | * 2 : MappedBufferDesc(permission = R) | ||
| 718 | * 3 : u32 buff_addr | ||
| 719 | * Outputs: | ||
| 720 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 721 | * 2 : buff_size << 4 | 0xA | ||
| 722 | * 3 : u32 buff_addr | ||
| 723 | */ | ||
| 724 | void StartBgImmediate(Service::Interface* self); | ||
| 725 | |||
| 726 | /** | ||
| 727 | * BOSS::GetTaskActivePriority service function | ||
| 728 | * Inputs: | ||
| 729 | * 0 : Header Code[0x00340042] | ||
| 730 | * 1 : u32 unknown value | ||
| 731 | * 2 : MappedBufferDesc(permission = R) | ||
| 732 | * 3 : u32 buff_addr | ||
| 733 | * Outputs: | ||
| 734 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 735 | * 2 : u8 unknown value | ||
| 736 | * 3 : buff_size << 4 | 0xA | ||
| 737 | * 4 : u32 buff_addr | ||
| 738 | */ | ||
| 739 | void GetTaskActivePriority(Service::Interface* self); | ||
| 740 | |||
| 741 | /** | ||
| 742 | * BOSS::RegisterImmediateTask service function | ||
| 743 | * Inputs: | ||
| 744 | * 0 : Header Code[0x003500C2] | ||
| 745 | * 1 : u32 unknown value | ||
| 746 | * 2 : u8 unknown value | ||
| 747 | * 3 : u8 unknown value | ||
| 748 | * 4 : MappedBufferDesc(permission = R) | ||
| 749 | * 5 : u32 buff_addr | ||
| 750 | * Outputs: | ||
| 751 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 752 | * 2 : buff_size << 4 | 0xA | ||
| 753 | * 3 : u32 buff_addr | ||
| 754 | */ | ||
| 755 | void RegisterImmediateTask(Service::Interface* self); | ||
| 756 | |||
| 757 | /** | ||
| 758 | * BOSS::SetTaskQuery service function | ||
| 759 | * Inputs: | ||
| 760 | * 0 : Header Code[0x00360084] | ||
| 761 | * 1 : u32 unknown value | ||
| 762 | * 2 : u32 unknown value | ||
| 763 | * 3 : MappedBufferDesc1(permission = R) | ||
| 764 | * 4 : u32 buff1_addr | ||
| 765 | * 5 : MappedBufferDesc2(permission = R) | ||
| 766 | * 6 : u32 buff2_addr | ||
| 767 | * Outputs: | ||
| 768 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 769 | * 2 : buff1_size << 4 | 0xA | ||
| 770 | * 3 : u32 buff1_addr | ||
| 771 | * 4 : buff2_size << 4 | 0xA | ||
| 772 | * 5 : u32 buff2_addr | ||
| 773 | */ | ||
| 774 | void SetTaskQuery(Service::Interface* self); | ||
| 775 | |||
| 776 | /** | ||
| 777 | * BOSS::GetTaskQuery service function | ||
| 778 | * Inputs: | ||
| 779 | * 0 : Header Code[0x00370084] | ||
| 780 | * 1 : u32 unknown value | ||
| 781 | * 2 : u32 unknown value | ||
| 782 | * 3 : MappedBufferDesc1(permission = R) | ||
| 783 | * 4 : u32 buff1_addr | ||
| 784 | * 5 : MappedBufferDesc2(permission = W) | ||
| 785 | * 6 : u32 buff2_addr | ||
| 786 | * Outputs: | ||
| 787 | * 1 : Result of function, 0 on success, otherwise error code | ||
| 788 | * 2 : buff1_size << 4 | 0xA | ||
| 789 | * 3 : u32 buff1_addr | ||
| 790 | * 4 : buff2_size << 4 | 0xC | ||
| 791 | * 5 : u32 buff2_addr | ||
| 792 | */ | ||
| 793 | void GetTaskQuery(Service::Interface* self); | ||
| 794 | |||
| 10 | /// Initialize BOSS service(s) | 795 | /// Initialize BOSS service(s) |
| 11 | void Init(); | 796 | void Init(); |
| 12 | 797 | ||
diff --git a/src/core/hle/service/boss/boss_u.cpp b/src/core/hle/service/boss/boss_u.cpp index 6affa23b1..371d702e0 100644 --- a/src/core/hle/service/boss/boss_u.cpp +++ b/src/core/hle/service/boss/boss_u.cpp | |||
| @@ -2,16 +2,68 @@ | |||
| 2 | // Licensed under GPLv2 or any later version | 2 | // Licensed under GPLv2 or any later version |
| 3 | // Refer to the license.txt file included. | 3 | // Refer to the license.txt file included. |
| 4 | 4 | ||
| 5 | #include "core/hle/service/boss/boss.h" | ||
| 5 | #include "core/hle/service/boss/boss_u.h" | 6 | #include "core/hle/service/boss/boss_u.h" |
| 6 | 7 | ||
| 7 | namespace Service { | 8 | namespace Service { |
| 8 | namespace BOSS { | 9 | namespace BOSS { |
| 9 | 10 | ||
| 10 | const Interface::FunctionInfo FunctionTable[] = { | 11 | const Interface::FunctionInfo FunctionTable[] = { |
| 11 | {0x00020100, nullptr, "GetStorageInfo"}, | 12 | {0x00010082, InitializeSession, "InitializeSession"}, |
| 12 | {0x000C0082, nullptr, "UnregisterTask"}, | 13 | {0x00020100, RegisterStorage, "RegisterStorage"}, |
| 13 | {0x001E0042, nullptr, "CancelTask"}, | 14 | {0x00030000, UnregisterStorage, "UnregisterStorage"}, |
| 14 | {0x00330042, nullptr, "StartBgImmediate"}, | 15 | {0x00040000, GetStorageInfo, "GetStorageInfo"}, |
| 16 | {0x00050042, RegisterPrivateRootCa, "RegisterPrivateRootCa"}, | ||
| 17 | {0x00060084, RegisterPrivateClientCert, "RegisterPrivateClientCert"}, | ||
| 18 | {0x00070000, GetNewArrivalFlag, "GetNewArrivalFlag"}, | ||
| 19 | {0x00080002, RegisterNewArrivalEvent, "RegisterNewArrivalEvent"}, | ||
| 20 | {0x00090040, SetOptoutFlag, "SetOptoutFlag"}, | ||
| 21 | {0x000A0000, GetOptoutFlag, "GetOptoutFlag"}, | ||
| 22 | {0x000B00C2, RegisterTask, "RegisterTask"}, | ||
| 23 | {0x000C0082, UnregisterTask, "UnregisterTask"}, | ||
| 24 | {0x000D0082, ReconfigureTask, "ReconfigureTask"}, | ||
| 25 | {0x000E0000, GetTaskIdList, "GetTaskIdList"}, | ||
| 26 | {0x000F0042, GetStepIdList, "GetStepIdList"}, | ||
| 27 | {0x00100102, GetNsDataIdList, "GetNsDataIdList"}, | ||
| 28 | {0x00110102, GetOwnNsDataIdList, "GetOwnNsDataIdList"}, | ||
| 29 | {0x00120102, GetNewDataNsDataIdList, "GetNewDataNsDataIdList"}, | ||
| 30 | {0x00130102, GetOwnNewDataNsDataIdList, "GetOwnNewDataNsDataIdList"}, | ||
| 31 | {0x00140082, SendProperty, "SendProperty"}, | ||
| 32 | {0x00150042, SendPropertyHandle, "SendPropertyHandle"}, | ||
| 33 | {0x00160082, ReceiveProperty, "ReceiveProperty"}, | ||
| 34 | {0x00170082, UpdateTaskInterval, "UpdateTaskInterval"}, | ||
| 35 | {0x00180082, UpdateTaskCount, "UpdateTaskCount"}, | ||
| 36 | {0x00190042, GetTaskInterval, "GetTaskInterval"}, | ||
| 37 | {0x001A0042, GetTaskCount, "GetTaskCount"}, | ||
| 38 | {0x001B0042, GetTaskServiceStatus, "GetTaskServiceStatus"}, | ||
| 39 | {0x001C0042, StartTask, "StartTask"}, | ||
| 40 | {0x001D0042, StartTaskImmediate, "StartTaskImmediate"}, | ||
| 41 | {0x001E0042, CancelTask, "CancelTask"}, | ||
| 42 | {0x001F0000, GetTaskFinishHandle, "GetTaskFinishHandle"}, | ||
| 43 | {0x00200082, GetTaskState, "GetTaskState"}, | ||
| 44 | {0x00210042, GetTaskResult, "GetTaskResult"}, | ||
| 45 | {0x00220042, GetTaskCommErrorCode, "GetTaskCommErrorCode"}, | ||
| 46 | {0x002300C2, GetTaskStatus, "GetTaskStatus"}, | ||
| 47 | {0x00240082, GetTaskError, "GetTaskError"}, | ||
| 48 | {0x00250082, GetTaskInfo, "GetTaskInfo"}, | ||
| 49 | {0x00260040, DeleteNsData, "DeleteNsData"}, | ||
| 50 | {0x002700C2, GetNsDataHeaderInfo, "GetNsDataHeaderInfo"}, | ||
| 51 | {0x00280102, ReadNsData, "ReadNsData"}, | ||
| 52 | {0x00290080, SetNsDataAdditionalInfo, "SetNsDataAdditionalInfo"}, | ||
| 53 | {0x002A0040, GetNsDataAdditionalInfo, "GetNsDataAdditionalInfo"}, | ||
| 54 | {0x002B0080, SetNsDataNewFlag, "SetNsDataNewFlag"}, | ||
| 55 | {0x002C0040, GetNsDataNewFlag, "GetNsDataNewFlag"}, | ||
| 56 | {0x002D0040, GetNsDataLastUpdate, "GetNsDataLastUpdate"}, | ||
| 57 | {0x002E0040, GetErrorCode, "GetErrorCode"}, | ||
| 58 | {0x002F0140, RegisterStorageEntry, "RegisterStorageEntry"}, | ||
| 59 | {0x00300000, GetStorageEntryInfo, "GetStorageEntryInfo"}, | ||
| 60 | {0x00310100, SetStorageOption, "SetStorageOption"}, | ||
| 61 | {0x00320000, GetStorageOption, "GetStorageOption"}, | ||
| 62 | {0x00330042, StartBgImmediate, "StartBgImmediate"}, | ||
| 63 | {0x00340042, GetTaskActivePriority, "GetTaskActivePriority"}, | ||
| 64 | {0x003500C2, RegisterImmediateTask, "RegisterImmediateTask"}, | ||
| 65 | {0x00360084, SetTaskQuery, "SetTaskQuery"}, | ||
| 66 | {0x00370084, GetTaskQuery, "GetTaskQuery"}, | ||
| 15 | }; | 67 | }; |
| 16 | 68 | ||
| 17 | BOSS_U_Interface::BOSS_U_Interface() { | 69 | BOSS_U_Interface::BOSS_U_Interface() { |