2019-06-04 10:11:33 +02:00
/* SPDX-License-Identifier: GPL-2.0-only */
ARC: Fundamental ARCH data-types/defines
* L1_CACHE_SHIFT
* PAGE_SIZE, PAGE_OFFSET
* struct pt_regs, struct user_regs_struct
* struct thread_struct, cpu_relax(), task_pt_regs(), start_thread(), ...
* struct thread_info, THREAD_SIZE, INIT_THREAD_INFO(), TIF_*, ...
* BUG()
* ELF_*
* Elf_*
To disallow user-space visibility into some of the core kernel data-types
such as struct pt_regs, #ifdef __KERNEL__ which also makes the UAPI header
spit (further patch in the series) to NOT export it to asm/uapi/ptrace.h
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Jonas Bonn <jonas.bonn@gmail.com>
Cc: Al Viro <viro@ZenIV.linux.org.uk>
Acked-by: Arnd Bergmann <arnd@arndb.de>
2013-01-18 15:12:17 +05:30
/*
* Copyright ( C ) 2004 , 2007 - 2010 , 2011 - 2012 Synopsys , Inc . ( www . synopsys . com )
*/
# ifndef __ASM_LINKAGE_H
# define __ASM_LINKAGE_H
2016-09-16 17:23:26 -07:00
# include <asm/dwarf.h>
ARC: Fundamental ARCH data-types/defines
* L1_CACHE_SHIFT
* PAGE_SIZE, PAGE_OFFSET
* struct pt_regs, struct user_regs_struct
* struct thread_struct, cpu_relax(), task_pt_regs(), start_thread(), ...
* struct thread_info, THREAD_SIZE, INIT_THREAD_INFO(), TIF_*, ...
* BUG()
* ELF_*
* Elf_*
To disallow user-space visibility into some of the core kernel data-types
such as struct pt_regs, #ifdef __KERNEL__ which also makes the UAPI header
spit (further patch in the series) to NOT export it to asm/uapi/ptrace.h
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Jonas Bonn <jonas.bonn@gmail.com>
Cc: Al Viro <viro@ZenIV.linux.org.uk>
Acked-by: Arnd Bergmann <arnd@arndb.de>
2013-01-18 15:12:17 +05:30
# ifdef __ASSEMBLY__
2019-05-15 15:36:46 -07:00
. macro ST2 e , o , off
# ifdef CONFIG_ARC_HAS_LL64
std \ e , [ sp , \ off ]
# else
st \ e , [ sp , \ off ]
st \ o , [ sp , \ off + 4 ]
# endif
. endm
. macro LD2 e , o , off
# ifdef CONFIG_ARC_HAS_LL64
ldd \ e , [ sp , \ off ]
# else
ld \ e , [ sp , \ off ]
ld \ o , [ sp , \ off + 4 ]
# endif
. endm
2014-01-12 09:59:13 +08:00
# define ASM_NL ` /* use '`' to mark new line in macro */
2020-03-11 19:26:43 +03:00
# define __ALIGN .align 4
# define __ALIGN_STR __stringify(__ALIGN)
2014-01-12 09:59:13 +08:00
2013-01-18 15:12:25 +05:30
/* annotation for data we want in DCCM - if enabled in .config */
. macro ARCFP_DATA nm
# ifdef CONFIG_ARC_HAS_DCCM
. section . data . arcfp
# else
. section . data
# endif
. global \ nm
. endm
/* annotation for data we want in DCCM - if enabled in .config */
. macro ARCFP_CODE
# ifdef CONFIG_ARC_HAS_ICCM
. section . text . arcfp , " ax " , @ progbits
# else
. section . text , " ax " , @ progbits
# endif
. endm
2016-09-16 17:23:26 -07:00
# define ENTRY_CFI(name) \
. globl name ASM_NL \
ALIGN ASM_NL \
name : ASM_NL \
CFI_STARTPROC ASM_NL
# define END_CFI(name) \
CFI_ENDPROC ASM_NL \
. size name , . - name
2013-01-18 15:12:25 +05:30
# else /* !__ASSEMBLY__ */
# ifdef CONFIG_ARC_HAS_ICCM
2020-10-21 19:36:07 -07:00
# define __arcfp_code __section(".text.arcfp")
2013-01-18 15:12:25 +05:30
# else
2020-10-21 19:36:07 -07:00
# define __arcfp_code __section(".text")
2013-01-18 15:12:25 +05:30
# endif
# ifdef CONFIG_ARC_HAS_DCCM
2020-10-21 19:36:07 -07:00
# define __arcfp_data __section(".data.arcfp")
2013-01-18 15:12:25 +05:30
# else
2020-10-21 19:36:07 -07:00
# define __arcfp_data __section(".data")
2013-01-18 15:12:25 +05:30
# endif
ARC: Fundamental ARCH data-types/defines
* L1_CACHE_SHIFT
* PAGE_SIZE, PAGE_OFFSET
* struct pt_regs, struct user_regs_struct
* struct thread_struct, cpu_relax(), task_pt_regs(), start_thread(), ...
* struct thread_info, THREAD_SIZE, INIT_THREAD_INFO(), TIF_*, ...
* BUG()
* ELF_*
* Elf_*
To disallow user-space visibility into some of the core kernel data-types
such as struct pt_regs, #ifdef __KERNEL__ which also makes the UAPI header
spit (further patch in the series) to NOT export it to asm/uapi/ptrace.h
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Jonas Bonn <jonas.bonn@gmail.com>
Cc: Al Viro <viro@ZenIV.linux.org.uk>
Acked-by: Arnd Bergmann <arnd@arndb.de>
2013-01-18 15:12:17 +05:30
# endif /* __ASSEMBLY__ */
# endif