Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v5.4 75 lines 1.4 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _MCSAFE_TEST_H_ 3#define _MCSAFE_TEST_H_ 4 5#ifndef __ASSEMBLY__ 6#ifdef CONFIG_MCSAFE_TEST 7extern unsigned long mcsafe_test_src; 8extern unsigned long mcsafe_test_dst; 9 10static inline void mcsafe_inject_src(void *addr) 11{ 12 if (addr) 13 mcsafe_test_src = (unsigned long) addr; 14 else 15 mcsafe_test_src = ~0UL; 16} 17 18static inline void mcsafe_inject_dst(void *addr) 19{ 20 if (addr) 21 mcsafe_test_dst = (unsigned long) addr; 22 else 23 mcsafe_test_dst = ~0UL; 24} 25#else /* CONFIG_MCSAFE_TEST */ 26static inline void mcsafe_inject_src(void *addr) 27{ 28} 29 30static inline void mcsafe_inject_dst(void *addr) 31{ 32} 33#endif /* CONFIG_MCSAFE_TEST */ 34 35#else /* __ASSEMBLY__ */ 36#include <asm/export.h> 37 38#ifdef CONFIG_MCSAFE_TEST 39.macro MCSAFE_TEST_CTL 40 .pushsection .data 41 .align 8 42 .globl mcsafe_test_src 43 mcsafe_test_src: 44 .quad 0 45 EXPORT_SYMBOL_GPL(mcsafe_test_src) 46 .globl mcsafe_test_dst 47 mcsafe_test_dst: 48 .quad 0 49 EXPORT_SYMBOL_GPL(mcsafe_test_dst) 50 .popsection 51.endm 52 53.macro MCSAFE_TEST_SRC reg count target 54 leaq \count(\reg), %r9 55 cmp mcsafe_test_src, %r9 56 ja \target 57.endm 58 59.macro MCSAFE_TEST_DST reg count target 60 leaq \count(\reg), %r9 61 cmp mcsafe_test_dst, %r9 62 ja \target 63.endm 64#else 65.macro MCSAFE_TEST_CTL 66.endm 67 68.macro MCSAFE_TEST_SRC reg count target 69.endm 70 71.macro MCSAFE_TEST_DST reg count target 72.endm 73#endif /* CONFIG_MCSAFE_TEST */ 74#endif /* __ASSEMBLY__ */ 75#endif /* _MCSAFE_TEST_H_ */