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 #define KPROBE_ENTRY(name) \ 37 .section .kprobes.text, "ax"; \ 38 .globl name; \ 39 ALIGN; \ 40 name: 41 42 43 #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 55