X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu%2Furcu_ref.h;h=5579ca6c93caed06b69c6f35d31138d2e32fe650;hp=bce711619a8b77dfb5795e5aee8421964d6028ac;hb=b0a841b4ff807dd29fe0cdbfe24900312f0e627b;hpb=453629a9317adef5b96c3d55e4dcd98db680997a diff --git a/urcu/urcu_ref.h b/urcu/urcu_ref.h index bce7116..5579ca6 100644 --- a/urcu/urcu_ref.h +++ b/urcu/urcu_ref.h @@ -1,47 +1,2 @@ -#ifndef _URCU_REF_H -#define _URCU_REF_H - -/* - * Userspace RCU - Reference counting - * - * Copyright (C) 2009 Novell Inc. - * Copyright (C) 2010 Mathieu Desnoyers - * - * Author: Jan Blunck - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License version 2.1 as - * published by the Free Software Foundation. - */ - -#include -#include - -struct urcu_ref { - long refcount; /* ATOMIC */ -}; - -static inline void urcu_ref_set(struct urcu_ref *ref, long val) -{ - uatomic_set(&ref->refcount, val); -} - -static inline void urcu_ref_init(struct urcu_ref *ref) -{ - urcu_ref_set(ref, 1); -} - -static inline void urcu_ref_get(struct urcu_ref *ref) -{ - long res = uatomic_add_return(&ref->refcount, 1); - assert(res != 0); -} - -static inline void urcu_ref_put(struct urcu_ref *ref, - void (*release)(struct urcu_ref *)) -{ - if (!uatomic_sub_return(&ref->refcount, 1)) - release(ref); -} - -#endif /* _URCU_REF_H */ +#warning "urcu/urcu_ref.h is deprecated. Please include urcu/ref.h instead." +#include