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