kref.h 734 B

123456789101112131415161718192021222324252627282930
  1. /*
  2. * kref.h - 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. struct kref {
  18. atomic_t refcount;
  19. };
  20. void kref_init(struct kref *kref);
  21. void kref_get(struct kref *kref);
  22. int kref_put(struct kref *kref, void (*release) (struct kref *kref));
  23. int kref_sub(struct kref *kref, unsigned int count,
  24. void (*release) (struct kref *kref));
  25. #endif /* _KREF_H_ */