Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

Jan Beulich and committed by
Linus Torvalds
ab7efcc9 09fe316a

+27 -5
+8
include/asm-ia64/linkage.h
··· 1 1 #ifndef __ASM_LINKAGE_H 2 2 #define __ASM_LINKAGE_H 3 3 4 + #ifndef __ASSEMBLY__ 5 + 4 6 #define asmlinkage CPP_ASMLINKAGE __attribute__((syscall_linkage)) 7 + 8 + #else 9 + 10 + #include <asm/asmmacro.h> 11 + 12 + #endif 5 13 6 14 #endif
+3 -1
include/asm-mips/linkage.h
··· 1 1 #ifndef __ASM_LINKAGE_H 2 2 #define __ASM_LINKAGE_H 3 3 4 - /* Nothing to see here... */ 4 + #ifdef __ASSEMBLY__ 5 + #include <asm/asm.h> 6 + #endif 5 7 6 8 #endif
+3 -1
include/asm-v850/linkage.h
··· 1 1 #ifndef __ASM_LINKAGE_H 2 2 #define __ASM_LINKAGE_H 3 3 4 - /* Nothing to see here... */ 4 + #ifdef __ASSEMBLY__ 5 + #include <asm/asm.h> 6 + #endif 5 7 6 8 #endif
+13 -3
include/linux/linkage.h
··· 28 28 #define ALIGN __ALIGN 29 29 #define ALIGN_STR __ALIGN_STR 30 30 31 + #ifndef ENTRY 31 32 #define ENTRY(name) \ 32 33 .globl name; \ 33 34 ALIGN; \ 34 35 name: 36 + #endif 35 37 36 38 #define KPROBE_ENTRY(name) \ 37 39 .section .kprobes.text, "ax"; \ 38 - .globl name; \ 39 - ALIGN; \ 40 - name: 40 + ENTRY(name) 41 41 42 + #ifndef END 43 + #define END(name) \ 44 + .size name, .-name 45 + #endif 46 + 47 + #ifndef ENDPROC 48 + #define ENDPROC(name) \ 49 + .type name, @function; \ 50 + END(name) 51 + #endif 42 52 43 53 #endif 44 54