|
@@ -5,6 +5,8 @@
|
|
|
* syscall compatibility layer.
|
|
|
*/
|
|
|
|
|
|
+#include <linux/types.h>
|
|
|
+
|
|
|
#ifdef CONFIG_COMPAT
|
|
|
|
|
|
#include <linux/stat.h>
|
|
@@ -719,9 +721,22 @@ asmlinkage long compat_sys_sched_rr_get_interval(compat_pid_t pid,
|
|
|
|
|
|
asmlinkage long compat_sys_fanotify_mark(int, unsigned int, __u32, __u32,
|
|
|
int, const char __user *);
|
|
|
+
|
|
|
+/*
|
|
|
+ * For most but not all architectures, "am I in a compat syscall?" and
|
|
|
+ * "am I a compat task?" are the same question. For architectures on which
|
|
|
+ * they aren't the same question, arch code can override in_compat_syscall.
|
|
|
+ */
|
|
|
+
|
|
|
+#ifndef in_compat_syscall
|
|
|
+static inline bool in_compat_syscall(void) { return is_compat_task(); }
|
|
|
+#endif
|
|
|
+
|
|
|
#else
|
|
|
|
|
|
#define is_compat_task() (0)
|
|
|
+static inline bool in_compat_syscall(void) { return false; }
|
|
|
|
|
|
#endif /* CONFIG_COMPAT */
|
|
|
+
|
|
|
#endif /* _LINUX_COMPAT_H */
|