Subversion Repositories Kolibri OS

Rev

Rev 1970 | Rev 6082 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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.  
  15. #ifndef _KREF_H_
  16. #define _KREF_H_
  17.  
  18. #include <linux/bug.h>
  19. #include <linux/atomic.h>
  20. #include <linux/kernel.h>
  21. #include <linux/mutex.h>
  22. #include <linux/spinlock.h>
  23.  
  24. struct kref {
  25.         atomic_t refcount;
  26. };
  27.  
  28. void kref_init(struct kref *kref);
  29. void kref_get(struct kref *kref);
  30. int kref_put(struct kref *kref, void (*release) (struct kref *kref));
  31. int kref_sub(struct kref *kref, unsigned int count,
  32.              void (*release) (struct kref *kref));
  33.  
  34. #endif /* _KREF_H_ */
  35.