diff options
author | behlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c> | 2008-03-01 00:45:59 +0000 |
---|---|---|
committer | behlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c> | 2008-03-01 00:45:59 +0000 |
commit | f4b377415b4b53722addedc10801db24ad4e6f23 (patch) | |
tree | be8f09aeabfeaf2361d8d84e975c49ec68d96483 /include/sys/callb.h | |
parent | 09b414e880b0c2e4ae08d82354bbae034dafdd9e (diff) |
Reorganize /include/ to add a /sys/, this way we don't need to
muck with #includes in existing Solaris style source to get it
to find the right stuff.
git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@18 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
Diffstat (limited to 'include/sys/callb.h')
-rw-r--r-- | include/sys/callb.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/include/sys/callb.h b/include/sys/callb.h new file mode 100644 index 000000000..053ddf500 --- /dev/null +++ b/include/sys/callb.h @@ -0,0 +1,46 @@ +#ifndef _SPL_CALLB_H +#define _SPL_CALLB_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <linux/module.h> +#include <sys/mutex.h> + +#define DEBUG_CALLB + +#ifndef DEBUG_CALLB +#define CALLB_CPR_ASSERT(cp) BUG_ON(!(MUTEX_HELD((cp)->cc_lockp))); +#else +#define CALLB_CPR_ASSERT(cp) +#endif + + +typedef struct callb_cpr { + kmutex_t *cc_lockp; +} callb_cpr_t; + +#define CALLB_CPR_INIT(cp, lockp, func, name) { \ + (cp)->cc_lockp = lockp; \ +} + +#define CALLB_CPR_SAFE_BEGIN(cp) { \ + CALLB_CPR_ASSERT(cp); \ +} + +#define CALLB_CPR_SAFE_END(cp, lockp) { \ + CALLB_CPR_ASSERT(cp); \ +} + +#define CALLB_CPR_EXIT(cp) { \ + ASSERT(MUTEX_HELD((cp)->cc_lockp)); \ + mutex_exit((cp)->cc_lockp); \ +} + +#ifdef __cplusplus +} +#endif + +#endif /* _SPL_CALLB_H */ + |