Switching over kernel objects to the platform-agnostic APIs.

Possibly some regressions here.
This commit is contained in:
Ben Vanik
2015-07-14 22:44:45 -07:00
parent bd058feb39
commit 345fe60da0
18 changed files with 491 additions and 356 deletions

View File

@@ -11,6 +11,7 @@
#define XENIA_KERNEL_XBOXKRNL_XFILE_H_
#include "xenia/base/filesystem.h"
#include "xenia/kernel/objects/xevent.h"
#include "xenia/kernel/xobject.h"
#include "xenia/vfs/device.h"
#include "xenia/vfs/entry.h"
@@ -21,7 +22,6 @@ namespace xe {
namespace kernel {
class XAsyncRequest;
class XEvent;
// https://msdn.microsoft.com/en-us/library/windows/hardware/ff545822.aspx
struct X_FILE_NETWORK_OPEN_INFORMATION {
@@ -100,7 +100,9 @@ class XFile : public XObject {
X_STATUS Write(const void* buffer, size_t buffer_length, size_t byte_offset,
size_t* out_bytes_written);
virtual void* GetWaitHandle();
xe::threading::WaitHandle* GetWaitHandle() override {
return async_event_->GetWaitHandle();
}
protected:
XFile(KernelState* kernel_state, uint32_t file_access, vfs::Entry* entry);
@@ -112,16 +114,16 @@ class XFile : public XObject {
}
private:
vfs::Entry* entry_;
uint32_t file_access_;
XEvent* async_event_;
vfs::Entry* entry_ = nullptr;
uint32_t file_access_ = 0;
XEvent* async_event_ = nullptr;
// TODO(benvanik): create flags, open state, etc.
size_t position_;
size_t position_ = 0;
xe::filesystem::WildcardEngine find_engine_;
size_t find_index_;
size_t find_index_ = 0;
};
} // namespace kernel