diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/hle/ipc_helpers.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/core/hle/ipc_helpers.h b/src/core/hle/ipc_helpers.h index 90f276ee8..d0721074d 100644 --- a/src/core/hle/ipc_helpers.h +++ b/src/core/hle/ipc_helpers.h | |||
| @@ -362,6 +362,11 @@ inline u32 RequestParser::Pop() { | |||
| 362 | return cmdbuf[index++]; | 362 | return cmdbuf[index++]; |
| 363 | } | 363 | } |
| 364 | 364 | ||
| 365 | template <> | ||
| 366 | inline s32 RequestParser::Pop() { | ||
| 367 | return static_cast<s32>(Pop<u32>()); | ||
| 368 | } | ||
| 369 | |||
| 365 | template <typename T> | 370 | template <typename T> |
| 366 | void RequestParser::PopRaw(T& value) { | 371 | void RequestParser::PopRaw(T& value) { |
| 367 | std::memcpy(&value, cmdbuf + index, sizeof(T)); | 372 | std::memcpy(&value, cmdbuf + index, sizeof(T)); |
| @@ -393,6 +398,16 @@ inline u64 RequestParser::Pop() { | |||
| 393 | } | 398 | } |
| 394 | 399 | ||
| 395 | template <> | 400 | template <> |
| 401 | inline s8 RequestParser::Pop() { | ||
| 402 | return static_cast<s8>(Pop<u8>()); | ||
| 403 | } | ||
| 404 | |||
| 405 | template <> | ||
| 406 | inline s16 RequestParser::Pop() { | ||
| 407 | return static_cast<s16>(Pop<u16>()); | ||
| 408 | } | ||
| 409 | |||
| 410 | template <> | ||
| 396 | inline s64 RequestParser::Pop() { | 411 | inline s64 RequestParser::Pop() { |
| 397 | return static_cast<s64>(Pop<u64>()); | 412 | return static_cast<s64>(Pop<u64>()); |
| 398 | } | 413 | } |