1
0
Fork 0
forked from suyu/suyu

FS: Use the correct error code when trying to open files that don't exist.

This commit is contained in:
Subv 2018-03-04 14:34:48 -05:00
parent e4b7a1d160
commit 84e1c0a430
2 changed files with 6 additions and 26 deletions

View file

@ -7,6 +7,7 @@
#include "common/common_types.h" #include "common/common_types.h"
#include "common/logging/log.h" #include "common/logging/log.h"
#include "core/file_sys/disk_filesystem.h" #include "core/file_sys/disk_filesystem.h"
#include "core/file_sys/errors.h"
namespace FileSys { namespace FileSys {
@ -22,8 +23,7 @@ ResultVal<std::unique_ptr<StorageBackend>> Disk_FileSystem::OpenFile(const std::
auto file = std::make_shared<FileUtil::IOFile>(full_path, mode == Mode::Read ? "rb" : "wb"); auto file = std::make_shared<FileUtil::IOFile>(full_path, mode == Mode::Read ? "rb" : "wb");
if (!file->IsOpen()) { if (!file->IsOpen()) {
// TODO(Subv): Find out the correct error code. return ERROR_PATH_NOT_FOUND;
return ResultCode(-1);
} }
return MakeResult<std::unique_ptr<StorageBackend>>( return MakeResult<std::unique_ptr<StorageBackend>>(
@ -100,8 +100,7 @@ u64 Disk_FileSystem::GetFreeSpaceSize() const {
ResultVal<FileSys::EntryType> Disk_FileSystem::GetEntryType(const std::string& path) const { ResultVal<FileSys::EntryType> Disk_FileSystem::GetEntryType(const std::string& path) const {
std::string full_path = base_directory + path; std::string full_path = base_directory + path;
if (!FileUtil::Exists(full_path)) { if (!FileUtil::Exists(full_path)) {
// TODO(Subv): Find out what this actually means return ERROR_PATH_NOT_FOUND;
return ResultCode(ErrorModule::FS, 1);
} }
// TODO(Subv): Find out the EntryType values // TODO(Subv): Find out the EntryType values

View file

@ -10,36 +10,17 @@ namespace FileSys {
namespace ErrCodes { namespace ErrCodes {
enum { enum {
RomFSNotFound = 100, NotFound = 1,
ArchiveNotMounted = 101,
FileNotFound = 112,
PathNotFound = 113,
GameCardNotInserted = 141,
NotFound = 120,
FileAlreadyExists = 180,
DirectoryAlreadyExists = 185,
AlreadyExists = 190,
InvalidOpenFlags = 230,
DirectoryNotEmpty = 240,
NotAFile = 250,
NotFormatted = 340, ///< This is used by the FS service when creating a SaveData archive
ExeFSSectionNotFound = 567,
CommandNotAllowed = 630,
InvalidReadFlag = 700,
InvalidPath = 702,
WriteBeyondEnd = 705,
UnsupportedOpenFlags = 760,
IncorrectExeFSReadSize = 761,
UnexpectedFileOrDirectory = 770,
}; };
} }
constexpr ResultCode ERROR_PATH_NOT_FOUND(ErrorModule::FS, ErrCodes::NotFound);
// TODO(bunnei): Replace these with correct errors for Switch OS // TODO(bunnei): Replace these with correct errors for Switch OS
constexpr ResultCode ERROR_INVALID_PATH(ResultCode(-1)); constexpr ResultCode ERROR_INVALID_PATH(ResultCode(-1));
constexpr ResultCode ERROR_UNSUPPORTED_OPEN_FLAGS(ResultCode(-1)); constexpr ResultCode ERROR_UNSUPPORTED_OPEN_FLAGS(ResultCode(-1));
constexpr ResultCode ERROR_INVALID_OPEN_FLAGS(ResultCode(-1)); constexpr ResultCode ERROR_INVALID_OPEN_FLAGS(ResultCode(-1));
constexpr ResultCode ERROR_FILE_NOT_FOUND(ResultCode(-1)); constexpr ResultCode ERROR_FILE_NOT_FOUND(ResultCode(-1));
constexpr ResultCode ERROR_PATH_NOT_FOUND(ResultCode(-1));
constexpr ResultCode ERROR_UNEXPECTED_FILE_OR_DIRECTORY(ResultCode(-1)); constexpr ResultCode ERROR_UNEXPECTED_FILE_OR_DIRECTORY(ResultCode(-1));
constexpr ResultCode ERROR_DIRECTORY_ALREADY_EXISTS(ResultCode(-1)); constexpr ResultCode ERROR_DIRECTORY_ALREADY_EXISTS(ResultCode(-1));
constexpr ResultCode ERROR_FILE_ALREADY_EXISTS(ResultCode(-1)); constexpr ResultCode ERROR_FILE_ALREADY_EXISTS(ResultCode(-1));