/** * PROJECT: ExectOS * COPYRIGHT: See COPYING.md in the top level directory * FILE: xtoskrnl/ob/data.cc * DESCRIPTION: Object Manager global and static data * DEVELOPERS: Aiken Harris */ #include /* Synchronizes shared read and exclusive write access to system device map structures */ KPUSH_LOCK OB::DeviceMap::DeviceMapLock; /* Pointer to the system device map */ PDEVICE_MAP OB::DeviceMap::SystemDeviceMap = NULLPTR; /* Indicates whether the system employs unique device maps */ BOOLEAN OB::DeviceMap::UniqueDeviceMaps; /* The list head for all active handle tables in the system */ LIST_ENTRY OB::HandleTable::HandleTableListHead; /* Pushlock used to synchronize access to the handle table list */ KPUSH_LOCK OB::HandleTable::HandleTableListLock; /* Pointer to the system-wide kernel handle table */ PHANDLE_TABLE OB::LifeCycle::KernelHandleTable; /* System work queue item responsible for scheduling the deferred object deletion */ WORK_QUEUE_ITEM OB::LifeCycle::RemoveObjectWorkItem; /* The list head for tracking objects that have been marked for deferred deletion */ PVOID OB::LifeCycle::RemoveObjectList; /* General lookaside list used for allocation and deallocation of OBJECT_CREATE_INFORMATION structures */ GENERAL_LOOKASIDE OB::Manager::CreateInfoList; /* General lookaside list used for allocation and deallocation buffers for Unicode object names */ GENERAL_LOOKASIDE OB::Manager::NameBufferList; /* Default kernel event utilized by the Object Manager */ KEVENT OB::TypeRegistry::DefaultEvent; /* Fundamental Type object type */ POBJECT_TYPE OB::TypeRegistry::MasterObjectType; /* Points to the Object Types directory */ POBJECT_DIRECTORY OB::TypeRegistry::ObjectTypeDirectory; /* Index-based lookup for all registered object types */ POBJECT_TYPE OB::TypeRegistry::ObjectTypesTable[OBJECT_MAX_DEFINED_OBJECT_TYPES];