diff --git a/src/xenia/debug/ui/debug_window.cc b/src/xenia/debug/ui/debug_window.cc index 590a66062..967646f9c 100644 --- a/src/xenia/debug/ui/debug_window.cc +++ b/src/xenia/debug/ui/debug_window.cc @@ -1454,7 +1454,7 @@ void DebugWindow::UpdateCache() { // Fetch module listing. // We hold refs so that none are unloaded. cache_.modules = - object_table->GetObjectsByType(XObject::Type::kTypeModule); + object_table->GetObjectsByType(XObject::Type::Module); cache_.thread_debug_infos = processor_->QueryThreadDebugInfos(); diff --git a/src/xenia/emulator.cc b/src/xenia/emulator.cc index 2d3d1033e..7f62efc7c 100644 --- a/src/xenia/emulator.cc +++ b/src/xenia/emulator.cc @@ -358,7 +358,7 @@ void Emulator::Pause() { auto lock = global_critical_region::AcquireDirect(); auto threads = kernel_state()->object_table()->GetObjectsByType( - kernel::XObject::kTypeThread); + kernel::XObject::Type::Thread); auto current_thread = kernel::XThread::IsInThread() ? kernel::XThread::GetCurrentThread() : nullptr; @@ -388,7 +388,7 @@ void Emulator::Resume() { auto threads = kernel_state()->object_table()->GetObjectsByType( - kernel::XObject::kTypeThread); + kernel::XObject::Type::Thread); for (auto thread : threads) { if (!thread->can_debugger_suspend()) { // Don't pause host threads. diff --git a/src/xenia/kernel/kernel_state.cc b/src/xenia/kernel/kernel_state.cc index 8884d8efa..3d7df1824 100644 --- a/src/xenia/kernel/kernel_state.cc +++ b/src/xenia/kernel/kernel_state.cc @@ -763,13 +763,13 @@ bool KernelState::Save(ByteStream* stream) { for (auto object : objects) { auto prev_offset = stream->offset(); - if (object->is_host_object() || object->type() == XObject::kTypeThread) { + if (object->is_host_object() || object->type() == XObject::Type::Thread) { // Don't save host objects or save XThreads again num_objects--; continue; } - stream->Write(object->type()); + stream->Write(static_cast(object->type())); if (!object->Save(stream)) { XELOGD("Did not save object of type {}", object->type()); assert_always(); @@ -804,7 +804,7 @@ bool KernelState::Restore(ByteStream* stream) { uint32_t num_threads = stream->Read(); XELOGD("Loading {} threads...", num_threads); for (uint32_t i = 0; i < num_threads; i++) { - auto thread = XObject::Restore(this, XObject::kTypeThread, stream); + auto thread = XObject::Restore(this, XObject::Type::Thread, stream); if (!thread) { // Can't continue the restore or we risk misalignment. assert_always(); diff --git a/src/xenia/kernel/util/object_table.h b/src/xenia/kernel/util/object_table.h index 93c98111c..93306d942 100644 --- a/src/xenia/kernel/util/object_table.h +++ b/src/xenia/kernel/util/object_table.h @@ -51,7 +51,7 @@ class ObjectTable { object_ref LookupObject(X_HANDLE handle) { auto object = LookupObject(handle, false); if (object) { - assert_true(object->type() == T::kType); + assert_true(object->type() == T::kObjectType); } auto result = object_ref(reinterpret_cast(object)); return result; @@ -72,7 +72,7 @@ class ObjectTable { std::vector> GetObjectsByType() { std::vector> results; GetObjectsByType( - T::kType, + T::kObjectType, reinterpret_cast>*>(&results)); return results; } diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_io.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_io.cc index 814120140..6b0b6783b 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_io.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_io.cc @@ -131,7 +131,7 @@ dword_result_t NtCreateFile(lpdword_t handle_out, dword_t desired_access, auto root_file = kernel_state()->object_table()->LookupObject( object_attrs->root_directory); assert_not_null(root_file); - assert_true(root_file->type() == XObject::Type::kTypeFile); + assert_true(root_file->type() == XObject::Type::File); root_entry = root_file->entry(); } @@ -399,7 +399,7 @@ dword_result_t NtQueryFullAttributesFile( root_file = kernel_state()->object_table()->LookupObject( obj_attribs->root_directory); assert_not_null(root_file); - assert_true(root_file->type() == XObject::Type::kTypeFile); + assert_true(root_file->type() == XObject::Type::File); assert_always(); } diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_ob.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_ob.cc index dc4c67dc2..68564a055 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_ob.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_ob.cc @@ -78,22 +78,21 @@ DECLARE_XBOXKRNL_EXPORT1(ObLookupThreadByThreadId, kNone, kImplemented); dword_result_t ObReferenceObjectByHandle(dword_t handle, dword_t object_type_ptr, lpdword_t out_object_ptr) { - const static std::unordered_map obj_type_match = { - {XObject::kTypeEvent, 0xD00EBEEF}, - {XObject::kTypeSemaphore, 0xD017BEEF}, - {XObject::kTypeThread, 0xD01BBEEF}}; - + // These values come from how Xenia handles uninitialized kernel data exports. + // D###BEEF where ### is the ordinal. + const static std::unordered_map object_types = { + {XObject::Type::Event, 0xD00EBEEF}, + {XObject::Type::Semaphore, 0xD017BEEF}, + {XObject::Type::Thread, 0xD01BBEEF}}; auto object = kernel_state()->object_table()->LookupObject(handle); - if (!object) { return X_STATUS_INVALID_HANDLE; } uint32_t native_ptr = object->guest_object(); - auto obj_type = obj_type_match.find(object->type()); - - if (obj_type != obj_type_match.end()) { - if (object_type_ptr && object_type_ptr != obj_type->second) { + auto object_type = object_types.find(object->type()); + if (object_type != object_types.end()) { + if (object_type_ptr && object_type_ptr != object_type->second) { return X_STATUS_OBJECT_TYPE_MISMATCH; } } else { diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc index 1f0cd2cc2..bf399937e 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc @@ -432,7 +432,7 @@ dword_result_t NtCreateEvent(lpdword_t handle_ptr, auto existing_object = LookupNamedObject(kernel_state(), obj_attributes_ptr); if (existing_object) { - if (existing_object->type() == XObject::kTypeEvent) { + if (existing_object->type() == XObject::Type::Event) { if (handle_ptr) { existing_object->RetainHandle(); *handle_ptr = existing_object->handle(); @@ -559,7 +559,7 @@ dword_result_t NtCreateSemaphore(lpdword_t handle_ptr, auto existing_object = LookupNamedObject(kernel_state(), obj_attributes_ptr); if (existing_object) { - if (existing_object->type() == XObject::kTypeSemaphore) { + if (existing_object->type() == XObject::Type::Semaphore) { if (handle_ptr) { existing_object->RetainHandle(); *handle_ptr = existing_object->handle(); @@ -613,7 +613,7 @@ dword_result_t NtCreateMutant(lpdword_t handle_out, auto existing_object = LookupNamedObject( kernel_state(), obj_attributes.guest_address()); if (existing_object) { - if (existing_object->type() == XObject::kTypeMutant) { + if (existing_object->type() == XObject::Type::Mutant) { if (handle_out) { existing_object->RetainHandle(); *handle_out = existing_object->handle(); @@ -674,7 +674,7 @@ dword_result_t NtCreateTimer(lpdword_t handle_ptr, lpvoid_t obj_attributes_ptr, auto existing_object = LookupNamedObject(kernel_state(), obj_attributes_ptr); if (existing_object) { - if (existing_object->type() == XObject::kTypeTimer) { + if (existing_object->type() == XObject::Type::Timer) { if (handle_ptr) { existing_object->RetainHandle(); *handle_ptr = existing_object->handle(); diff --git a/src/xenia/kernel/xenumerator.cc b/src/xenia/kernel/xenumerator.cc index 03f324dc1..5de0a3d12 100644 --- a/src/xenia/kernel/xenumerator.cc +++ b/src/xenia/kernel/xenumerator.cc @@ -14,7 +14,7 @@ namespace kernel { XEnumerator::XEnumerator(KernelState* kernel_state, size_t items_per_enumerate, size_t item_size) - : XObject(kernel_state, kType), + : XObject(kernel_state, kObjectType), items_per_enumerate_(items_per_enumerate), item_size_(item_size) {} diff --git a/src/xenia/kernel/xenumerator.h b/src/xenia/kernel/xenumerator.h index e52048dd8..189453813 100644 --- a/src/xenia/kernel/xenumerator.h +++ b/src/xenia/kernel/xenumerator.h @@ -21,7 +21,7 @@ namespace kernel { class XEnumerator : public XObject { public: - static const Type kType = kTypeEnumerator; + static const XObject::Type kObjectType = XObject::Type::Enumerator; XEnumerator(KernelState* kernel_state, size_t items_per_enumerate, size_t item_size); diff --git a/src/xenia/kernel/xevent.cc b/src/xenia/kernel/xevent.cc index 04efadfee..f46fdb5fb 100644 --- a/src/xenia/kernel/xevent.cc +++ b/src/xenia/kernel/xevent.cc @@ -15,7 +15,8 @@ namespace xe { namespace kernel { -XEvent::XEvent(KernelState* kernel_state) : XObject(kernel_state, kType) {} +XEvent::XEvent(KernelState* kernel_state) + : XObject(kernel_state, kObjectType) {} XEvent::~XEvent() = default; diff --git a/src/xenia/kernel/xevent.h b/src/xenia/kernel/xevent.h index 95ea8613f..b5f4accf5 100644 --- a/src/xenia/kernel/xevent.h +++ b/src/xenia/kernel/xevent.h @@ -25,7 +25,7 @@ static_assert_size(X_KEVENT, 0x10); class XEvent : public XObject { public: - static const Type kType = kTypeEvent; + static const XObject::Type kObjectType = XObject::Type::Event; explicit XEvent(KernelState* kernel_state); ~XEvent() override; diff --git a/src/xenia/kernel/xfile.cc b/src/xenia/kernel/xfile.cc index c60a6615c..ee749b9e7 100644 --- a/src/xenia/kernel/xfile.cc +++ b/src/xenia/kernel/xfile.cc @@ -22,11 +22,13 @@ namespace xe { namespace kernel { XFile::XFile(KernelState* kernel_state, vfs::File* file, bool synchronous) - : XObject(kernel_state, kType), file_(file), is_synchronous_(synchronous) { + : XObject(kernel_state, kObjectType), + file_(file), + is_synchronous_(synchronous) { async_event_ = threading::Event::CreateAutoResetEvent(false); } -XFile::XFile() : XObject(kType) { +XFile::XFile() : XObject(kObjectType) { async_event_ = threading::Event::CreateAutoResetEvent(false); } diff --git a/src/xenia/kernel/xfile.h b/src/xenia/kernel/xfile.h index d7e668ce7..b432b69d5 100644 --- a/src/xenia/kernel/xfile.h +++ b/src/xenia/kernel/xfile.h @@ -75,7 +75,7 @@ class X_FILE_DIRECTORY_INFORMATION { class XFile : public XObject { public: - static const Type kType = kTypeFile; + static const XObject::Type kObjectType = XObject::Type::File; XFile(KernelState* kernel_state, vfs::File* file, bool synchronous); ~XFile() override; diff --git a/src/xenia/kernel/xiocompletion.cc b/src/xenia/kernel/xiocompletion.cc index 829163b43..638a0a3ef 100644 --- a/src/xenia/kernel/xiocompletion.cc +++ b/src/xenia/kernel/xiocompletion.cc @@ -13,7 +13,7 @@ namespace xe { namespace kernel { XIOCompletion::XIOCompletion(KernelState* kernel_state) - : XObject(kernel_state, kType) { + : XObject(kernel_state, kObjectType) { notification_semaphore_ = threading::Semaphore::Create(0, kMaxNotifications); } diff --git a/src/xenia/kernel/xiocompletion.h b/src/xenia/kernel/xiocompletion.h index f974ee4ee..a7d34889d 100644 --- a/src/xenia/kernel/xiocompletion.h +++ b/src/xenia/kernel/xiocompletion.h @@ -21,7 +21,7 @@ namespace kernel { class XIOCompletion : public XObject { public: - static const Type kType = kTypeIOCompletion; + static const XObject::Type kObjectType = XObject::Type::IOCompletion; explicit XIOCompletion(KernelState* kernel_state); ~XIOCompletion() override; diff --git a/src/xenia/kernel/xmodule.cc b/src/xenia/kernel/xmodule.cc index 26191c193..06510cfee 100644 --- a/src/xenia/kernel/xmodule.cc +++ b/src/xenia/kernel/xmodule.cc @@ -19,7 +19,7 @@ namespace xe { namespace kernel { XModule::XModule(KernelState* kernel_state, ModuleType module_type) - : XObject(kernel_state, kType), + : XObject(kernel_state, kObjectType), module_type_(module_type), processor_module_(nullptr), hmodule_ptr_(0) { diff --git a/src/xenia/kernel/xmodule.h b/src/xenia/kernel/xmodule.h index 2fbd6b9d5..8b558681a 100644 --- a/src/xenia/kernel/xmodule.h +++ b/src/xenia/kernel/xmodule.h @@ -57,7 +57,7 @@ class XModule : public XObject { kUserModule = 1, }; - static const Type kType = kTypeModule; + static const XObject::Type kObjectType = XObject::Type::Module; XModule(KernelState* kernel_state, ModuleType module_type); virtual ~XModule(); diff --git a/src/xenia/kernel/xmutant.cc b/src/xenia/kernel/xmutant.cc index a64c8d76f..4328fc342 100644 --- a/src/xenia/kernel/xmutant.cc +++ b/src/xenia/kernel/xmutant.cc @@ -17,9 +17,10 @@ namespace xe { namespace kernel { -XMutant::XMutant() : XObject(kType) {} +XMutant::XMutant(KernelState* kernel_state) + : XObject(kernel_state, kObjectType) {} -XMutant::XMutant(KernelState* kernel_state) : XObject(kernel_state, kType) {} +XMutant::XMutant() : XObject(kObjectType) {} XMutant::~XMutant() = default; diff --git a/src/xenia/kernel/xmutant.h b/src/xenia/kernel/xmutant.h index e3b9cad22..5dddf905b 100644 --- a/src/xenia/kernel/xmutant.h +++ b/src/xenia/kernel/xmutant.h @@ -20,7 +20,7 @@ class XThread; class XMutant : public XObject { public: - static const Type kType = kTypeMutant; + static const XObject::Type kObjectType = XObject::Type::Mutant; explicit XMutant(KernelState* kernel_state); ~XMutant() override; diff --git a/src/xenia/kernel/xnotifylistener.cc b/src/xenia/kernel/xnotifylistener.cc index 0770bd2d8..be920f157 100644 --- a/src/xenia/kernel/xnotifylistener.cc +++ b/src/xenia/kernel/xnotifylistener.cc @@ -16,7 +16,7 @@ namespace xe { namespace kernel { XNotifyListener::XNotifyListener(KernelState* kernel_state) - : XObject(kernel_state, kType) {} + : XObject(kernel_state, kObjectType) {} XNotifyListener::~XNotifyListener() {} diff --git a/src/xenia/kernel/xnotifylistener.h b/src/xenia/kernel/xnotifylistener.h index 800fa047d..38c19b63b 100644 --- a/src/xenia/kernel/xnotifylistener.h +++ b/src/xenia/kernel/xnotifylistener.h @@ -23,7 +23,7 @@ namespace kernel { class XNotifyListener : public XObject { public: - static const Type kType = kTypeNotifyListener; + static const XObject::Type kObjectType = XObject::Type::NotifyListener; explicit XNotifyListener(KernelState* kernel_state); ~XNotifyListener() override; diff --git a/src/xenia/kernel/xobject.cc b/src/xenia/kernel/xobject.cc index 2b90b88f1..3675a1bce 100644 --- a/src/xenia/kernel/xobject.cc +++ b/src/xenia/kernel/xobject.cc @@ -129,33 +129,33 @@ bool XObject::RestoreObject(ByteStream* stream) { object_ref XObject::Restore(KernelState* kernel_state, Type type, ByteStream* stream) { switch (type) { - case kTypeEnumerator: + case Type::Enumerator: break; - case kTypeEvent: + case Type::Event: return XEvent::Restore(kernel_state, stream); - case kTypeFile: + case Type::File: return XFile::Restore(kernel_state, stream); - case kTypeIOCompletion: + case Type::IOCompletion: break; - case kTypeModule: + case Type::Module: return XModule::Restore(kernel_state, stream); - case kTypeMutant: + case Type::Mutant: return XMutant::Restore(kernel_state, stream); - case kTypeNotifyListener: + case Type::NotifyListener: return XNotifyListener::Restore(kernel_state, stream); - case kTypeSemaphore: + case Type::Semaphore: return XSemaphore::Restore(kernel_state, stream); - case kTypeSession: + case Type::Session: break; - case kTypeSocket: + case Type::Socket: break; - case kTypeSymbolicLink: + case Type::SymbolicLink: return XSymbolicLink::Restore(kernel_state, stream); - case kTypeThread: + case Type::Thread: return XThread::Restore(kernel_state, stream); - case kTypeTimer: + case Type::Timer: break; - case kTypeUndefined: + case Type::Undefined: break; } diff --git a/src/xenia/kernel/xobject.h b/src/xenia/kernel/xobject.h index af07a790b..163b6afe4 100644 --- a/src/xenia/kernel/xobject.h +++ b/src/xenia/kernel/xobject.h @@ -116,21 +116,21 @@ class XObject { // one with 0x8A... which causes crash static constexpr uint32_t kHandleBase = 0xF8000000; - enum Type { - kTypeUndefined, - kTypeEnumerator, - kTypeEvent, - kTypeFile, - kTypeIOCompletion, - kTypeModule, - kTypeMutant, - kTypeNotifyListener, - kTypeSemaphore, - kTypeSession, - kTypeSocket, - kTypeSymbolicLink, - kTypeThread, - kTypeTimer, + enum class Type : uint32_t { + Undefined, + Enumerator, + Event, + File, + IOCompletion, + Module, + Mutant, + NotifyListener, + Semaphore, + Session, + Socket, + SymbolicLink, + Thread, + Timer, }; XObject(Type type); diff --git a/src/xenia/kernel/xsemaphore.cc b/src/xenia/kernel/xsemaphore.cc index 74bf3e7e6..a582fe6d6 100644 --- a/src/xenia/kernel/xsemaphore.cc +++ b/src/xenia/kernel/xsemaphore.cc @@ -16,7 +16,7 @@ namespace xe { namespace kernel { XSemaphore::XSemaphore(KernelState* kernel_state) - : XObject(kernel_state, kTypeSemaphore) {} + : XObject(kernel_state, kObjectType) {} XSemaphore::~XSemaphore() = default; diff --git a/src/xenia/kernel/xsemaphore.h b/src/xenia/kernel/xsemaphore.h index 42ae7ee26..b9e78a0b1 100644 --- a/src/xenia/kernel/xsemaphore.h +++ b/src/xenia/kernel/xsemaphore.h @@ -25,7 +25,7 @@ static_assert_size(X_KSEMAPHORE, 0x14); class XSemaphore : public XObject { public: - static const Type kType = kTypeSemaphore; + static const XObject::Type kObjectType = XObject::Type::Semaphore; explicit XSemaphore(KernelState* kernel_state); ~XSemaphore() override; diff --git a/src/xenia/kernel/xsocket.cc b/src/xenia/kernel/xsocket.cc index ad35ff69a..ea15734e7 100644 --- a/src/xenia/kernel/xsocket.cc +++ b/src/xenia/kernel/xsocket.cc @@ -31,10 +31,11 @@ namespace xe { namespace kernel { -XSocket::XSocket(KernelState* kernel_state) : XObject(kernel_state, kType) {} +XSocket::XSocket(KernelState* kernel_state) + : XObject(kernel_state, kObjectType) {} XSocket::XSocket(KernelState* kernel_state, uint64_t native_handle) - : XObject(kernel_state, kType), native_handle_(native_handle) {} + : XObject(kernel_state, kObjectType), native_handle_(native_handle) {} XSocket::~XSocket() { Close(); } diff --git a/src/xenia/kernel/xsocket.h b/src/xenia/kernel/xsocket.h index 3c85a6c89..8c5103ec9 100644 --- a/src/xenia/kernel/xsocket.h +++ b/src/xenia/kernel/xsocket.h @@ -66,7 +66,7 @@ struct N_XSOCKADDR_IN { class XSocket : public XObject { public: - static const Type kType = kTypeSocket; + static const XObject::Type kObjectType = XObject::Type::Socket; enum AddressFamily { AF_INET = 2, diff --git a/src/xenia/kernel/xsymboliclink.cc b/src/xenia/kernel/xsymboliclink.cc index 557a4a3c1..0d0a2ad43 100644 --- a/src/xenia/kernel/xsymboliclink.cc +++ b/src/xenia/kernel/xsymboliclink.cc @@ -16,9 +16,9 @@ namespace xe { namespace kernel { XSymbolicLink::XSymbolicLink(KernelState* kernel_state) - : XObject(kernel_state, kType), path_(), target_() {} + : XObject(kernel_state, kObjectType), path_(), target_() {} -XSymbolicLink::XSymbolicLink() : XObject(kType), path_(), target_() {} +XSymbolicLink::XSymbolicLink() : XObject(kObjectType), path_(), target_() {} XSymbolicLink::~XSymbolicLink() {} diff --git a/src/xenia/kernel/xsymboliclink.h b/src/xenia/kernel/xsymboliclink.h index 2d37dfd72..12e339250 100644 --- a/src/xenia/kernel/xsymboliclink.h +++ b/src/xenia/kernel/xsymboliclink.h @@ -23,7 +23,7 @@ namespace kernel { class XSymbolicLink : public XObject { public: - static const Type kType = kTypeSymbolicLink; + static const XObject::Type kObjectType = XObject::Type::SymbolicLink; explicit XSymbolicLink(KernelState* kernel_state); ~XSymbolicLink() override; diff --git a/src/xenia/kernel/xthread.cc b/src/xenia/kernel/xthread.cc index 34a95dd7c..baa014b01 100644 --- a/src/xenia/kernel/xthread.cc +++ b/src/xenia/kernel/xthread.cc @@ -48,13 +48,13 @@ using xe::cpu::ppc::PPCOpcode; uint32_t next_xthread_id_ = 0; XThread::XThread(KernelState* kernel_state) - : XObject(kernel_state, kType), guest_thread_(true) {} + : XObject(kernel_state, kObjectType), guest_thread_(true) {} XThread::XThread(KernelState* kernel_state, uint32_t stack_size, uint32_t xapi_thread_startup, uint32_t start_address, uint32_t start_context, uint32_t creation_flags, bool guest_thread, bool main_thread) - : XObject(kernel_state, kType), + : XObject(kernel_state, kObjectType), thread_id_(++next_xthread_id_), guest_thread_(guest_thread), main_thread_(main_thread), diff --git a/src/xenia/kernel/xthread.h b/src/xenia/kernel/xthread.h index 7ab55c686..ec0fe41ef 100644 --- a/src/xenia/kernel/xthread.h +++ b/src/xenia/kernel/xthread.h @@ -106,7 +106,7 @@ static_assert_size(X_KTHREAD, 0xAB0); class XThread : public XObject, public cpu::Thread { public: - static const Type kType = kTypeThread; + static const XObject::Type kObjectType = XObject::Type::Thread; struct CreationParams { uint32_t stack_size; diff --git a/src/xenia/kernel/xtimer.cc b/src/xenia/kernel/xtimer.cc index df8bda2e2..fe66a73b7 100644 --- a/src/xenia/kernel/xtimer.cc +++ b/src/xenia/kernel/xtimer.cc @@ -17,7 +17,8 @@ namespace xe { namespace kernel { -XTimer::XTimer(KernelState* kernel_state) : XObject(kernel_state, kType) {} +XTimer::XTimer(KernelState* kernel_state) + : XObject(kernel_state, kObjectType) {} XTimer::~XTimer() = default; diff --git a/src/xenia/kernel/xtimer.h b/src/xenia/kernel/xtimer.h index 15ec47cca..0a3dee618 100644 --- a/src/xenia/kernel/xtimer.h +++ b/src/xenia/kernel/xtimer.h @@ -21,7 +21,7 @@ class XThread; class XTimer : public XObject { public: - static const Type kType = kTypeTimer; + static const XObject::Type kObjectType = XObject::Type::Timer; explicit XTimer(KernelState* kernel_state); ~XTimer() override;