| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- // 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{};
- State state{};
- INSERT_PADDING_WORDS(3);
- };
- static_assert(sizeof(InParams) == 0x20, "InParams are an invalid size");
- struct OutParams {
- State state{};
- INSERT_PADDING_WORDS(3);
- };
- static_assert(sizeof(OutParams) == 0x10, "OutParams are an invalid size");
- bool Update(const InParams& in_params, 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
|