summaryrefslogtreecommitdiffhomepage
path: root/Public/Developer/System.Core/Headers/File.h
diff options
context:
space:
mode:
Diffstat (limited to 'Public/Developer/System.Core/Headers/File.h')
-rw-r--r--Public/Developer/System.Core/Headers/File.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/Public/Developer/System.Core/Headers/File.h b/Public/Developer/System.Core/Headers/File.h
index bd1d8d3f..13bc7a00 100644
--- a/Public/Developer/System.Core/Headers/File.h
+++ b/Public/Developer/System.Core/Headers/File.h
@@ -9,3 +9,36 @@
#include <System.Core/Headers/Defines.h>
/// @brief Filesystem wrapper.
+
+typedef QWordTyp FSRef;
+
+/// @brief Opens a new file.
+/// @param path where to find it.
+/// @param r the restrict (rw, rwe, r+, w+, r, w)
+/// @return
+CA_EXTERN_C FSRef FsOpenFile(const CharacterTypeUTF8* path, const CharacterTypeUTF8* r);
+
+/// @brief Closes the file and flushes it to the said file.
+/// @param refFs the filesystem reference.
+/// @return
+CA_EXTERN_C VoidType FsCloseFile(FSRef refFs);
+
+typedef QWordTyp FSForkRef;
+
+/// @brief A fork information header.
+typedef struct _Fork {
+ PtrVoidType forkData;
+ SizeType forkSize;
+ Int32Type forkFlags;
+ Int32Type forkKind;
+ CharacterTypeUTF8 forkName[256];
+} ForkType;
+
+/// @brief Gets the fork inside a file.
+/// @param refFs the filesystem ref
+/// @param forkName the fork's name
+/// @return the fork data.
+CA_EXTERN_C FSForkRef FsGetFork(FSRef refFs, const CharacterTypeUTF8* forkName);
+
+#define FsGetDataFork(refFs) FsGetFork(refFs, "data")
+#define FsGetRsrcFork(refFs) FsGetFork(refFs, "rsrc")