diff options
| author | 2019-03-06 15:55:56 -0500 | |
|---|---|---|
| committer | 2019-03-06 15:55:56 -0500 | |
| commit | 75b417489ad3e23f62060933b0fe0f29646bbd04 (patch) | |
| tree | 1b5944f3d09d3383a9c94c3fdaf2cb14c9a9a8cf /src/core/hle/kernel/svc.cpp | |
| parent | Merge pull request #2201 from lioncash/audio-retval (diff) | |
| parent | kernel/address_arbiter: Pass in system instance to constructor (diff) | |
| download | yuzu-75b417489ad3e23f62060933b0fe0f29646bbd04.tar.gz yuzu-75b417489ad3e23f62060933b0fe0f29646bbd04.tar.xz yuzu-75b417489ad3e23f62060933b0fe0f29646bbd04.zip | |
Merge pull request #2199 from lioncash/arbiter
kernel/address_arbiter: Convert the address arbiter into a class
Diffstat (limited to 'src/core/hle/kernel/svc.cpp')
| -rw-r--r-- | src/core/hle/kernel/svc.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 223d717e2..75b88a333 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp | |||
| @@ -1478,13 +1478,14 @@ static ResultCode WaitForAddress(VAddr address, u32 type, s32 value, s64 timeout | |||
| 1478 | return ERR_INVALID_ADDRESS; | 1478 | return ERR_INVALID_ADDRESS; |
| 1479 | } | 1479 | } |
| 1480 | 1480 | ||
| 1481 | auto& address_arbiter = Core::System::GetInstance().Kernel().AddressArbiter(); | ||
| 1481 | switch (static_cast<AddressArbiter::ArbitrationType>(type)) { | 1482 | switch (static_cast<AddressArbiter::ArbitrationType>(type)) { |
| 1482 | case AddressArbiter::ArbitrationType::WaitIfLessThan: | 1483 | case AddressArbiter::ArbitrationType::WaitIfLessThan: |
| 1483 | return AddressArbiter::WaitForAddressIfLessThan(address, value, timeout, false); | 1484 | return address_arbiter.WaitForAddressIfLessThan(address, value, timeout, false); |
| 1484 | case AddressArbiter::ArbitrationType::DecrementAndWaitIfLessThan: | 1485 | case AddressArbiter::ArbitrationType::DecrementAndWaitIfLessThan: |
| 1485 | return AddressArbiter::WaitForAddressIfLessThan(address, value, timeout, true); | 1486 | return address_arbiter.WaitForAddressIfLessThan(address, value, timeout, true); |
| 1486 | case AddressArbiter::ArbitrationType::WaitIfEqual: | 1487 | case AddressArbiter::ArbitrationType::WaitIfEqual: |
| 1487 | return AddressArbiter::WaitForAddressIfEqual(address, value, timeout); | 1488 | return address_arbiter.WaitForAddressIfEqual(address, value, timeout); |
| 1488 | default: | 1489 | default: |
| 1489 | LOG_ERROR(Kernel_SVC, | 1490 | LOG_ERROR(Kernel_SVC, |
| 1490 | "Invalid arbitration type, expected WaitIfLessThan, DecrementAndWaitIfLessThan " | 1491 | "Invalid arbitration type, expected WaitIfLessThan, DecrementAndWaitIfLessThan " |
| @@ -1509,13 +1510,14 @@ static ResultCode SignalToAddress(VAddr address, u32 type, s32 value, s32 num_to | |||
| 1509 | return ERR_INVALID_ADDRESS; | 1510 | return ERR_INVALID_ADDRESS; |
| 1510 | } | 1511 | } |
| 1511 | 1512 | ||
| 1513 | auto& address_arbiter = Core::System::GetInstance().Kernel().AddressArbiter(); | ||
| 1512 | switch (static_cast<AddressArbiter::SignalType>(type)) { | 1514 | switch (static_cast<AddressArbiter::SignalType>(type)) { |
| 1513 | case AddressArbiter::SignalType::Signal: | 1515 | case AddressArbiter::SignalType::Signal: |
| 1514 | return AddressArbiter::SignalToAddress(address, num_to_wake); | 1516 | return address_arbiter.SignalToAddress(address, num_to_wake); |
| 1515 | case AddressArbiter::SignalType::IncrementAndSignalIfEqual: | 1517 | case AddressArbiter::SignalType::IncrementAndSignalIfEqual: |
| 1516 | return AddressArbiter::IncrementAndSignalToAddressIfEqual(address, value, num_to_wake); | 1518 | return address_arbiter.IncrementAndSignalToAddressIfEqual(address, value, num_to_wake); |
| 1517 | case AddressArbiter::SignalType::ModifyByWaitingCountAndSignalIfEqual: | 1519 | case AddressArbiter::SignalType::ModifyByWaitingCountAndSignalIfEqual: |
| 1518 | return AddressArbiter::ModifyByWaitingCountAndSignalToAddressIfEqual(address, value, | 1520 | return address_arbiter.ModifyByWaitingCountAndSignalToAddressIfEqual(address, value, |
| 1519 | num_to_wake); | 1521 | num_to_wake); |
| 1520 | default: | 1522 | default: |
| 1521 | LOG_ERROR(Kernel_SVC, | 1523 | LOG_ERROR(Kernel_SVC, |