Viewing file: linkage.h (1.2 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef _LINUX_LINKAGE_H #define _LINUX_LINKAGE_H
#include <linux/config.h>
#ifdef __cplusplus #define CPP_ASMLINKAGE extern "C" #else #define CPP_ASMLINKAGE #endif
#if defined __i386__ #define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0))) #elif defined __ia64__ #define asmlinkage CPP_ASMLINKAGE __attribute__((syscall_linkage)) #else #define asmlinkage CPP_ASMLINKAGE #endif
#define SYMBOL_NAME_STR(X) #X #define SYMBOL_NAME(X) X #ifdef __STDC__ #define SYMBOL_NAME_LABEL(X) X##: #else #define SYMBOL_NAME_LABEL(X) X/**/: #endif
#ifdef __arm__ #define __ALIGN .align 0 #define __ALIGN_STR ".align 0" #else #ifdef __mc68000__ #define __ALIGN .align 4 #define __ALIGN_STR ".align 4" #else #ifdef __sh__ #define __ALIGN .balign 4 #define __ALIGN_STR ".balign 4" #else #if defined(__i386__) && defined(CONFIG_X86_ALIGNMENT_16) #define __ALIGN .align 16,0x90 #define __ALIGN_STR ".align 16,0x90" #else #define __ALIGN .align 4,0x90 #define __ALIGN_STR ".align 4,0x90" #endif #endif /* __sh__ */ #endif /* __mc68000__ */ #endif /* __arm__ */
#ifdef __ASSEMBLY__
#define ALIGN __ALIGN #define ALIGN_STR __ALIGN_STR
#define ENTRY(name) \ .globl SYMBOL_NAME(name); \ ALIGN; \ SYMBOL_NAME_LABEL(name)
#endif
#endif
|