Merge tag 'printk-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/printk...
[linux-block.git] / include / linux / refcount_types.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _LINUX_REFCOUNT_TYPES_H
3 #define _LINUX_REFCOUNT_TYPES_H
4
5 #include <linux/types.h>
6
7 /**
8  * typedef refcount_t - variant of atomic_t specialized for reference counts
9  * @refs: atomic_t counter field
10  *
11  * The counter saturates at REFCOUNT_SATURATED and will not move once
12  * there. This avoids wrapping the counter and causing 'spurious'
13  * use-after-free bugs.
14  */
15 typedef struct refcount_struct {
16         atomic_t refs;
17 } refcount_t;
18
19 #endif /* _LINUX_REFCOUNT_TYPES_H */