10#define KERNEL_REFCNT_H
12#include <kernel/atomic.h>
13#include <kernel/logger.h>
23static inline void refcnt_init(
refcnt_t *ref)
28#define REFCNT_INIT_STATIC() ((refcnt_t){.val = 1})
31static inline unsigned int refcnt_read(
refcnt_t *ref)
33 return atomic_read(ref);
37static inline unsigned int refcnt_get(
refcnt_t *ref)
46 refs = atomic_inc(ref);
56static inline unsigned int refcnt_put(
refcnt_t *ref)
58 return atomic_dec(ref) - 1;
An atomic value.
Definition: atomic.h:22