diff options
| author | Greg Kroah-Hartman <greg@kroah.com> | 2004-03-14 22:39:18 -0800 |
|---|---|---|
| committer | Greg Kroah-Hartman <greg@kroah.com> | 2004-03-14 22:39:18 -0800 |
| commit | 04e52ea83772c5e47c0f36328c10f21e744d57ba (patch) | |
| tree | fbdff73665d259e700925301d47a8503699b7ed2 /include/linux | |
| parent | a538fe37e9f04a5b9eebc3f22ce190717d854296 (diff) | |
kref: add kref structure to kernel tree.
Based on the kobject structure, but much smaller and simpler to use.
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/kref.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/include/linux/kref.h b/include/linux/kref.h new file mode 100644 index 000000000000..82284b7e730b --- /dev/null +++ b/include/linux/kref.h @@ -0,0 +1,32 @@ +/* + * kref.c - library routines for handling generic reference counted objects + * + * Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com> + * Copyright (C) 2004 IBM Corp. + * + * based on kobject.h which was: + * Copyright (C) 2002-2003 Patrick Mochel <mochel@osdl.org> + * Copyright (C) 2002-2003 Open Source Development Labs + * + * This file is released under the GPLv2. + * + */ + +#if defined(__KERNEL__) && !defined(_KREF_H_) +#define _KREF_H_ + +#include <linux/types.h> +#include <asm/atomic.h> + + +struct kref { + atomic_t refcount; + void (*release)(struct kref *kref); +}; + +void kref_init(struct kref *kref, void (*release)(struct kref *)); +struct kref *kref_get(struct kref *kref); +void kref_put(struct kref *kref); + + +#endif /* _KREF_H_ */ |
