htc: implement the remaining commands for htcfs

This commit is contained in:
Michael Scire 2021-02-15 18:56:22 -08:00 committed by SciresM
parent 1961cb1034
commit d20bceff75
9 changed files with 1169 additions and 27 deletions

View file

@ -56,7 +56,21 @@ namespace ams::htcfs {
void Cancel();
void Wait();
public:
Result OpenFile(s32 *out_handle, const char *path, fs::OpenMode mode, bool case_sensitive);
Result FileExists(bool *out, const char *path, bool case_sensitive);
Result DeleteFile(const char *path, bool case_sensitive);
Result RenameFile(const char *old_path, const char *new_path, bool case_sensitive);
Result GetEntryType(fs::DirectoryEntryType *out, const char *path, bool case_sensitive);
Result OpenDirectory(s32 *out_handle, const char *path, fs::OpenDirectoryMode mode, bool case_sensitive);
Result DirectoryExists(bool *out, const char *path, bool case_sensitive);
Result CreateDirectory(const char *path, bool case_sensitive);
Result DeleteDirectory(const char *path, bool recursively, bool case_sensitive);
Result RenameDirectory(const char *old_path, const char *new_path, bool case_sensitive);
Result CreateFile(const char *path, s64 size, bool case_sensitive);
Result GetFileTimeStamp(u64 *out_create, u64 *out_access, u64 *out_modify, const char *path, bool case_sensitive);
Result GetCaseSensitivePath(char *dst, size_t dst_size, const char *path);
Result GetDiskFreeSpace(s64 *out_free, s64 *out_total, s64 *out_total_free, const char *path);
Result CloseDirectory(s32 handle);
Result GetEntryCount(s64 *out, s32 handle);
@ -64,6 +78,18 @@ namespace ams::htcfs {
Result ReadDirectoryLarge(s64 *out, fs::DirectoryEntry *out_entries, size_t max_out_entries, s32 handle);
Result GetPriorityForDirectory(s32 *out, s32 handle);
Result SetPriorityForDirectory(s32 priority, s32 handle);
Result CloseFile(s32 handle);
Result ReadFile(s64 *out, void *buffer, s32 handle, s64 offset, s64 buffer_size, fs::ReadOption option);
Result ReadFileLarge(s64 *out, void *buffer, s32 handle, s64 offset, s64 buffer_size, fs::ReadOption option);
Result WriteFile(const void *buffer, s32 handle, s64 offset, s64 buffer_size, fs::WriteOption option);
Result WriteFileLarge(const void *buffer, s32 handle, s64 offset, s64 buffer_size, fs::WriteOption option);
Result GetFileSize(s64 *out, s32 handle);
Result SetFileSize(s64 size, s32 handle);
Result FlushFile(s32 handle);
Result GetPriorityForFile(s32 *out, s32 handle);
Result SetPriorityForFile(s32 priority, s32 handle);
private:
int WaitAny(htclow::ChannelState state, os::EventType *event);