lrwxrwxrwx 1 lunra lunra 2198 Apr 27 19:39 include/linux/linkage.h -> #ifndef _LINUX_LINKAGE_H?#define _LINUX_LINKAGE_H??#include <linux/compiler.h>?#include <asm/linkage.h>??#ifdef __cplusplus?#define CPP_ASMLINKAGE extern "C"?#else?#define CPP_ASMLINKAGE?#endif??#ifndef asmlinkage?#define asmlinkage CPP_ASMLINKAGE?#endif??#define __page_aligned_data?__section(.data..page_aligned) __aligned(PAGE_SIZE)?#define __page_aligned_bss?__section(.bss..page_aligned) __aligned(PAGE_SIZE)??/*? * For assembly routines.? *? * Note when using these that you must specify the appropriate? * alignment directives yourself? */?#define __PAGE_ALIGNED_DATA?.section ".data..page_aligned", "aw"?#define __PAGE_ALIGNED_BSS?.section ".bss..page_aligned", "aw"??/*? * This is used by architectures to keep arguments on the stack? * untouched by the compiler by keeping them live until the end.? * The argument stack may be owned by the assembly-language? * caller, not the callee, and gcc doesn't always understand? * that.? *? * We have the return value, and a maximum of six arguments.? *? * This should always be followed by a "return ret" for the? * protection to work (ie no more work that the compiler might? * end up needing stack temporaries for).? */?/* Assembly files may be compiled with -traditional .. */?#ifndef __ASSEMBLY__?#ifndef asmlinkage_protect?# define asmlinkage_protect(n, ret, args...)?do { } while (0)?#endif?#endif??#ifndef __ALIGN?#define __ALIGN??.align 4,0x90?#define __ALIGN_STR?".align 4,0x90"?#endif??#ifdef __ASSEMBLY__??#ifndef LINKER_SCRIPT?#define ALIGN __ALIGN?#define ALIGN_STR __ALIGN_STR??#ifndef ENTRY?#define ENTRY(name) \? .globl name; \? ALIGN; \? name:?#endif?#endif /* LINKER_SCRIPT */??#ifndef WEAK?#define WEAK(name)? \??.weak name;? \??name:?#endif??#ifndef END?#define END(name) \? .size name, .-name?#endif??/* If symbol 'name' is treated as a subroutine (gets called, and returns)? * then please use ENDPROC to mark 'name' as STT_FUNC for the benefit of? * static analysis tools such as stack depth analyzer.? */?#ifndef ENDPROC?#define ENDPROC(name) \? .type name, @function; \? END(name)?#endif??#endif??#define NORET_TYPE /**/?#define ATTRIB_NORET __attribute__((noreturn))?#define NORET_AND noreturn,??#endif?