forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
776 B
28 lines
776 B
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#ifndef __VDSO_EXTABLE_H |
|
#define __VDSO_EXTABLE_H |
|
|
|
/* |
|
* Inject exception fixup for vDSO code. Unlike normal exception fixup, |
|
* vDSO uses a dedicated handler the addresses are relative to the overall |
|
* exception table, not each individual entry. |
|
*/ |
|
#ifdef __ASSEMBLY__ |
|
#define _ASM_VDSO_EXTABLE_HANDLE(from, to) \ |
|
ASM_VDSO_EXTABLE_HANDLE from to |
|
|
|
.macro ASM_VDSO_EXTABLE_HANDLE from:req to:req |
|
.pushsection __ex_table, "a" |
|
.long (\from) - __ex_table |
|
.long (\to) - __ex_table |
|
.popsection |
|
.endm |
|
#else |
|
#define _ASM_VDSO_EXTABLE_HANDLE(from, to) \ |
|
".pushsection __ex_table, \"a\"\n" \ |
|
".long (" #from ") - __ex_table\n" \ |
|
".long (" #to ") - __ex_table\n" \ |
|
".popsection\n" |
|
#endif |
|
|
|
#endif /* __VDSO_EXTABLE_H */
|
|
|