Lines Matching refs:ref
24 static inline void rcuref_init(rcuref_t *ref, unsigned int cnt) in rcuref_init() argument
26 atomic_set(&ref->refcnt, cnt - 1); in rcuref_init()
35 static inline unsigned int rcuref_read(rcuref_t *ref) in rcuref_read() argument
37 unsigned int c = atomic_read(&ref->refcnt); in rcuref_read()
43 extern __must_check bool rcuref_get_slowpath(rcuref_t *ref);
61 static inline __must_check bool rcuref_get(rcuref_t *ref) in rcuref_get() argument
67 if (likely(!atomic_add_negative_relaxed(1, &ref->refcnt))) in rcuref_get()
71 return rcuref_get_slowpath(ref); in rcuref_get()
74 extern __must_check bool rcuref_put_slowpath(rcuref_t *ref);
79 static __always_inline __must_check bool __rcuref_put(rcuref_t *ref) in __rcuref_put() argument
87 if (likely(!atomic_add_negative_release(-1, &ref->refcnt))) in __rcuref_put()
94 return rcuref_put_slowpath(ref); in __rcuref_put()
119 static inline __must_check bool rcuref_put_rcusafe(rcuref_t *ref) in rcuref_put_rcusafe() argument
121 return __rcuref_put(ref); in rcuref_put_rcusafe()
145 static inline __must_check bool rcuref_put(rcuref_t *ref) in rcuref_put() argument
150 released = __rcuref_put(ref); in rcuref_put()