diff options
Diffstat (limited to 'libc/kernel/common/linux/linkage.h')
-rw-r--r-- | libc/kernel/common/linux/linkage.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/libc/kernel/common/linux/linkage.h b/libc/kernel/common/linux/linkage.h new file mode 100644 index 0000000..e0194bc --- /dev/null +++ b/libc/kernel/common/linux/linkage.h @@ -0,0 +1,66 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + **************************************************************************** + ****************************************************************************/ +#ifndef _LINUX_LINKAGE_H +#define _LINUX_LINKAGE_H + +#include <asm/linkage.h> + +#ifdef __cplusplus +#define CPP_ASMLINKAGE extern "C" +#else +#define CPP_ASMLINKAGE +#endif + +#ifndef asmlinkage +#define asmlinkage CPP_ASMLINKAGE +#endif + +#ifndef prevent_tail_call +#define prevent_tail_call(ret) do { } while (0) +#endif + +#ifndef __ALIGN +#define __ALIGN .align 4,0x90 +#define __ALIGN_STR ".align 4,0x90" +#endif + +#ifdef __ASSEMBLY__ + +#define ALIGN __ALIGN +#define ALIGN_STR __ALIGN_STR + +#ifndef ENTRY +#define ENTRY(name) .globl name; ALIGN; name: +#endif + +#define KPROBE_ENTRY(name) .section .kprobes.text, "ax"; ENTRY(name) + +#ifndef END +#define END(name) .size name, .-name +#endif + +#ifndef ENDPROC +#define ENDPROC(name) .type name, @function; END(name) +#endif + +#endif + +#define NORET_TYPE +#define ATTRIB_NORET __attribute__((noreturn)) +#define NORET_AND noreturn, + +#ifndef FASTCALL +#define FASTCALL(x) x +#define fastcall +#endif + +#endif |