linux-old/include/linux/linkage.h
<<
>>
Prefs
   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
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.