Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v3.11 63 lines 1.4 kB view raw
1/* 2 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 as 6 * published by the Free Software Foundation. 7 */ 8 9#ifndef __ASM_LINKAGE_H 10#define __ASM_LINKAGE_H 11 12#ifdef __ASSEMBLY__ 13 14/* Can't use the ENTRY macro in linux/linkage.h 15 * gas considers ';' as comment vs. newline 16 */ 17.macro ARC_ENTRY name 18 .global \name 19 .align 4 20 \name: 21.endm 22 23.macro ARC_EXIT name 24#define ASM_PREV_SYM_ADDR(name) .-##name 25 .size \ name, ASM_PREV_SYM_ADDR(\name) 26.endm 27 28/* annotation for data we want in DCCM - if enabled in .config */ 29.macro ARCFP_DATA nm 30#ifdef CONFIG_ARC_HAS_DCCM 31 .section .data.arcfp 32#else 33 .section .data 34#endif 35 .global \nm 36.endm 37 38/* annotation for data we want in DCCM - if enabled in .config */ 39.macro ARCFP_CODE 40#ifdef CONFIG_ARC_HAS_ICCM 41 .section .text.arcfp, "ax",@progbits 42#else 43 .section .text, "ax",@progbits 44#endif 45.endm 46 47#else /* !__ASSEMBLY__ */ 48 49#ifdef CONFIG_ARC_HAS_ICCM 50#define __arcfp_code __attribute__((__section__(".text.arcfp"))) 51#else 52#define __arcfp_code __attribute__((__section__(".text"))) 53#endif 54 55#ifdef CONFIG_ARC_HAS_DCCM 56#define __arcfp_data __attribute__((__section__(".data.arcfp"))) 57#else 58#define __arcfp_data __attribute__((__section__(".data"))) 59#endif 60 61#endif /* __ASSEMBLY__ */ 62 63#endif