diff options
Diffstat (limited to 'src/core/hle/kernel/svc.cpp')
| -rw-r--r-- | src/core/hle/kernel/svc.cpp | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 82ceb235c..d44def658 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp | |||
| @@ -1499,22 +1499,9 @@ static ResultCode SignalToAddress(VAddr address, u32 type, s32 value, s32 num_to | |||
| 1499 | return ERR_INVALID_ADDRESS; | 1499 | return ERR_INVALID_ADDRESS; |
| 1500 | } | 1500 | } |
| 1501 | 1501 | ||
| 1502 | const auto signal_type = static_cast<AddressArbiter::SignalType>(type); | ||
| 1502 | auto& address_arbiter = Core::System::GetInstance().Kernel().AddressArbiter(); | 1503 | auto& address_arbiter = Core::System::GetInstance().Kernel().AddressArbiter(); |
| 1503 | switch (static_cast<AddressArbiter::SignalType>(type)) { | 1504 | return address_arbiter.SignalToAddress(address, signal_type, value, num_to_wake); |
| 1504 | case AddressArbiter::SignalType::Signal: | ||
| 1505 | return address_arbiter.SignalToAddress(address, num_to_wake); | ||
| 1506 | case AddressArbiter::SignalType::IncrementAndSignalIfEqual: | ||
| 1507 | return address_arbiter.IncrementAndSignalToAddressIfEqual(address, value, num_to_wake); | ||
| 1508 | case AddressArbiter::SignalType::ModifyByWaitingCountAndSignalIfEqual: | ||
| 1509 | return address_arbiter.ModifyByWaitingCountAndSignalToAddressIfEqual(address, value, | ||
| 1510 | num_to_wake); | ||
| 1511 | default: | ||
| 1512 | LOG_ERROR(Kernel_SVC, | ||
| 1513 | "Invalid signal type, expected Signal, IncrementAndSignalIfEqual " | ||
| 1514 | "or ModifyByWaitingCountAndSignalIfEqual but got {}", | ||
| 1515 | type); | ||
| 1516 | return ERR_INVALID_ENUM_VALUE; | ||
| 1517 | } | ||
| 1518 | } | 1505 | } |
| 1519 | 1506 | ||
| 1520 | /// This returns the total CPU ticks elapsed since the CPU was powered-on | 1507 | /// This returns the total CPU ticks elapsed since the CPU was powered-on |