linkage.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
- #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