cc7449ccd6
compiled out when doing performance runs. - Bite the bullet and fully autoconfize the debug options in the configure time parameters. By default all the debug support is disable in the core SPL build, but available to modules which enable it when building against the SPL. To enable particular SPL debug support use the follow configure options: --enable-debug Internal ASSERTs --enable-debug-kmem Detailed memory accounting --enable-debug-mutex Detailed mutex tracking --enable-debug_kstat Kstat info exported to /proc --enable-debug-callb Additional callb debug git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@111 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
44 lines
939 B
C
44 lines
939 B
C
#ifndef _SPL_CALLB_H
|
|
#define _SPL_CALLB_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <linux/module.h>
|
|
#include <sys/mutex.h>
|
|
|
|
#ifdef DEBUG_CALLB
|
|
#define CALLB_CPR_ASSERT(cp) ASSERT(MUTEX_HELD((cp)->cc_lockp));
|
|
#else
|
|
#define CALLB_CPR_ASSERT(cp) (void)0
|
|
#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 */
|
|
|