k_page_buffer.h 726 B

1234567891011121314151617181920212223242526272829
  1. // Copyright 2022 yuzu Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <array>
  6. #include "common/common_types.h"
  7. #include "core/device_memory.h"
  8. #include "core/hle/kernel/memory_types.h"
  9. #include "core/hle/kernel/slab_helpers.h"
  10. namespace Kernel {
  11. class KPageBuffer final : public KSlabAllocated<KPageBuffer> {
  12. public:
  13. KPageBuffer() = default;
  14. static KPageBuffer* FromPhysicalAddress(Core::System& system, PAddr phys_addr);
  15. private:
  16. [[maybe_unused]] alignas(PageSize) std::array<u8, PageSize> m_buffer{};
  17. };
  18. static_assert(sizeof(KPageBuffer) == PageSize);
  19. static_assert(alignof(KPageBuffer) == PageSize);
  20. } // namespace Kernel