xref: /openbmc/linux/arch/arm/include/asm/sections.h (revision c608906165355089a4de3c9133c72e81e011096c)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
202afa9a8SChris Brandt #ifndef _ASM_ARM_SECTIONS_H
302afa9a8SChris Brandt #define _ASM_ARM_SECTIONS_H
402afa9a8SChris Brandt 
502afa9a8SChris Brandt #include <asm-generic/sections.h>
602afa9a8SChris Brandt 
702afa9a8SChris Brandt extern char _exiprom[];
802afa9a8SChris Brandt 
9*c6089061SRussell King extern char __idmap_text_start[];
10*c6089061SRussell King extern char __idmap_text_end[];
11*c6089061SRussell King extern char __entry_text_start[];
12*c6089061SRussell King extern char __entry_text_end[];
13*c6089061SRussell King extern char __hyp_idmap_text_start[];
14*c6089061SRussell King extern char __hyp_idmap_text_end[];
15*c6089061SRussell King 
16*c6089061SRussell King static inline bool in_entry_text(unsigned long addr)
17*c6089061SRussell King {
18*c6089061SRussell King 	return memory_contains(__entry_text_start, __entry_text_end,
19*c6089061SRussell King 			       (void *)addr, 1);
20*c6089061SRussell King }
21*c6089061SRussell King 
22*c6089061SRussell King static inline bool in_idmap_text(unsigned long addr)
23*c6089061SRussell King {
24*c6089061SRussell King 	void *a = (void *)addr;
25*c6089061SRussell King 	return memory_contains(__idmap_text_start, __idmap_text_end, a, 1) ||
26*c6089061SRussell King 	       memory_contains(__hyp_idmap_text_start, __hyp_idmap_text_end,
27*c6089061SRussell King 			       a, 1);
28*c6089061SRussell King }
29*c6089061SRussell King 
3002afa9a8SChris Brandt #endif	/* _ASM_ARM_SECTIONS_H */
31