diff options
| author | 2015-06-25 12:55:27 -0500 | |
|---|---|---|
| committer | 2015-06-25 12:55:27 -0500 | |
| commit | bd336cfdce60ee18a1d8f344afbeed922a8a588c (patch) | |
| tree | 71f50475a055752fbb391281a25c09ec43cf6dc8 | |
| parent | Merge pull request #877 from yuriks/ipc-headers (diff) | |
| download | yuzu-bd336cfdce60ee18a1d8f344afbeed922a8a588c.tar.gz yuzu-bd336cfdce60ee18a1d8f344afbeed922a8a588c.tar.xz yuzu-bd336cfdce60ee18a1d8f344afbeed922a8a588c.zip | |
Services/SOC: Added command headers to some of the soc commands.
Diffstat (limited to '')
| -rw-r--r-- | src/core/hle/service/soc_u.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/core/hle/service/soc_u.cpp b/src/core/hle/service/soc_u.cpp index 1e0f5df9b..1bd420552 100644 --- a/src/core/hle/service/soc_u.cpp +++ b/src/core/hle/service/soc_u.cpp | |||
| @@ -328,6 +328,7 @@ static void Socket(Service::Interface* self) { | |||
| 328 | if ((s32)socket_handle == SOCKET_ERROR_VALUE) | 328 | if ((s32)socket_handle == SOCKET_ERROR_VALUE) |
| 329 | result = TranslateError(GET_ERRNO); | 329 | result = TranslateError(GET_ERRNO); |
| 330 | 330 | ||
| 331 | cmd_buffer[0] = IPC::MakeHeader(2, 2, 0); | ||
| 331 | cmd_buffer[1] = result; | 332 | cmd_buffer[1] = result; |
| 332 | cmd_buffer[2] = socket_handle; | 333 | cmd_buffer[2] = socket_handle; |
| 333 | } | 334 | } |
| @@ -351,8 +352,9 @@ static void Bind(Service::Interface* self) { | |||
| 351 | if (res != 0) | 352 | if (res != 0) |
| 352 | result = TranslateError(GET_ERRNO); | 353 | result = TranslateError(GET_ERRNO); |
| 353 | 354 | ||
| 354 | cmd_buffer[2] = res; | 355 | cmd_buffer[0] = IPC::MakeHeader(5, 2, 0); |
| 355 | cmd_buffer[1] = result; | 356 | cmd_buffer[1] = result; |
| 357 | cmd_buffer[2] = res; | ||
| 356 | } | 358 | } |
| 357 | 359 | ||
| 358 | static void Fcntl(Service::Interface* self) { | 360 | static void Fcntl(Service::Interface* self) { |
| @@ -434,8 +436,9 @@ static void Listen(Service::Interface* self) { | |||
| 434 | if (ret != 0) | 436 | if (ret != 0) |
| 435 | result = TranslateError(GET_ERRNO); | 437 | result = TranslateError(GET_ERRNO); |
| 436 | 438 | ||
| 437 | cmd_buffer[2] = ret; | 439 | cmd_buffer[0] = IPC::MakeHeader(3, 2, 0); |
| 438 | cmd_buffer[1] = result; | 440 | cmd_buffer[1] = result; |
| 441 | cmd_buffer[2] = ret; | ||
| 439 | } | 442 | } |
| 440 | 443 | ||
| 441 | static void Accept(Service::Interface* self) { | 444 | static void Accept(Service::Interface* self) { |
| @@ -460,8 +463,10 @@ static void Accept(Service::Interface* self) { | |||
| 460 | Memory::WriteBlock(cmd_buffer[0x104 >> 2], (const u8*)&ctr_addr, max_addr_len); | 463 | Memory::WriteBlock(cmd_buffer[0x104 >> 2], (const u8*)&ctr_addr, max_addr_len); |
| 461 | } | 464 | } |
| 462 | 465 | ||
| 463 | cmd_buffer[2] = ret; | 466 | cmd_buffer[0] = IPC::MakeHeader(4, 2, 2); |
| 464 | cmd_buffer[1] = result; | 467 | cmd_buffer[1] = result; |
| 468 | cmd_buffer[2] = ret; | ||
| 469 | cmd_buffer[3] = IPC::StaticBufferDesc(static_cast<u32>(max_addr_len), 0); | ||
| 465 | } | 470 | } |
| 466 | 471 | ||
| 467 | static void GetHostId(Service::Interface* self) { | 472 | static void GetHostId(Service::Interface* self) { |
| @@ -669,8 +674,10 @@ static void Connect(Service::Interface* self) { | |||
| 669 | int result = 0; | 674 | int result = 0; |
| 670 | if (ret != 0) | 675 | if (ret != 0) |
| 671 | result = TranslateError(GET_ERRNO); | 676 | result = TranslateError(GET_ERRNO); |
| 672 | cmd_buffer[2] = ret; | 677 | |
| 678 | cmd_buffer[0] = IPC::MakeHeader(6, 2, 0); | ||
| 673 | cmd_buffer[1] = result; | 679 | cmd_buffer[1] = result; |
| 680 | cmd_buffer[2] = ret; | ||
| 674 | } | 681 | } |
| 675 | 682 | ||
| 676 | static void InitializeSockets(Service::Interface* self) { | 683 | static void InitializeSockets(Service::Interface* self) { |
| @@ -681,7 +688,8 @@ static void InitializeSockets(Service::Interface* self) { | |||
| 681 | #endif | 688 | #endif |
| 682 | 689 | ||
| 683 | u32* cmd_buffer = Kernel::GetCommandBuffer(); | 690 | u32* cmd_buffer = Kernel::GetCommandBuffer(); |
| 684 | cmd_buffer[1] = 0; | 691 | cmd_buffer[0] = IPC::MakeHeader(1, 1, 0); |
| 692 | cmd_buffer[1] = RESULT_SUCCESS.raw; | ||
| 685 | } | 693 | } |
| 686 | 694 | ||
| 687 | static void ShutdownSockets(Service::Interface* self) { | 695 | static void ShutdownSockets(Service::Interface* self) { |