Module kernel::object

source ·



Each kernel object is assigned a unique 64-bit ID, which is never reused. An ID of 0 is never allocated, and is used as a sentinel value.


A kernel object ID of 0 is reserved as a sentinel value that will never point to a real kernel object. It is used to mark things like the owner of a kernel object being the kernel itself.


The next available KernelObjectId. It is shared between all the CPUs, and so is incremented atomically.


This trait should be implemented by all types that implement kernel objects, and allows common code to be generic over all kernel objects. Kernel objects are generally handled as Arc<T> where T is the type implementing KernelObject, and so interior mutability should be used for data that needs to be mutable within the kernel object.