diff options
author | bunnei <bunneidev@gmail.com> | 2020-09-11 16:57:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-11 16:57:27 +0200 |
commit | 324029d4f9fd2381f474e608a2859360324161e5 (patch) | |
tree | d2dc348235f05f20686c526f7092590f596f65c2 /src/audio_core/memory_pool.h | |
parent | Merge pull request #4597 from Morph1984/mjolnir-p2 (diff) | |
parent | Preliminary effects (diff) | |
download | yuzu-324029d4f9fd2381f474e608a2859360324161e5.tar yuzu-324029d4f9fd2381f474e608a2859360324161e5.tar.gz yuzu-324029d4f9fd2381f474e608a2859360324161e5.tar.bz2 yuzu-324029d4f9fd2381f474e608a2859360324161e5.tar.lz yuzu-324029d4f9fd2381f474e608a2859360324161e5.tar.xz yuzu-324029d4f9fd2381f474e608a2859360324161e5.tar.zst yuzu-324029d4f9fd2381f474e608a2859360324161e5.zip |
Diffstat (limited to 'src/audio_core/memory_pool.h')
-rw-r--r-- | src/audio_core/memory_pool.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/audio_core/memory_pool.h b/src/audio_core/memory_pool.h new file mode 100644 index 000000000..8ac503f1c --- /dev/null +++ b/src/audio_core/memory_pool.h @@ -0,0 +1,53 @@ +// Copyright 2020 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "common/common_funcs.h" +#include "common/common_types.h" +#include "common/swap.h" + +namespace AudioCore { + +class ServerMemoryPoolInfo { +public: + ServerMemoryPoolInfo(); + ~ServerMemoryPoolInfo(); + + enum class State : u32_le { + Invalid = 0x0, + Aquired = 0x1, + RequestDetach = 0x2, + Detached = 0x3, + RequestAttach = 0x4, + Attached = 0x5, + Released = 0x6, + }; + + struct InParams { + u64_le address{}; + u64_le size{}; + ServerMemoryPoolInfo::State state{}; + INSERT_PADDING_WORDS(3); + }; + static_assert(sizeof(ServerMemoryPoolInfo::InParams) == 0x20, "InParams are an invalid size"); + + struct OutParams { + ServerMemoryPoolInfo::State state{}; + INSERT_PADDING_WORDS(3); + }; + static_assert(sizeof(ServerMemoryPoolInfo::OutParams) == 0x10, "OutParams are an invalid size"); + + bool Update(const ServerMemoryPoolInfo::InParams& in_params, + ServerMemoryPoolInfo::OutParams& out_params); + +private: + // There's another entry here which is the DSP address, however since we're not talking to the + // DSP we can just use the same address provided by the guest without needing to remap + u64_le cpu_address{}; + u64_le size{}; + bool used{}; +}; + +} // namespace AudioCore |