]> bbs.cooldavid.org Git - net-next-2.6.git/blame - include/linux/linkage.h
x86: big ticket locks
[net-next-2.6.git] / include / linux / linkage.h
CommitLineData
1da177e4
LT
1#ifndef _LINUX_LINKAGE_H
2#define _LINUX_LINKAGE_H
3
1da177e4
LT
4#include <asm/linkage.h>
5
6#ifdef __cplusplus
7#define CPP_ASMLINKAGE extern "C"
8#else
9#define CPP_ASMLINKAGE
10#endif
11
12#ifndef asmlinkage
13#define asmlinkage CPP_ASMLINKAGE
14#endif
15
16#ifndef prevent_tail_call
17# define prevent_tail_call(ret) do { } while (0)
18#endif
19
20#ifndef __ALIGN
21#define __ALIGN .align 4,0x90
22#define __ALIGN_STR ".align 4,0x90"
23#endif
24
25#ifdef __ASSEMBLY__
26
27#define ALIGN __ALIGN
28#define ALIGN_STR __ALIGN_STR
29
ab7efcc9 30#ifndef ENTRY
1da177e4
LT
31#define ENTRY(name) \
32 .globl name; \
33 ALIGN; \
34 name:
ab7efcc9 35#endif
1da177e4 36
214541d1
RR
37#ifndef WEAK
38#define WEAK(name) \
39 .weak name; \
40 name:
41#endif
42
d0aaff97 43#define KPROBE_ENTRY(name) \
d28c4393 44 .pushsection .kprobes.text, "ax"; \
ab7efcc9 45 ENTRY(name)
d0aaff97 46
d28c4393
P
47#define KPROBE_END(name) \
48 END(name); \
49 .popsection
50
ab7efcc9
JB
51#ifndef END
52#define END(name) \
53 .size name, .-name
54#endif
55
56#ifndef ENDPROC
57#define ENDPROC(name) \
58 .type name, @function; \
59 END(name)
60#endif
d0aaff97 61
1da177e4
LT
62#endif
63
64#define NORET_TYPE /**/
65#define ATTRIB_NORET __attribute__((noreturn))
66#define NORET_AND noreturn,
67
68#ifndef FASTCALL
69#define FASTCALL(x) x
70#define fastcall
71#endif
72
73#endif