Moving mmap to poly, cleaning up devices.

This commit is contained in:
Ben Vanik
2014-08-17 12:57:02 -07:00
parent 24fe169f36
commit 854bcdb60a
37 changed files with 568 additions and 653 deletions

View File

@@ -17,8 +17,8 @@ using namespace xe;
using namespace xe::kernel;
XFile::XFile(KernelState* kernel_state, uint32_t desired_access) :
desired_access_(desired_access), position_(0),
XFile::XFile(KernelState* kernel_state, fs::Mode mode) :
mode_(mode), position_(0),
XObject(kernel_state, kTypeFile) {
async_event_ = new XEvent(kernel_state);
async_event_->Initialize(false, false);

View File

@@ -149,13 +149,13 @@ public:
virtual void* GetWaitHandle();
protected:
XFile(KernelState* kernel_state, uint32_t desired_access);
XFile(KernelState* kernel_state, fs::Mode mode);
virtual X_STATUS ReadSync(
void* buffer, size_t buffer_length, size_t byte_offset,
size_t* out_bytes_read) = 0;
private:
uint32_t desired_access_;
fs::Mode mode_;
XEvent* async_event_;
// TODO(benvanik): create flags, open state, etc.

View File

@@ -50,7 +50,7 @@ X_STATUS XUserModule::LoadFromFile(const char* path) {
result = X_STATUS_NO_SUCH_FILE;
XEFAIL();
}
if (fs_entry->type() != fs::Entry::kTypeFile) {
if (fs_entry->type() != fs::Entry::Type::FILE) {
XELOGE("Invalid file type: %s", path);
result = X_STATUS_NO_SUCH_FILE;
XEFAIL();
@@ -59,7 +59,8 @@ X_STATUS XUserModule::LoadFromFile(const char* path) {
// If the FS supports mapping, map the file in and load from that.
if (fs_entry->can_map()) {
// Map.
fs::MemoryMapping* mmap = fs_entry->CreateMemoryMapping(kXEFileModeRead, 0, 0);
fs::MemoryMapping* mmap =
fs_entry->CreateMemoryMapping(fs::Mode::READ, 0, 0);
XEEXPECTNOTNULL(mmap);
// Load the module.
@@ -76,7 +77,7 @@ X_STATUS XUserModule::LoadFromFile(const char* path) {
buffer = (uint8_t*)xe_malloc(buffer_length);
// Open file for reading.
result = fs_entry->Open(kernel_state(), kXEFileModeRead, false, &file);
result = fs_entry->Open(kernel_state(), fs::Mode::READ, false, &file);
XEEXPECTZERO(result);
// Read entire file into memory.