Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
C
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788/* SPDX-License-Identifier: GPL-2.0-only *//* * Copyright 2017, Michael Ellerman, IBM Corporation. */#ifndef _LINUX_SET_MEMORY_H_#define _LINUX_SET_MEMORY_H_
#ifdef CONFIG_ARCH_HAS_SET_MEMORY#include <asm/set_memory.h>#elsestatic inline int __must_check set_memory_ro(unsigned long addr, int numpages) { return 0; }static inline int __must_check set_memory_rw(unsigned long addr, int numpages) { return 0; }static inline int __must_check set_memory_x(unsigned long addr, int numpages) { return 0; }static inline int __must_check set_memory_nx(unsigned long addr, int numpages) { return 0; }#endif
#ifndef set_memory_roxstatic inline int set_memory_rox(unsigned long addr, int numpages){ int ret = set_memory_ro(addr, numpages); if (ret) return ret; return set_memory_x(addr, numpages);}#endif
#ifndef CONFIG_ARCH_HAS_SET_DIRECT_MAPstatic inline int set_direct_map_invalid_noflush(struct page *page){ return 0;}static inline int set_direct_map_default_noflush(struct page *page){ return 0;}
static inline int set_direct_map_valid_noflush(struct page *page, unsigned nr, bool valid){ return 0;}
static inline bool kernel_page_present(struct page *page){ return true;}#else /* CONFIG_ARCH_HAS_SET_DIRECT_MAP *//* * Some architectures, e.g. ARM64 can disable direct map modifications at * boot time. Let them overrive this query. */#ifndef can_set_direct_mapstatic inline bool can_set_direct_map(void){ return true;}#define can_set_direct_map can_set_direct_map#endif#endif /* CONFIG_ARCH_HAS_SET_DIRECT_MAP */
#ifdef CONFIG_X86_64int set_mce_nospec(unsigned long pfn);int clear_mce_nospec(unsigned long pfn);#elsestatic inline int set_mce_nospec(unsigned long pfn){ return 0;}static inline int clear_mce_nospec(unsigned long pfn){ return 0;}#endif
#ifndef CONFIG_ARCH_HAS_MEM_ENCRYPTstatic inline int set_memory_encrypted(unsigned long addr, int numpages){ return 0;}
static inline int set_memory_decrypted(unsigned long addr, int numpages){ return 0;}#endif /* CONFIG_ARCH_HAS_MEM_ENCRYPT */
#endif /* _LINUX_SET_MEMORY_H_ */