mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-30 23:23:07 +00:00
91 lines
2.3 KiB
C++
91 lines
2.3 KiB
C++
#pragma once
|
|
|
|
#include "result.h"
|
|
|
|
namespace nn { namespace fs {
|
|
|
|
const s32 PathLengthMax = 0x300;
|
|
|
|
struct FileHandle
|
|
{
|
|
u32 handle;
|
|
};
|
|
|
|
struct DirectoryHandle
|
|
{
|
|
u32 handle;
|
|
};
|
|
|
|
struct DirectoryEntry
|
|
{
|
|
char name[PathLengthMax+1]; // 0
|
|
char _301[3]; // 301
|
|
u8 type; // 304
|
|
s64 fileSize; // 308
|
|
};
|
|
|
|
enum OpenMode
|
|
{
|
|
OpenMode_Read = 1 << 0,
|
|
OpenMode_Write = 1 << 1,
|
|
OpenMode_ReadWrite = OpenMode_Read | OpenMode_Write
|
|
};
|
|
|
|
enum DirectoryMode
|
|
{
|
|
DirectoryMode_Directories = 1 << 0,
|
|
DirectoryMode_Files = 1 << 1,
|
|
DirectoryMode_DirectoriesFiles = DirectoryMode_Directories | DirectoryMode_Files
|
|
};
|
|
|
|
enum DirectoryEntryType
|
|
{
|
|
DirectoryEntryType_Directory = 0,
|
|
DirectoryEntryType_File = 1
|
|
};
|
|
|
|
struct ReadOption
|
|
{
|
|
ReadOption(u32 flags = 0) : flags(flags) { }
|
|
u32 flags;
|
|
};
|
|
|
|
struct WriteOption
|
|
{
|
|
enum Flags
|
|
{
|
|
Flush = 1
|
|
};
|
|
|
|
WriteOption(u32 flags = 0) : flags(flags) { }
|
|
u32 flags;
|
|
};
|
|
|
|
|
|
Result OpenFile(FileHandle* out, const char* path, s32 mode);
|
|
void CloseFile(FileHandle handle);
|
|
Result ReadFile(FileHandle handle, s64 offset, void* buffer, u32 size);
|
|
Result ReadFile(FileHandle handle, s64 offset, void* buffer, u32 size, const ReadOption& options);
|
|
Result WriteFile(FileHandle handle, s64 offset, const void* buffer, u32 size, const WriteOption& options = WriteOption(0));
|
|
Result FlushFile(FileHandle handle);
|
|
Result GetFileSize(s64* out, FileHandle handle);
|
|
Result SetFileSize(FileHandle handle, s64 size);
|
|
|
|
Result CreateFile(const char* path, s64 size);
|
|
Result DeleteFile(const char* path);
|
|
Result RenameFile(const char* path, const char* newPath);
|
|
|
|
Result OpenDirectory(DirectoryHandle* out, const char* path, s32 mode);
|
|
void CloseDirectory(DirectoryHandle handle);
|
|
Result ReadDirectory(s64* out, DirectoryEntry* entries, DirectoryHandle handle, s64 maxEntryCount);
|
|
Result GetDirectoryEntryCount(s64* out, DirectoryHandle handle);
|
|
|
|
Result CreateDirectory(char const* path);
|
|
Result DeleteDirectory(const char* path);
|
|
Result DeleteDirectoryRecursively(const char* path);
|
|
Result RenameDirectory(const char* path, const char* newPath);
|
|
|
|
Result MountSdCard(const char* mountPoint);
|
|
void Unmount(const char* mountPoint);
|
|
|
|
} }
|