1 /* SPDX-License-Identifier: GPL-2.0 */ 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 2 3 /* 3 /* 4 * Xen memory reservation utilities. 4 * Xen memory reservation utilities. 5 * 5 * 6 * Copyright (c) 2003, B Dragovic 6 * Copyright (c) 2003, B Dragovic 7 * Copyright (c) 2003-2004, M Williamson, K Fr 7 * Copyright (c) 2003-2004, M Williamson, K Fraser 8 * Copyright (c) 2005 Dan M. Smith, IBM Corpor 8 * Copyright (c) 2005 Dan M. Smith, IBM Corporation 9 * Copyright (c) 2010 Daniel Kiper 9 * Copyright (c) 2010 Daniel Kiper 10 * Copyright (c) 2018 Oleksandr Andrushchenko, 10 * Copyright (c) 2018 Oleksandr Andrushchenko, EPAM Systems Inc. 11 */ 11 */ 12 12 13 #ifndef _XENMEM_RESERVATION_H 13 #ifndef _XENMEM_RESERVATION_H 14 #define _XENMEM_RESERVATION_H 14 #define _XENMEM_RESERVATION_H 15 15 16 #include <linux/highmem.h> 16 #include <linux/highmem.h> 17 17 18 #include <xen/page.h> 18 #include <xen/page.h> 19 19 20 extern bool xen_scrub_pages; 20 extern bool xen_scrub_pages; 21 21 22 static inline void xenmem_reservation_scrub_pa 22 static inline void xenmem_reservation_scrub_page(struct page *page) 23 { 23 { 24 if (xen_scrub_pages) 24 if (xen_scrub_pages) 25 clear_highpage(page); 25 clear_highpage(page); 26 } 26 } 27 27 28 #ifdef CONFIG_XEN_HAVE_PVMMU 28 #ifdef CONFIG_XEN_HAVE_PVMMU 29 void __xenmem_reservation_va_mapping_update(un 29 void __xenmem_reservation_va_mapping_update(unsigned long count, 30 st 30 struct page **pages, 31 xe 31 xen_pfn_t *frames); 32 32 33 void __xenmem_reservation_va_mapping_reset(uns 33 void __xenmem_reservation_va_mapping_reset(unsigned long count, 34 str 34 struct page **pages); 35 #endif 35 #endif 36 36 37 static inline void xenmem_reservation_va_mappi 37 static inline void xenmem_reservation_va_mapping_update(unsigned long count, 38 38 struct page **pages, 39 39 xen_pfn_t *frames) 40 { 40 { 41 #ifdef CONFIG_XEN_HAVE_PVMMU 41 #ifdef CONFIG_XEN_HAVE_PVMMU 42 if (!xen_feature(XENFEAT_auto_translat 42 if (!xen_feature(XENFEAT_auto_translated_physmap)) 43 __xenmem_reservation_va_mappin 43 __xenmem_reservation_va_mapping_update(count, pages, frames); 44 #endif 44 #endif 45 } 45 } 46 46 47 static inline void xenmem_reservation_va_mappi 47 static inline void xenmem_reservation_va_mapping_reset(unsigned long count, 48 48 struct page **pages) 49 { 49 { 50 #ifdef CONFIG_XEN_HAVE_PVMMU 50 #ifdef CONFIG_XEN_HAVE_PVMMU 51 if (!xen_feature(XENFEAT_auto_translat 51 if (!xen_feature(XENFEAT_auto_translated_physmap)) 52 __xenmem_reservation_va_mappin 52 __xenmem_reservation_va_mapping_reset(count, pages); 53 #endif 53 #endif 54 } 54 } 55 55 56 int xenmem_reservation_increase(int count, xen 56 int xenmem_reservation_increase(int count, xen_pfn_t *frames); 57 57 58 int xenmem_reservation_decrease(int count, xen 58 int xenmem_reservation_decrease(int count, xen_pfn_t *frames); 59 59 60 #endif 60 #endif 61 61
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.