#pragma once #include class KernelObject : public glcr::RefCounted { public: enum ObjectType { INVALID = 0x0, PROCESS = 0x1, THREAD = 0x2, ADDRESS_SPACE = 0x3, MEMORY_OBJECT = 0x4, CHANNEL = 0x5, PORT = 0x6, ENDPOINT = 0x7, REPLY_PORT = 0x8, }; virtual uint64_t TypeTag() = 0; }; template struct KernelObjectTag { static const int type = KernelObject::INVALID; };