1e86935f7SHuacai Chen /* SPDX-License-Identifier: GPL-2.0-only */ 2e86935f7SHuacai Chen /* 3e86935f7SHuacai Chen * Copyright (C) 2024 Loongson Technology Corporation Limited 4e86935f7SHuacai Chen */ 5e86935f7SHuacai Chen 6e86935f7SHuacai Chen #ifndef _ASM_LOONGARCH_SET_MEMORY_H 7e86935f7SHuacai Chen #define _ASM_LOONGARCH_SET_MEMORY_H 8e86935f7SHuacai Chen 9e86935f7SHuacai Chen /* 10e86935f7SHuacai Chen * Functions to change memory attributes. 11e86935f7SHuacai Chen */ 12e86935f7SHuacai Chen int set_memory_x(unsigned long addr, int numpages); 13e86935f7SHuacai Chen int set_memory_nx(unsigned long addr, int numpages); 14e86935f7SHuacai Chen int set_memory_ro(unsigned long addr, int numpages); 15e86935f7SHuacai Chen int set_memory_rw(unsigned long addr, int numpages); 16e86935f7SHuacai Chen 17f04de6d8SHuacai Chen bool kernel_page_present(struct page *page); 18f04de6d8SHuacai Chen int set_direct_map_default_noflush(struct page *page); 19f04de6d8SHuacai Chen int set_direct_map_invalid_noflush(struct page *page); 20*0c6378a7SMike Rapoport (Microsoft) int set_direct_map_valid_noflush(struct page *page, unsigned nr, bool valid); 21f04de6d8SHuacai Chen 22e86935f7SHuacai Chen #endif /* _ASM_LOONGARCH_SET_MEMORY_H */ 23