kref.h 705 B

1234567891011121314151617181920212223242526272829303132
  1. /*
  2. * kref.c - library routines for handling generic reference counted objects
  3. *
  4. * Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com>
  5. * Copyright (C) 2004 IBM Corp.
  6. *
  7. * based on kobject.h which was:
  8. * Copyright (C) 2002-2003 Patrick Mochel <mochel@osdl.org>
  9. * Copyright (C) 2002-2003 Open Source Development Labs
  10. *
  11. * This file is released under the GPLv2.
  12. *
  13. */
  14. #ifndef _KREF_H_
  15. #define _KREF_H_
  16. #ifdef __KERNEL__
  17. #include <linux/types.h>
  18. #include <asm/atomic.h>
  19. struct kref {
  20. atomic_t refcount;
  21. };
  22. void kref_init(struct kref *kref);
  23. void kref_get(struct kref *kref);
  24. int kref_put(struct kref *kref, void (*release) (struct kref *kref));
  25. #endif /* __KERNEL__ */
  26. #endif /* _KREF_H_ */