Lines Matching full:reference
4 * rcuref - A scalable reference count implementation for RCU managed objects
6 * rcuref is provided to replace open coded reference count implementations
8 * be visible even after the last reference has been dropped and the object
43 * rcuref uses an unsigned integer reference counter. As long as the
45 * than RCUREF_MAXREF the reference is alive:
55 * If the reference count is saturated or dead, then the increments and
56 * decrements are not harmful as the reference count still stays in the
61 * Once the last reference is dropped the reference count becomes
63 * slowpath then tries to set the reference count from RCUREF_NOREF to
65 * concurrent rcuref_get() can acquire the reference count and bring it
66 * back to RCUREF_ONEREF or even drop the reference again and mark it DEAD.
69 * DEAD + 1, which is inside the dead zone. If that happens the reference
138 * The reference count has a saturation limit RCUREF_MAXREF (INT_MAX).
139 * Once this is exceedded the reference count becomes stale by setting it
147 * All reference count increment/decrement operations are unconditional and
161 * reference count on will provide the ordering. For locked data
166 * ensures that the object is not modified when acquiring a reference
173 * If rcuref_put() successfully dropped the last reference and marked the
182 * @ref: Pointer to the reference count
184 * Invoked when the reference count is outside of the valid zone.
187 * False if the reference count was already marked dead
189 * True if the reference count is saturated, which prevents the
197 * If the reference count was already marked dead, undo the in rcuref_get_slowpath()
210 * prevents the reference count from overflowing. This leaks the in rcuref_get_slowpath()
211 * object memory, but prevents the obvious reference count overflow in rcuref_get_slowpath()
222 * @ref: Pointer to the reference count
225 * Invoked when the reference count is outside of the valid zone.
228 * True if this was the last reference with no future references
230 * object, which is protected by the reference counter, for
239 /* Did this drop the last reference? */ in rcuref_put_slowpath()
242 * Carefully try to set the reference count to RCUREF_DEAD. in rcuref_put_slowpath()
262 * If the reference count was already in the dead zone, then this in rcuref_put_slowpath()
263 * put() operation is imbalanced. Warn, put the reference count back to in rcuref_put_slowpath()