summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRusty Russell2009-06-13 05:46:56 +0200
committerRusty Russell2009-06-12 14:16:57 +0200
commitd2c123c27db841c6c11a63de9c144823d2b1ba76 (patch)
treeee9de1ca10681c1f632020783e8a31ec61f35c4e /include
parentmodule_param: split perm field into flags and perm (diff)
downloadkernel-qcow2-linux-d2c123c27db841c6c11a63de9c144823d2b1ba76.tar.gz
kernel-qcow2-linux-d2c123c27db841c6c11a63de9c144823d2b1ba76.tar.xz
kernel-qcow2-linux-d2c123c27db841c6c11a63de9c144823d2b1ba76.zip
module_param: add __same_type convenience wrapper for __builtin_types_compatible_p
Impact: new API __builtin_types_compatible_p() is a little awkward to use: it takes two types rather than types or variables, and it's just damn long. (typeof(type) == type, so this works on types as well as vars). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'include')
-rw-r--r--include/linux/compiler.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/compiler.h b/include/linux/compiler.h
index 37bcb50a4d7c..04fb5135b4e1 100644
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -261,6 +261,11 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
# define __section(S) __attribute__ ((__section__(#S)))
#endif
+/* Are two types/vars the same type (ignoring qualifiers)? */
+#ifndef __same_type
+# define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
+#endif
+
/*
* Prevent the compiler from merging or refetching accesses. The compiler
* is also forbidden from reordering successive instances of ACCESS_ONCE(),