1 #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 48