2018-02-27 22:39:27 -05:00
/* SPDX-License-Identifier: GPL-2.0 */
# ifdef CONFIG_HOTPLUG_CPU
# define ARM_CPU_DISCARD(x)
# define ARM_CPU_KEEP(x) x
# else
# define ARM_CPU_DISCARD(x) x
# define ARM_CPU_KEEP(x)
# endif
# if (defined(CONFIG_SMP_ON_UP) && !defined(CONFIG_DEBUG_SPINLOCK)) || \
defined ( CONFIG_GENERIC_BUG ) | | defined ( CONFIG_JUMP_LABEL )
# define ARM_EXIT_KEEP(x) x
# define ARM_EXIT_DISCARD(x)
# else
# define ARM_EXIT_KEEP(x)
# define ARM_EXIT_DISCARD(x) x
# endif
2018-03-05 16:34:03 -05:00
# ifdef CONFIG_MMU
# define ARM_MMU_KEEP(x) x
# define ARM_MMU_DISCARD(x)
# else
# define ARM_MMU_KEEP(x)
# define ARM_MMU_DISCARD(x) x
# endif
2018-02-27 22:39:27 -05:00
# define PROC_INFO \
. = ALIGN ( 4 ) ; \
VMLINUX_SYMBOL ( __proc_info_begin ) = . ; \
* ( . proc . info . init ) \
VMLINUX_SYMBOL ( __proc_info_end ) = . ;
# define HYPERVISOR_TEXT \
VMLINUX_SYMBOL ( __hyp_text_start ) = . ; \
* ( . hyp . text ) \
VMLINUX_SYMBOL ( __hyp_text_end ) = . ;
# define IDMAP_TEXT \
ALIGN_FUNCTION ( ) ; \
VMLINUX_SYMBOL ( __idmap_text_start ) = . ; \
* ( . idmap . text ) \
VMLINUX_SYMBOL ( __idmap_text_end ) = . ; \
. = ALIGN ( PAGE_SIZE ) ; \
VMLINUX_SYMBOL ( __hyp_idmap_text_start ) = . ; \
* ( . hyp . idmap . text ) \
VMLINUX_SYMBOL ( __hyp_idmap_text_end ) = . ;
2018-03-05 16:34:03 -05:00
# define ARM_DISCARD \
* ( . ARM . exidx . exit . text ) \
* ( . ARM . extab . exit . text ) \
ARM_CPU_DISCARD ( * ( . ARM . exidx . cpuexit . text ) ) \
ARM_CPU_DISCARD ( * ( . ARM . extab . cpuexit . text ) ) \
ARM_EXIT_DISCARD ( EXIT_TEXT ) \
ARM_EXIT_DISCARD ( EXIT_DATA ) \
EXIT_CALL \
ARM_MMU_DISCARD ( * ( . text . fixup ) ) \
ARM_MMU_DISCARD ( * ( __ex_table ) ) \
* ( . discard ) \
* ( . discard . * )
2018-03-05 16:34:03 -05:00
# define ARM_TEXT \
IDMAP_TEXT \
__entry_text_start = . ; \
* ( . entry . text ) \
__entry_text_end = . ; \
IRQENTRY_TEXT \
SOFTIRQENTRY_TEXT \
TEXT_TEXT \
SCHED_TEXT \
CPUIDLE_TEXT \
LOCK_TEXT \
HYPERVISOR_TEXT \
KPROBES_TEXT \
* ( . gnu . warning ) \
* ( . glue_7 ) \
* ( . glue_7t ) \
. = ALIGN ( 4 ) ; \
* ( . got ) /* Global offset table */ \
ARM_CPU_KEEP ( PROC_INFO )