This breaks settings in games that are using them and savefiles in games that use settings to store progress
58 lines
1.8 KiB
C++
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
|