80
/*
* The UVM memory object interface. Notes:
*
* A UVM memory object represents a list of pages, which are managed by
* the object's pager operations (uvm_object::pgops). All pages belonging
* to an object are owned by it and thus protected by the object lock.
*
* The lock (uvm_object::vmobjlock) may be shared amongst the UVM objects.
* By default, the lock is allocated dynamically using mutex_obj(9) cache.
* Lock sharing is normally used when there is an underlying object. For
* example, vnode representing a file may have an underlying node, which
* is the case for tmpfs and layered file systems. In such case, vnode's
* UVM object and the underlying UVM object shares the lock (note that the
* vnode_t::v_interlock points to uvm_object::vmobjlock).
*
* The reference count is managed atomically for the anonymous UVM objects.
* For other objects, it is arbitrary (may use the lock or atomics).
*/