asm-extable.h (2e77a62cb3a6d2eb9dd875516411bcd131dd04e7) | asm-extable.h (753b32368705c396000f95f33c3b7018474e33ad) |
---|---|
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 10#ifdef __ASSEMBLY__ 11 12#define __ASM_EXTABLE_RAW(insn, fixup, type, data) \ 13 .pushsection __ex_table, "a"; \ 14 .align 2; \ 15 .long ((insn) - .); \ 16 .long ((fixup) - .); \ --- 53 unchanged lines hidden (view full) --- 70 "(" \ 71 EX_DATA_REG(ERR, err) " | " \ 72 EX_DATA_REG(ZERO, zero) \ 73 ")") 74 75#define _ASM_EXTABLE_UACCESS_ERR(insn, fixup, err) \ 76 _ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, wzr) 77 | 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) - .); \ --- 53 unchanged lines hidden (view full) --- 71 "(" \ 72 EX_DATA_REG(ERR, err) " | " \ 73 EX_DATA_REG(ZERO, zero) \ 74 ")") 75 76#define _ASM_EXTABLE_UACCESS_ERR(insn, fixup, err) \ 77 _ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, wzr) 78 |
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 |
|
78#endif /* __ASSEMBLY__ */ 79 80#endif /* __ASM_ASM_EXTABLE_H */ | 93#endif /* __ASSEMBLY__ */ 94 95#endif /* __ASM_ASM_EXTABLE_H */ |