asm-extable.h (03ab8e6297acd1bc0eedaa050e2a1635c576fd11) | asm-extable.h (4953fc3d3270b7466a3b334838b76308c75f7751) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0-only */ 2#ifndef __ASM_ASM_EXTABLE_H 3#define __ASM_ASM_EXTABLE_H 4 5#define EX_TYPE_NONE 0 6#define EX_TYPE_FIXUP 1 7#define EX_TYPE_BPF 2 8#define EX_TYPE_UACCESS_ERR_ZERO 3 | 1/* SPDX-License-Identifier: GPL-2.0-only */ 2#ifndef __ASM_ASM_EXTABLE_H 3#define __ASM_ASM_EXTABLE_H 4 5#define EX_TYPE_NONE 0 6#define EX_TYPE_FIXUP 1 7#define EX_TYPE_BPF 2 8#define EX_TYPE_UACCESS_ERR_ZERO 3 |
9#define EX_TYPE_LOAD_UNALIGNED_ZEROPAD 4 | 9#define EX_TYPE_KACCESS_ERR_ZERO 4 10#define EX_TYPE_LOAD_UNALIGNED_ZEROPAD 5 |
10 11#ifdef __ASSEMBLY__ 12 13#define __ASM_EXTABLE_RAW(insn, fixup, type, data) \ 14 .pushsection __ex_table, "a"; \ 15 .align 2; \ 16 .long ((insn) - .); \ 17 .long ((fixup) - .); \ --- 50 unchanged lines hidden (view full) --- 68 __DEFINE_ASM_GPR_NUMS \ 69 __ASM_EXTABLE_RAW(#insn, #fixup, \ 70 __stringify(EX_TYPE_UACCESS_ERR_ZERO), \ 71 "(" \ 72 EX_DATA_REG(ERR, err) " | " \ 73 EX_DATA_REG(ZERO, zero) \ 74 ")") 75 | 11 12#ifdef __ASSEMBLY__ 13 14#define __ASM_EXTABLE_RAW(insn, fixup, type, data) \ 15 .pushsection __ex_table, "a"; \ 16 .align 2; \ 17 .long ((insn) - .); \ 18 .long ((fixup) - .); \ --- 50 unchanged lines hidden (view full) --- 69 __DEFINE_ASM_GPR_NUMS \ 70 __ASM_EXTABLE_RAW(#insn, #fixup, \ 71 __stringify(EX_TYPE_UACCESS_ERR_ZERO), \ 72 "(" \ 73 EX_DATA_REG(ERR, err) " | " \ 74 EX_DATA_REG(ZERO, zero) \ 75 ")") 76 |
77#define _ASM_EXTABLE_KACCESS_ERR_ZERO(insn, fixup, err, zero) \ 78 __DEFINE_ASM_GPR_NUMS \ 79 __ASM_EXTABLE_RAW(#insn, #fixup, \ 80 __stringify(EX_TYPE_KACCESS_ERR_ZERO), \ 81 "(" \ 82 EX_DATA_REG(ERR, err) " | " \ 83 EX_DATA_REG(ZERO, zero) \ 84 ")") 85 |
|
76#define _ASM_EXTABLE_UACCESS_ERR(insn, fixup, err) \ 77 _ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, wzr) 78 | 86#define _ASM_EXTABLE_UACCESS_ERR(insn, fixup, err) \ 87 _ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, wzr) 88 |
89#define _ASM_EXTABLE_KACCESS_ERR(insn, fixup, err) \ 90 _ASM_EXTABLE_KACCESS_ERR_ZERO(insn, fixup, err, wzr) 91 |
|
79#define EX_DATA_REG_DATA_SHIFT 0 80#define EX_DATA_REG_DATA GENMASK(4, 0) 81#define EX_DATA_REG_ADDR_SHIFT 5 82#define EX_DATA_REG_ADDR GENMASK(9, 5) 83 84#define _ASM_EXTABLE_LOAD_UNALIGNED_ZEROPAD(insn, fixup, data, addr) \ 85 __DEFINE_ASM_GPR_NUMS \ 86 __ASM_EXTABLE_RAW(#insn, #fixup, \ 87 __stringify(EX_TYPE_LOAD_UNALIGNED_ZEROPAD), \ 88 "(" \ 89 EX_DATA_REG(DATA, data) " | " \ 90 EX_DATA_REG(ADDR, addr) \ 91 ")") 92 93#endif /* __ASSEMBLY__ */ 94 95#endif /* __ASM_ASM_EXTABLE_H */ | 92#define EX_DATA_REG_DATA_SHIFT 0 93#define EX_DATA_REG_DATA GENMASK(4, 0) 94#define EX_DATA_REG_ADDR_SHIFT 5 95#define EX_DATA_REG_ADDR GENMASK(9, 5) 96 97#define _ASM_EXTABLE_LOAD_UNALIGNED_ZEROPAD(insn, fixup, data, addr) \ 98 __DEFINE_ASM_GPR_NUMS \ 99 __ASM_EXTABLE_RAW(#insn, #fixup, \ 100 __stringify(EX_TYPE_LOAD_UNALIGNED_ZEROPAD), \ 101 "(" \ 102 EX_DATA_REG(DATA, data) " | " \ 103 EX_DATA_REG(ADDR, addr) \ 104 ")") 105 106#endif /* __ASSEMBLY__ */ 107 108#endif /* __ASM_ASM_EXTABLE_H */ |