diff options
author | Jan Beulich <jbeulich@novell.com> | 2006-03-24 03:16:17 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-24 07:33:25 -0800 |
commit | ab7efcc97ebc92e03c0474dfd38f9c7b84b84115 (patch) | |
tree | b0eb6b9abce5c47af9c61b606f37ec1c4d247e65 | |
parent | 09fe316a7b10219be592118626850e1dfdfcc1aa (diff) | |
download | linux-3.10-ab7efcc97ebc92e03c0474dfd38f9c7b84b84115.tar.gz linux-3.10-ab7efcc97ebc92e03c0474dfd38f9c7b84b84115.tar.bz2 linux-3.10-ab7efcc97ebc92e03c0474dfd38f9c7b84b84115.zip |
[PATCH] abstract type/size specification for assembly
Provide abstraction for generating type and size information of assembly
routines and data, while permitting architectures to override these
defaults.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Cc: "Russell King" <rmk@arm.linux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: "Andi Kleen" <ak@suse.de>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Miles Bader <uclinux-v850@lsi.nec.co.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | include/asm-ia64/linkage.h | 8 | ||||
-rw-r--r-- | include/asm-mips/linkage.h | 4 | ||||
-rw-r--r-- | include/asm-v850/linkage.h | 4 | ||||
-rw-r--r-- | include/linux/linkage.h | 16 |
4 files changed, 27 insertions, 5 deletions
diff --git a/include/asm-ia64/linkage.h b/include/asm-ia64/linkage.h index 14cd72cd800..ef22a45c189 100644 --- a/include/asm-ia64/linkage.h +++ b/include/asm-ia64/linkage.h @@ -1,6 +1,14 @@ #ifndef __ASM_LINKAGE_H #define __ASM_LINKAGE_H +#ifndef __ASSEMBLY__ + #define asmlinkage CPP_ASMLINKAGE __attribute__((syscall_linkage)) +#else + +#include <asm/asmmacro.h> + +#endif + #endif diff --git a/include/asm-mips/linkage.h b/include/asm-mips/linkage.h index 291c2d01c44..b6185d3cfe6 100644 --- a/include/asm-mips/linkage.h +++ b/include/asm-mips/linkage.h @@ -1,6 +1,8 @@ #ifndef __ASM_LINKAGE_H #define __ASM_LINKAGE_H -/* Nothing to see here... */ +#ifdef __ASSEMBLY__ +#include <asm/asm.h> +#endif #endif diff --git a/include/asm-v850/linkage.h b/include/asm-v850/linkage.h index 291c2d01c44..b6185d3cfe6 100644 --- a/include/asm-v850/linkage.h +++ b/include/asm-v850/linkage.h @@ -1,6 +1,8 @@ #ifndef __ASM_LINKAGE_H #define __ASM_LINKAGE_H -/* Nothing to see here... */ +#ifdef __ASSEMBLY__ +#include <asm/asm.h> +#endif #endif diff --git a/include/linux/linkage.h b/include/linux/linkage.h index 147eb01e0d4..c08c9983e84 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h @@ -28,17 +28,27 @@ #define ALIGN __ALIGN #define ALIGN_STR __ALIGN_STR +#ifndef ENTRY #define ENTRY(name) \ .globl name; \ ALIGN; \ name: +#endif #define KPROBE_ENTRY(name) \ .section .kprobes.text, "ax"; \ - .globl name; \ - ALIGN; \ - name: + ENTRY(name) +#ifndef END +#define END(name) \ + .size name, .-name +#endif + +#ifndef ENDPROC +#define ENDPROC(name) \ + .type name, @function; \ + END(name) +#endif #endif |