blob: 147eb01e0d4bbe536da8bef077fac4ed8d9cdd37 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef _LINUX_LINKAGE_H
2#define _LINUX_LINKAGE_H
3
4#include <linux/config.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 prevent_tail_call
18# define prevent_tail_call(ret) do { } while (0)
19#endif
20
21#ifndef __ALIGN
22#define __ALIGN .align 4,0x90
23#define __ALIGN_STR ".align 4,0x90"
24#endif
25
26#ifdef __ASSEMBLY__
27
28#define ALIGN __ALIGN
29#define ALIGN_STR __ALIGN_STR
30
31#define ENTRY(name) \
32 .globl name; \
33 ALIGN; \
34 name:
35
Prasanna S Panchamukhid0aaff92005-09-06 15:19:26 -070036#define KPROBE_ENTRY(name) \
37 .section .kprobes.text, "ax"; \
38 .globl name; \
39 ALIGN; \
40 name:
41
42
Linus Torvalds1da177e2005-04-16 15:20:36 -070043#endif
44
45#define NORET_TYPE /**/
46#define ATTRIB_NORET __attribute__((noreturn))
47#define NORET_AND noreturn,
48
49#ifndef FASTCALL
50#define FASTCALL(x) x
51#define fastcall
52#endif
53
54#endif