1#ifndef _LINUX_LINKAGE_H
2#define _LINUX_LINKAGE_H
3
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
30#ifndef ENTRY
31#define ENTRY(name) \
32  .globl name; \
33  ALIGN; \
34  name:
35#endif
36
37#define KPROBE_ENTRY(name) \
38  .section .kprobes.text, "ax"; \
39  ENTRY(name)
40
41#ifndef END
42#define END(name) \
43  .size name, .-name
44#endif
45
46#ifndef ENDPROC
47#define ENDPROC(name) \
48  .type name, @function; \
49  END(name)
50#endif
51
52#endif
53
54#define NORET_TYPE    /**/
55#define ATTRIB_NORET  __attribute__((noreturn))
56#define NORET_AND     noreturn,
57
58#ifndef FASTCALL
59#define FASTCALL(x)	x
60#define fastcall
61#endif
62
63#endif
64