linux-bk/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#ifdef __arm__
  21#define __ALIGN .align 0
  22#define __ALIGN_STR ".align 0"
  23#else
  24#ifdef __mc68000__
  25#define __ALIGN .align 4
  26#define __ALIGN_STR ".align 4"
  27#else
  28#ifdef __sh__
  29#define __ALIGN .balign 4
  30#define __ALIGN_STR ".balign 4"
  31#else
  32#if defined(__i386__) && defined(CONFIG_X86_ALIGNMENT_16)
  33#define __ALIGN .align 16,0x90
  34#define __ALIGN_STR ".align 16,0x90"
  35#else
  36#define __ALIGN .align 4,0x90
  37#define __ALIGN_STR ".align 4,0x90"
  38#endif
  39#endif /* __sh__ */
  40#endif /* __mc68000__ */
  41#endif /* __arm__ */
  42
  43#ifdef __ASSEMBLY__
  44
  45#define ALIGN __ALIGN
  46#define ALIGN_STR __ALIGN_STR
  47
  48#define ENTRY(name) \
  49  .globl name; \
  50  ALIGN; \
  51  name:
  52
  53#endif
  54
  55# define NORET_TYPE    /**/
  56# define ATTRIB_NORET  __attribute__((noreturn))
  57# define NORET_AND     noreturn,
  58
  59#ifdef __i386__
  60#define FASTCALL(x)     x __attribute__((regparm(3)))
  61#else
  62#define FASTCALL(x)     x
  63#endif
  64
  65#endif
  66
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.