~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/linux/linkage.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #ifndef _LINUX_LINKAGE_H
  2 #define _LINUX_LINKAGE_H
  3 
  4 #include <linux/config.h>
  5 
  6 #ifdef __cplusplus
  7 #define CPP_ASMLINKAGE extern "C"
  8 #else
  9 #define CPP_ASMLINKAGE
 10 #endif
 11 
 12 #if defined __i386__
 13 #define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0)))
 14 #elif defined __ia64__
 15 #define asmlinkage CPP_ASMLINKAGE __attribute__((syscall_linkage))
 16 #else
 17 #define asmlinkage CPP_ASMLINKAGE
 18 #endif
 19 
 20 #define SYMBOL_NAME_STR(X) #X
 21 #define SYMBOL_NAME(X) X
 22 #ifdef __STDC__
 23 #define SYMBOL_NAME_LABEL(X) X##:
 24 #else
 25 #define SYMBOL_NAME_LABEL(X) X/**/:
 26 #endif
 27 
 28 #ifdef __arm__
 29 #define __ALIGN .align 0
 30 #define __ALIGN_STR ".align 0"
 31 #else
 32 #ifdef __mc68000__
 33 #define __ALIGN .align 4
 34 #define __ALIGN_STR ".align 4"
 35 #else
 36 #ifdef __sh__
 37 #define __ALIGN .balign 4
 38 #define __ALIGN_STR ".balign 4"
 39 #else
 40 #if defined(__i386__) && defined(CONFIG_X86_ALIGNMENT_16)
 41 #define __ALIGN .align 16,0x90
 42 #define __ALIGN_STR ".align 16,0x90"
 43 #else
 44 #define __ALIGN .align 4,0x90
 45 #define __ALIGN_STR ".align 4,0x90"
 46 #endif
 47 #endif /* __sh__ */
 48 #endif /* __mc68000__ */
 49 #endif /* __arm__ */
 50 
 51 #ifdef __ASSEMBLY__
 52 
 53 #define ALIGN __ALIGN
 54 #define ALIGN_STR __ALIGN_STR
 55 
 56 #define ENTRY(name) \
 57   .globl SYMBOL_NAME(name); \
 58   ALIGN; \
 59   SYMBOL_NAME_LABEL(name)
 60 
 61 #endif
 62 
 63 #endif
 64 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.