X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;ds=sidebyside;f=include%2Flttng%2Fref-internal.h;h=a02ae4cdc1229a627226e74991cebb49887b4820;hb=HEAD;hp=4ecb2e25ae8aba93c02d3ec59e34d76682ed69ac;hpb=8abe313a6c4f251063e4b72ddd47ce8107384d71;p=lttng-tools.git diff --git a/include/lttng/ref-internal.h b/include/lttng/ref-internal.h deleted file mode 100644 index 4ecb2e25a..000000000 --- a/include/lttng/ref-internal.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef LTTNG_REF_INTERNAL_H -#define LTTNG_REF_INTERNAL_H - -/* - * LTTng - Non thread-safe reference counting - * - * Copyright 2013, 2014 Jérémie Galarneau - * - * Author: Jérémie Galarneau - * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License, version 2.1 only, - * as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -typedef void (*lttng_release_func)(void *); - -struct lttng_ref { - unsigned long count; - lttng_release_func release; -}; - -static inline -void lttng_ref_init(struct lttng_ref *ref, lttng_release_func release) -{ - assert(ref); - ref->count = 1; - ref->release = release; -} - -static inline -void lttng_ref_get(struct lttng_ref *ref) -{ - assert(ref); - ref->count++; - /* Overflow check. */ - assert(ref->count); -} - -static inline -void lttng_ref_put(struct lttng_ref *ref) -{ - assert(ref); - /* Underflow check. */ - assert(ref->count); - if (caa_unlikely((--ref->count) == 0)) { - ref->release(ref); - } -} - -#endif /* LTTNG_REF_INTERNAL_H */