diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2024-01-26 15:55:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-26 15:55:25 +0100 |
commit | 55482ab5dce463d5014498b006c18a90d0d004e6 (patch) | |
tree | b343faa9cadc692265efb4b6b88e157c97ef76d2 /src/core/file_sys/fs_file.h | |
parent | Merge pull request #12796 from t895/controller-optimizations (diff) | |
parent | Address review comments and fix compilation problems (diff) | |
download | yuzu-55482ab5dce463d5014498b006c18a90d0d004e6.tar yuzu-55482ab5dce463d5014498b006c18a90d0d004e6.tar.gz yuzu-55482ab5dce463d5014498b006c18a90d0d004e6.tar.bz2 yuzu-55482ab5dce463d5014498b006c18a90d0d004e6.tar.lz yuzu-55482ab5dce463d5014498b006c18a90d0d004e6.tar.xz yuzu-55482ab5dce463d5014498b006c18a90d0d004e6.tar.zst yuzu-55482ab5dce463d5014498b006c18a90d0d004e6.zip |
Diffstat (limited to 'src/core/file_sys/fs_file.h')
-rw-r--r-- | src/core/file_sys/fs_file.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/core/file_sys/fs_file.h b/src/core/file_sys/fs_file.h new file mode 100644 index 000000000..4fb77e8db --- /dev/null +++ b/src/core/file_sys/fs_file.h @@ -0,0 +1,65 @@ +// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "common/common_types.h" + +namespace FileSys { + +struct ReadOption { + u32 value; + + static const ReadOption None; +}; + +enum ReadOptionFlag : u32 { + ReadOptionFlag_None = (0 << 0), +}; + +inline constexpr const ReadOption ReadOption::None = {ReadOptionFlag_None}; + +inline constexpr bool operator==(const ReadOption& lhs, const ReadOption& rhs) { + return lhs.value == rhs.value; +} + +inline constexpr bool operator!=(const ReadOption& lhs, const ReadOption& rhs) { + return !(lhs == rhs); +} + +static_assert(sizeof(ReadOption) == sizeof(u32)); + +enum WriteOptionFlag : u32 { + WriteOptionFlag_None = (0 << 0), + WriteOptionFlag_Flush = (1 << 0), +}; + +struct WriteOption { + u32 value; + + constexpr inline bool HasFlushFlag() const { + return value & WriteOptionFlag_Flush; + } + + static const WriteOption None; + static const WriteOption Flush; +}; + +inline constexpr const WriteOption WriteOption::None = {WriteOptionFlag_None}; +inline constexpr const WriteOption WriteOption::Flush = {WriteOptionFlag_Flush}; + +inline constexpr bool operator==(const WriteOption& lhs, const WriteOption& rhs) { + return lhs.value == rhs.value; +} + +inline constexpr bool operator!=(const WriteOption& lhs, const WriteOption& rhs) { + return !(lhs == rhs); +} + +static_assert(sizeof(WriteOption) == sizeof(u32)); + +struct FileHandle { + void* handle; +}; + +} // namespace FileSys |