diff options
Diffstat (limited to 'src/core/hle/svc.cpp')
| -rw-r--r-- | src/core/hle/svc.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp index 9130d77ec..17967f260 100644 --- a/src/core/hle/svc.cpp +++ b/src/core/hle/svc.cpp | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | 9 | ||
| 10 | #include "core/mem_map.h" | 10 | #include "core/mem_map.h" |
| 11 | 11 | ||
| 12 | #include "core/hle/kernel/address_arbiter.h" | ||
| 12 | #include "core/hle/kernel/event.h" | 13 | #include "core/hle/kernel/event.h" |
| 13 | #include "core/hle/kernel/kernel.h" | 14 | #include "core/hle/kernel/kernel.h" |
| 14 | #include "core/hle/kernel/mutex.h" | 15 | #include "core/hle/kernel/mutex.h" |
| @@ -175,18 +176,19 @@ Result WaitSynchronizationN(s32* out, Handle* handles, s32 handle_count, bool wa | |||
| 175 | } | 176 | } |
| 176 | 177 | ||
| 177 | /// Create an address arbiter (to allocate access to shared resources) | 178 | /// Create an address arbiter (to allocate access to shared resources) |
| 178 | Result CreateAddressArbiter(void* arbiter) { | 179 | Result CreateAddressArbiter(u32* arbiter) { |
| 179 | ERROR_LOG(SVC, "(UNIMPLEMENTED) called"); | 180 | DEBUG_LOG(SVC, "called"); |
| 180 | Core::g_app_core->SetReg(1, 0xFABBDADD); | 181 | Handle handle = Kernel::CreateAddressArbiter(); |
| 182 | *arbiter = handle; | ||
| 181 | return 0; | 183 | return 0; |
| 182 | } | 184 | } |
| 183 | 185 | ||
| 184 | /// Arbitrate address | 186 | /// Arbitrate address |
| 185 | Result ArbitrateAddress(Handle arbiter, u32 addr, u32 _type, u32 value, s64 nanoseconds) { | 187 | Result ArbitrateAddress(Handle arbiter, u32 address, u32 type, u32 value, s64 nanoseconds) { |
| 186 | ERROR_LOG(SVC, "(UNIMPLEMENTED) called"); | 188 | DEBUG_LOG(SVC, "called arbiter=0x%08X, address=0x%08X, type=0x%08X, value=0x%08X, " |
| 187 | ArbitrationType type = (ArbitrationType)_type; | 189 | "nanoseconds=%d", arbiter, address, type, value, nanoseconds); |
| 188 | Memory::Write32(addr, type); | 190 | return Kernel::ArbitrateAddress(arbiter, static_cast<Kernel::ArbitrationType>(type), address, |
| 189 | return 0; | 191 | value); |
| 190 | } | 192 | } |
| 191 | 193 | ||
| 192 | /// Used to output a message on a debug hardware unit - does nothing on a retail unit | 194 | /// Used to output a message on a debug hardware unit - does nothing on a retail unit |