Home | History | Annotate | Download | only in internal

Lines Matching refs:refcnt

39 static inline int CRYPTO_UP_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
41 *ret = atomic_fetch_add_explicit(&refcnt->val, 1, memory_order_relaxed) + 1;
55 static inline int CRYPTO_DOWN_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
62 *ret = atomic_fetch_sub_explicit(&refcnt->val, 1, memory_order_acq_rel) - 1;
64 *ret = atomic_fetch_sub_explicit(&refcnt->val, 1, memory_order_release) - 1;
71 static inline int CRYPTO_GET_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
73 *ret = atomic_load_explicit(&refcnt->val, memory_order_acquire);
85 static __inline__ int CRYPTO_UP_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
87 *ret = __atomic_fetch_add(&refcnt->val, 1, __ATOMIC_RELAXED) + 1;
91 static __inline__ int CRYPTO_DOWN_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
93 *ret = __atomic_fetch_sub(&refcnt->val, 1, __ATOMIC_RELEASE) - 1;
99 static __inline__ int CRYPTO_GET_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
101 *ret = __atomic_load_n(&refcnt->val, __ATOMIC_RELAXED);
112 static __inline int CRYPTO_UP_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
114 *ret = _InterlockedExchangeAdd((void *)&refcnt->val, 1) + 1;
118 static __inline int CRYPTO_DOWN_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
120 *ret = _InterlockedExchangeAdd((void *)&refcnt->val, -1) - 1;
124 static __inline int CRYPTO_GET_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
126 *ret = _InterlockedExchangeAdd((void *)&refcnt->val, 0);
144 static __inline int CRYPTO_UP_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
146 *ret = _InterlockedExchangeAdd_nf(&refcnt->val, 1) + 1;
150 static __inline int CRYPTO_DOWN_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
152 *ret = _InterlockedExchangeAdd(&refcnt->val, -1) - 1;
156 static __inline int CRYPTO_GET_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
158 *ret = _InterlockedExchangeAdd_acq((void *)&refcnt->val, 0);
175 static __inline int CRYPTO_UP_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
177 *ret = _InterlockedExchangeAdd(&refcnt->val, 1) + 1;
181 static __inline int CRYPTO_DOWN_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
183 *ret = _InterlockedExchangeAdd(&refcnt->val, -1) - 1;
187 static __inline int CRYPTO_GET_REF(CRYPTO_REF_COUNT *refcnt, int *ret)
189 *ret = _InterlockedExchangeAdd(&refcnt->val, 0);
214 static ossl_unused ossl_inline int CRYPTO_UP_REF(CRYPTO_REF_COUNT *refcnt,
217 return CRYPTO_atomic_add(&refcnt->val, 1, ret, refcnt->lock);
220 static ossl_unused ossl_inline int CRYPTO_DOWN_REF(CRYPTO_REF_COUNT *refcnt,
223 return CRYPTO_atomic_add(&refcnt->val, -1, ret, refcnt->lock);
226 static ossl_unused ossl_inline int CRYPTO_GET_REF(CRYPTO_REF_COUNT *refcnt,
229 return CRYPTO_atomic_load_int(&refcnt->val, ret, refcnt->lock);
233 static ossl_unused ossl_inline int CRYPTO_NEW_REF(CRYPTO_REF_COUNT *refcnt, int n)
235 refcnt->val = n;
236 refcnt->lock = CRYPTO_THREAD_lock_new();
237 if (refcnt->lock == NULL) {
244 static ossl_unused ossl_inline void CRYPTO_FREE_REF(CRYPTO_REF_COUNT *refcnt)
246 if (refcnt != NULL)
247 CRYPTO_THREAD_lock_free(refcnt->lock);
252 static ossl_unused ossl_inline int CRYPTO_UP_REF(CRYPTO_REF_COUNT *refcnt,
255 refcnt->val++;
256 *ret = refcnt->val;
260 static ossl_unused ossl_inline int CRYPTO_DOWN_REF(CRYPTO_REF_COUNT *refcnt,
263 refcnt->val--;
264 *ret = refcnt->val;
268 static ossl_unused ossl_inline int CRYPTO_GET_REF(CRYPTO_REF_COUNT *refcnt,
271 *ret = refcnt->val;
279 static ossl_unused ossl_inline int CRYPTO_NEW_REF(CRYPTO_REF_COUNT *refcnt, int n)
281 refcnt->val = n;
285 static ossl_unused ossl_inline void CRYPTO_FREE_REF(CRYPTO_REF_COUNT *refcnt)