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