]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/linkage.h
Merge branch 'master' into for_mm
[linux-2.6-omap-h63xx.git] / include / linux / linkage.h
index fe2a39c489b6735f396d5f661c4b0c1781f2c230..2119610b24f812fe1c80a6f806c679af11d56ab9 100644 (file)
 # define asmregparm
 #endif
 
+/*
+ * This is used by architectures to keep arguments on the stack
+ * untouched by the compiler by keeping them live until the end.
+ * The argument stack may be owned by the assembly-language
+ * caller, not the callee, and gcc doesn't always understand
+ * that.
+ *
+ * We have the return value, and a maximum of six arguments.
+ *
+ * This should always be followed by a "return ret" for the
+ * protection to work (ie no more work that the compiler might
+ * end up needing stack temporaries for).
+ */
+/* Assembly files may be compiled with -traditional .. */
+#ifndef __ASSEMBLY__
 #ifndef asmlinkage_protect
 # define asmlinkage_protect(n, ret, args...)   do { } while (0)
 #endif
+#endif
 
 #ifndef __ALIGN
 #define __ALIGN                .align 4,0x90