| FreeBSD ZFS The Zettabyte File System | 
#include <sys/cdefs.h>#include <sys/types.h>#include <sys/list.h>#include <sys/zfs_context.h>

Go to the source code of this file.
| Data Structures | |
| struct | refcount | 
| Defines | |
| #define | FTAG ((char *)__func__) | 
| If the reference is held only by the calling function and not any particular object, use FTAG (which is a string) for the holder_tag. | |
| #define | refcount_create(rc) ((rc)->rc_count = 0) | 
| #define | refcount_destroy(rc) ((rc)->rc_count = 0) | 
| #define | refcount_destroy_many(rc, number) ((rc)->rc_count = 0) | 
| #define | refcount_is_zero(rc) ((rc)->rc_count == 0) | 
| #define | refcount_count(rc) ((rc)->rc_count) | 
| #define | refcount_add(rc, holder) atomic_add_64_nv(&(rc)->rc_count, 1) | 
| #define | refcount_remove(rc, holder) atomic_add_64_nv(&(rc)->rc_count, -1) | 
| #define | refcount_add_many(rc, number, holder) atomic_add_64_nv(&(rc)->rc_count, number) | 
| #define | refcount_remove_many(rc, number, holder) atomic_add_64_nv(&(rc)->rc_count, -number) | 
| #define | refcount_transfer(dst, src) | 
| #define | refcount_sysinit() | 
| #define | refcount_fini() | 
| Typedefs | |
| typedef struct refcount | refcount_t | 
| #define FTAG ((char *)__func__) | 
If the reference is held only by the calling function and not any particular object, use FTAG (which is a string) for the holder_tag.
Otherwise, use the object that holds the reference.
Definition at line 43 of file refcount.h.
| #define refcount_add | ( | rc, | |
| holder | |||
| ) | atomic_add_64_nv(&(rc)->rc_count, 1) | 
Definition at line 86 of file refcount.h.
| #define refcount_add_many | ( | rc, | |
| number, | |||
| holder | |||
| ) | atomic_add_64_nv(&(rc)->rc_count, number) | 
Definition at line 88 of file refcount.h.
| #define refcount_count | ( | rc | ) | ((rc)->rc_count) | 
Definition at line 85 of file refcount.h.
| #define refcount_create | ( | rc | ) | ((rc)->rc_count = 0) | 
Definition at line 81 of file refcount.h.
| #define refcount_destroy | ( | rc | ) | ((rc)->rc_count = 0) | 
Definition at line 82 of file refcount.h.
| #define refcount_destroy_many | ( | rc, | |
| number | |||
| ) | ((rc)->rc_count = 0) | 
Definition at line 83 of file refcount.h.
| #define refcount_fini | ( | ) | 
Definition at line 99 of file refcount.h.
| #define refcount_is_zero | ( | rc | ) | ((rc)->rc_count == 0) | 
Definition at line 84 of file refcount.h.
| #define refcount_remove | ( | rc, | |
| holder | |||
| ) | atomic_add_64_nv(&(rc)->rc_count, -1) | 
Definition at line 87 of file refcount.h.
| #define refcount_remove_many | ( | rc, | |
| number, | |||
| holder | |||
| ) | atomic_add_64_nv(&(rc)->rc_count, -number) | 
Definition at line 90 of file refcount.h.
| #define refcount_sysinit | ( | ) | 
Definition at line 98 of file refcount.h.
| #define refcount_transfer | ( | dst, | |
| src | |||
| ) | 
{ \
        uint64_t __tmp = (src)->rc_count; \
        atomic_add_64(&(src)->rc_count, -__tmp); \
        atomic_add_64(&(dst)->rc_count, __tmp); \
}
Definition at line 92 of file refcount.h.
| typedef struct refcount refcount_t | 
 1.7.3
 1.7.3