summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys/fs_file.h
diff options
context:
space:
mode:
authorFearlessTobi <thm.frey@gmail.com>2024-01-18 23:08:37 +0100
committerLiam <byteslice@airmail.cc>2024-01-25 22:42:06 +0100
commit2c049ae06dbbdfff7542c23ca4d748879f4beb71 (patch)
treef93c8be5b6d1781a69d8c28e6aa3500d34c8b55b /src/core/file_sys/fs_file.h
parentresult: Make fully constexpr, add ON_RESULT_INCLUDED (diff)
downloadyuzu-2c049ae06dbbdfff7542c23ca4d748879f4beb71.tar
yuzu-2c049ae06dbbdfff7542c23ca4d748879f4beb71.tar.gz
yuzu-2c049ae06dbbdfff7542c23ca4d748879f4beb71.tar.bz2
yuzu-2c049ae06dbbdfff7542c23ca4d748879f4beb71.tar.lz
yuzu-2c049ae06dbbdfff7542c23ca4d748879f4beb71.tar.xz
yuzu-2c049ae06dbbdfff7542c23ca4d748879f4beb71.tar.zst
yuzu-2c049ae06dbbdfff7542c23ca4d748879f4beb71.zip
Diffstat (limited to 'src/core/file_sys/fs_file.h')
-rw-r--r--src/core/file_sys/fs_file.h63
1 files changed, 63 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..35f66b959
--- /dev/null
+++ b/src/core/file_sys/fs_file.h
@@ -0,0 +1,63 @@
+// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+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