uboot/include/linux/linkage.h
<<
>>
Prefs
   1/*
   2 * U-boot - linkage.h
   3 *
   4 * Copyright (c) 2005-2007 Analog Devices Inc.
   5 *
   6 * See file CREDITS for list of people who contributed to this
   7 * project.
   8 *
   9 * This program is free software; you can redistribute it and/or
  10 * modify it under the terms of the GNU General Public License as
  11 * published by the Free Software Foundation; either version 2 of
  12 * the License, or (at your option) any later version.
  13 *
  14 * This program is distributed in the hope that it will be useful,
  15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17 * GNU General Public License for more details.
  18 *
  19 * You should have received a copy of the GNU General Public License
  20 * along with this program; if not, write to the Free Software
  21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
  22 * MA 02110-1301 USA
  23 */
  24
  25#ifndef _LINUX_LINKAGE_H
  26#define _LINUX_LINKAGE_H
  27
  28#include <asm/linkage.h>
  29#include <linux/config.h>
  30
  31#ifdef __cplusplus
  32#define CPP_ASMLINKAGE          extern "C"
  33#else
  34#define CPP_ASMLINKAGE
  35#endif
  36
  37#define asmlinkage CPP_ASMLINKAGE
  38
  39#define SYMBOL_NAME_STR(X)      #X
  40#define SYMBOL_NAME(X)          X
  41#ifdef __STDC__
  42#define SYMBOL_NAME_LABEL(X)    X##:
  43#else
  44#define SYMBOL_NAME_LABEL(X)    X:
  45#endif
  46
  47#ifndef __ALIGN
  48#define __ALIGN .align          4
  49#endif
  50
  51#ifndef __ALIGN_STR
  52#define __ALIGN_STR             ".align 4"
  53#endif
  54
  55#ifdef __ASSEMBLY__
  56
  57#define ALIGN                   __ALIGN
  58#define ALIGN_STR               __ALIGN_STR
  59
  60#define LENTRY(name) \
  61        ALIGN; \
  62        SYMBOL_NAME_LABEL(name)
  63
  64#define ENTRY(name) \
  65        .globl SYMBOL_NAME(name); \
  66        LENTRY(name)
  67
  68#ifndef END
  69#define END(name) \
  70        .size name, .-name
  71#endif
  72
  73#ifndef ENDPROC
  74#define ENDPROC(name) \
  75        .type name STT_FUNC; \
  76        END(name)
  77#endif
  78
  79#endif
  80
  81#endif
  82