diff options
author | Andrew Morton <akpm@linux-foundation.org> | 2008-07-25 01:45:24 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-25 10:53:26 -0700 |
commit | e0deaff470900a4c3222ca7139f6c9639e26a2f5 (patch) | |
tree | af18056ba150a3f4fd61f397c83699b2d6231cdc /include/linux/typecheck.h | |
parent | 5df439ef06d4173357711a04740aa8bfcf50d621 (diff) | |
download | linux-stable-e0deaff470900a4c3222ca7139f6c9639e26a2f5.tar.gz linux-stable-e0deaff470900a4c3222ca7139f6c9639e26a2f5.tar.bz2 linux-stable-e0deaff470900a4c3222ca7139f6c9639e26a2f5.zip |
split the typecheck macros out of include/linux/kernel.h
Needed to fix up a recursive include snafu in
locking-add-typecheck-on-irqsave-and-friends-for-correct-flags.patch
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/typecheck.h')
-rw-r--r-- | include/linux/typecheck.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/include/linux/typecheck.h b/include/linux/typecheck.h new file mode 100644 index 000000000000..eb5b74a575be --- /dev/null +++ b/include/linux/typecheck.h @@ -0,0 +1,24 @@ +#ifndef TYPECHECK_H_INCLUDED +#define TYPECHECK_H_INCLUDED + +/* + * Check at compile time that something is of a particular type. + * Always evaluates to 1 so you may use it easily in comparisons. + */ +#define typecheck(type,x) \ +({ type __dummy; \ + typeof(x) __dummy2; \ + (void)(&__dummy == &__dummy2); \ + 1; \ +}) + +/* + * Check at compile time that 'function' is a certain type, or is a pointer + * to that type (needs to use typedef for the function type.) + */ +#define typecheck_fn(type,function) \ +({ typeof(type) __tmp = function; \ + (void)__tmp; \ +}) + +#endif /* TYPECHECK_H_INCLUDED */ |