fs_file.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include "common/common_types.h"
  5. namespace FileSys {
  6. struct ReadOption {
  7. u32 value;
  8. static const ReadOption None;
  9. };
  10. enum ReadOptionFlag : u32 {
  11. ReadOptionFlag_None = (0 << 0),
  12. };
  13. inline constexpr const ReadOption ReadOption::None = {ReadOptionFlag_None};
  14. inline constexpr bool operator==(const ReadOption& lhs, const ReadOption& rhs) {
  15. return lhs.value == rhs.value;
  16. }
  17. inline constexpr bool operator!=(const ReadOption& lhs, const ReadOption& rhs) {
  18. return !(lhs == rhs);
  19. }
  20. static_assert(sizeof(ReadOption) == sizeof(u32));
  21. enum WriteOptionFlag : u32 {
  22. WriteOptionFlag_None = (0 << 0),
  23. WriteOptionFlag_Flush = (1 << 0),
  24. };
  25. struct WriteOption {
  26. u32 value;
  27. constexpr inline bool HasFlushFlag() const {
  28. return value & WriteOptionFlag_Flush;
  29. }
  30. static const WriteOption None;
  31. static const WriteOption Flush;
  32. };
  33. inline constexpr const WriteOption WriteOption::None = {WriteOptionFlag_None};
  34. inline constexpr const WriteOption WriteOption::Flush = {WriteOptionFlag_Flush};
  35. inline constexpr bool operator==(const WriteOption& lhs, const WriteOption& rhs) {
  36. return lhs.value == rhs.value;
  37. }
  38. inline constexpr bool operator!=(const WriteOption& lhs, const WriteOption& rhs) {
  39. return !(lhs == rhs);
  40. }
  41. static_assert(sizeof(WriteOption) == sizeof(u32));
  42. struct FileHandle {
  43. void* handle;
  44. };
  45. } // namespace FileSys