Files
Xenia-Canary/src/xenia/vfs/devices/null_entry.cc
Gliniak 1110cdd372 [Kernel] Added support for writing/reading GPD files
This breaks settings in games that are using them and savefiles in games that use settings to store progress
2025-03-07 11:59:48 +01:00

58 lines
1.8 KiB
C++

/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2021 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
#include "xenia/vfs/devices/null_entry.h"
#include "xenia/base/filesystem.h"
#include "xenia/base/logging.h"
#include "xenia/base/mapped_memory.h"
#include "xenia/base/math.h"
#include "xenia/base/string.h"
#include "xenia/vfs/device.h"
#include "xenia/vfs/devices/null_file.h"
namespace xe {
namespace vfs {
NullEntry::NullEntry(Device* device, Entry* parent, std::string path)
: Entry(device, parent, path) {}
NullEntry::~NullEntry() = default;
NullEntry* NullEntry::Create(Device* device, Entry* parent,
const std::string& path) {
auto entry = new NullEntry(device, parent, path);
entry->create_timestamp_ = 0;
entry->access_timestamp_ = 0;
entry->write_timestamp_ = 0;
entry->attributes_ = kFileAttributeNormal;
entry->size_ = 0;
entry->allocation_size_ = 0;
return entry;
}
X_STATUS NullEntry::Open(uint32_t desired_access, File** out_file) {
if (is_read_only() && (desired_access & (FileAccess::kFileWriteData |
FileAccess::kFileAppendData))) {
XELOGE("Attempting to open file for write access on read-only device");
return X_STATUS_ACCESS_DENIED;
}
*out_file = new NullFile(desired_access, this);
return X_STATUS_SUCCESS;
}
bool NullEntry::DeleteEntryInternal(Entry* entry) { return false; }
} // namespace vfs
} // namespace xe