kref.h 705 B

123456789101112131415161718192021222324252627282930
  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. #include <linux/types.h>
  17. #include <asm/atomic.h>
  18. struct kref {
  19. atomic_t refcount;
  20. };
  21. void kref_set(struct kref *kref, int num);
  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 /* _KREF_H_ */