blob: 338f7795d8a071d63b05969505b6fe9894eafc46 [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
36#endif
37
38#define NORET_TYPE /**/
39#define ATTRIB_NORET __attribute__((noreturn))
40#define NORET_AND noreturn,
41
42#ifndef FASTCALL
43#define FASTCALL(x) x
44#define fastcall
45#endif
46
47#endif