Root/
1 | #ifndef _LINUX_LINKAGE_H |
2 | #define _LINUX_LINKAGE_H |
3 | |
4 | #include <linux/compiler.h> |
5 | #include <asm/linkage.h> |
6 | |
7 | #ifdef __cplusplus |
8 | #define CPP_ASMLINKAGE extern "C" |
9 | #else |
10 | #define CPP_ASMLINKAGE |
11 | #endif |
12 | |
13 | #ifndef asmlinkage |
14 | #define asmlinkage CPP_ASMLINKAGE |
15 | #endif |
16 | |
17 | #ifndef asmregparm |
18 | # define asmregparm |
19 | #endif |
20 | |
21 | #define __page_aligned_data __section(.data.page_aligned) __aligned(PAGE_SIZE) |
22 | #define __page_aligned_bss __section(.bss.page_aligned) __aligned(PAGE_SIZE) |
23 | |
24 | /* |
25 | * For assembly routines. |
26 | * |
27 | * Note when using these that you must specify the appropriate |
28 | * alignment directives yourself |
29 | */ |
30 | #define __PAGE_ALIGNED_DATA .section ".data.page_aligned", "aw" |
31 | #define __PAGE_ALIGNED_BSS .section ".bss.page_aligned", "aw" |
32 | |
33 | /* |
34 | * This is used by architectures to keep arguments on the stack |
35 | * untouched by the compiler by keeping them live until the end. |
36 | * The argument stack may be owned by the assembly-language |
37 | * caller, not the callee, and gcc doesn't always understand |
38 | * that. |
39 | * |
40 | * We have the return value, and a maximum of six arguments. |
41 | * |
42 | * This should always be followed by a "return ret" for the |
43 | * protection to work (ie no more work that the compiler might |
44 | * end up needing stack temporaries for). |
45 | */ |
46 | /* Assembly files may be compiled with -traditional .. */ |
47 | #ifndef __ASSEMBLY__ |
48 | #ifndef asmlinkage_protect |
49 | # define asmlinkage_protect(n, ret, args...) do { } while (0) |
50 | #endif |
51 | #endif |
52 | |
53 | #ifndef __ALIGN |
54 | #define __ALIGN .align 4,0x90 |
55 | #define __ALIGN_STR ".align 4,0x90" |
56 | #endif |
57 | |
58 | #ifdef __ASSEMBLY__ |
59 | |
60 | #ifndef LINKER_SCRIPT |
61 | #define ALIGN __ALIGN |
62 | #define ALIGN_STR __ALIGN_STR |
63 | |
64 | #ifndef ENTRY |
65 | #define ENTRY(name) \ |
66 | .globl name; \ |
67 | ALIGN; \ |
68 | name: |
69 | #endif |
70 | #endif /* LINKER_SCRIPT */ |
71 | |
72 | #ifndef WEAK |
73 | #define WEAK(name) \ |
74 | .weak name; \ |
75 | name: |
76 | #endif |
77 | |
78 | #ifndef END |
79 | #define END(name) \ |
80 | .size name, .-name |
81 | #endif |
82 | |
83 | /* If symbol 'name' is treated as a subroutine (gets called, and returns) |
84 | * then please use ENDPROC to mark 'name' as STT_FUNC for the benefit of |
85 | * static analysis tools such as stack depth analyzer. |
86 | */ |
87 | #ifndef ENDPROC |
88 | #define ENDPROC(name) \ |
89 | .type name, @function; \ |
90 | END(name) |
91 | #endif |
92 | |
93 | #endif |
94 | |
95 | #define NORET_TYPE /**/ |
96 | #define ATTRIB_NORET __attribute__((noreturn)) |
97 | #define NORET_AND noreturn, |
98 | |
99 | #endif |
100 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9