1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 **************************************************************************** 11 ****************************************************************************/ 12 #ifndef _LINUX_LINKAGE_H 13 #define _LINUX_LINKAGE_H 14 15 #include <asm/linkage.h> 16 17 #ifdef __cplusplus 18 #define CPP_ASMLINKAGE extern "C" 19 #else 20 #define CPP_ASMLINKAGE 21 #endif 22 23 #ifndef asmlinkage 24 #define asmlinkage CPP_ASMLINKAGE 25 #endif 26 27 #ifndef prevent_tail_call 28 #define prevent_tail_call(ret) do { } while (0) 29 #endif 30 31 #ifndef __ALIGN 32 #define __ALIGN .align 4,0x90 33 #define __ALIGN_STR ".align 4,0x90" 34 #endif 35 36 #ifdef __ASSEMBLY__ 37 38 #define ALIGN __ALIGN 39 #define ALIGN_STR __ALIGN_STR 40 41 #ifndef ENTRY 42 #define ENTRY(name) .globl name; ALIGN; name: 43 #endif 44 45 #define KPROBE_ENTRY(name) .section .kprobes.text, "ax"; ENTRY(name) 46 47 #ifndef END 48 #define END(name) .size name, .-name 49 #endif 50 51 #ifndef ENDPROC 52 #define ENDPROC(name) .type name, @function; END(name) 53 #endif 54 55 #endif 56 57 #define NORET_TYPE 58 #define ATTRIB_NORET __attribute__((noreturn)) 59 #define NORET_AND noreturn, 60 61 #ifndef FASTCALL 62 #define FASTCALL(x) x 63 #define fastcall 64 #endif 65 66 #endif 67