1 /** 2 * \file 3 * \brief Linkage 4 * \ingroup l4sys_api 5 */ 6 /* 7 * (c) 2008-2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>, 8 * Alexander Warg <warg@os.inf.tu-dresden.de> 9 * economic rights: Technische Universität Dresden (Germany) 10 * 11 * This file is part of TUD:OS and distributed under the terms of the 12 * GNU General Public License 2. 13 * Please see the COPYING-GPL-2 file for details. 14 * 15 * As a special exception, you may use this file as part of a free software 16 * library without restriction. Specifically, if other files instantiate 17 * templates or use macros or inline functions from this file, or you compile 18 * this file and link it with other files to produce an executable, this 19 * file does not by itself cause the resulting executable to be covered by 20 * the GNU General Public License. This exception does not however 21 * invalidate any other reasons why the executable file might be covered by 22 * the GNU General Public License. 23 */ 24 #ifndef __L4__SYS__ARCH_ARM__LINKAGE_H__ 25 #define __L4__SYS__ARCH_ARM__LINKAGE_H__ 26 27 #ifdef __ASSEMBLY__ 28 #ifndef ENTRY 29 #define ENTRY(name) \ 30 .globl name; \ 31 .p2align(2); \ 32 name: 33 #endif 34 #endif 35 36 #define L4_FASTCALL(x) x 37 #define l4_fastcall 38 39 /** 40 * Define calling convention. 41 * \ingroup l4sys_defines 42 * \hideinitializer 43 */ 44 #define L4_CV 45 46 #ifdef __PIC__ 47 # define L4_LONG_CALL 48 #else 49 # define L4_LONG_CALL __attribute__((long_call)) 50 #endif 51 52 #endif /* ! __L4__SYS__ARCH_ARM__LINKAGE_H__ */ 53