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.