diff options
| author | archshift <admin@archshift.com> | 2014-05-16 23:21:03 -0700 |
|---|---|---|
| committer | archshift <admin@archshift.com> | 2014-05-16 23:21:03 -0700 |
| commit | b8c8d0903ec9be4c7d580464480a0136277be803 (patch) | |
| tree | 9280a9f01e1312d0d8aed493282ae65d2384963c /src/core/hle/coprocessor.cpp | |
| parent | 1e729e7cae237a14067138aaf2b4f5933dba3b36 (diff) | |
| parent | a4fd257469bc06d1474a2e6e8df9dbd233ac79a5 (diff) | |
Merge remote-tracking branch 'upstream/master' into issue-7-fix
Diffstat (limited to 'src/core/hle/coprocessor.cpp')
| -rw-r--r-- | src/core/hle/coprocessor.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/core/hle/coprocessor.cpp b/src/core/hle/coprocessor.cpp new file mode 100644 index 000000000..39674ee64 --- /dev/null +++ b/src/core/hle/coprocessor.cpp @@ -0,0 +1,34 @@ +// Copyright 2014 Citra Emulator Project +// Licensed under GPLv2 +// Refer to the license.txt file included. + +#include "core/hle/coprocessor.h" +#include "core/hle/hle.h" +#include "core/mem_map.h" +#include "core/core.h" + +namespace HLE { + +/// Returns the coprocessor (in this case, syscore) command buffer pointer +Addr GetThreadCommandBuffer() { + // Called on insruction: mrc p15, 0, r0, c13, c0, 3 + return Memory::KERNEL_MEMORY_VADDR; +} + +/// Call an MRC (move to ARM register from coprocessor) instruction in HLE +s32 CallMRC(u32 instruction) { + CoprocessorOperation operation = (CoprocessorOperation)((instruction >> 20) & 0xFF); + + switch (operation) { + + case CALL_GET_THREAD_COMMAND_BUFFER: + return GetThreadCommandBuffer(); + + default: + //DEBUG_LOG(OSHLE, "unknown MRC call 0x%08X", instruction); + break; + } + return -1; +} + +} // namespace |
