From: Jan Beulich Date: Fri, 24 Mar 2006 11:16:17 +0000 (-0800) Subject: [PATCH] abstract type/size specification for assembly X-Git-Tag: v2.6.17-rc1~913 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab7efcc97ebc92e03c0474dfd38f9c7b84b84115;p=linux-2.6 [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 Cc: "Russell King" Cc: Ralf Baechle Cc: "Andi Kleen" Cc: "Luck, Tony" Cc: Miles Bader Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/include/asm-ia64/linkage.h b/include/asm-ia64/linkage.h index 14cd72cd80..ef22a45c18 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 + +#endif + #endif diff --git a/include/asm-mips/linkage.h b/include/asm-mips/linkage.h index 291c2d01c4..b6185d3cfe 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 +#endif #endif diff --git a/include/asm-v850/linkage.h b/include/asm-v850/linkage.h index 291c2d01c4..b6185d3cfe 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 +#endif #endif diff --git a/include/linux/linkage.h b/include/linux/linkage.h index 147eb01e0d..c08c9983e8 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