Commit ab7efcc97ebc92e03c0474dfd38f9c7b84b84115

Authored by Jan Beulich
Committed by Linus Torvalds
1 parent 09fe316a7b

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

Showing 4 changed files with 27 additions and 5 deletions Side-by-side Diff

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
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
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
include/linux/linkage.h
... ... @@ -28,17 +28,27 @@
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