2018-07-20 12:01:44 +03:00
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Xen memory reservation utilities .
*
* Copyright ( c ) 2003 , B Dragovic
* Copyright ( c ) 2003 - 2004 , M Williamson , K Fraser
* Copyright ( c ) 2005 Dan M . Smith , IBM Corporation
* Copyright ( c ) 2010 Daniel Kiper
* Copyright ( c ) 2018 Oleksandr Andrushchenko , EPAM Systems Inc .
*/
# ifndef _XENMEM_RESERVATION_H
# define _XENMEM_RESERVATION_H
# include <linux/highmem.h>
# include <xen/page.h>
2018-09-07 19:49:08 +03:00
extern bool xen_scrub_pages ;
2018-07-20 12:01:44 +03:00
static inline void xenmem_reservation_scrub_page ( struct page * page )
{
2018-09-07 19:49:08 +03:00
if ( xen_scrub_pages )
clear_highpage ( page ) ;
2018-07-20 12:01:44 +03:00
}
# ifdef CONFIG_XEN_HAVE_PVMMU
void __xenmem_reservation_va_mapping_update ( unsigned long count ,
struct page * * pages ,
xen_pfn_t * frames ) ;
void __xenmem_reservation_va_mapping_reset ( unsigned long count ,
struct page * * pages ) ;
# endif
static inline void xenmem_reservation_va_mapping_update ( unsigned long count ,
struct page * * pages ,
xen_pfn_t * frames )
{
# ifdef CONFIG_XEN_HAVE_PVMMU
if ( ! xen_feature ( XENFEAT_auto_translated_physmap ) )
__xenmem_reservation_va_mapping_update ( count , pages , frames ) ;
# endif
}
static inline void xenmem_reservation_va_mapping_reset ( unsigned long count ,
struct page * * pages )
{
# ifdef CONFIG_XEN_HAVE_PVMMU
if ( ! xen_feature ( XENFEAT_auto_translated_physmap ) )
__xenmem_reservation_va_mapping_reset ( count , pages ) ;
# endif
}
int xenmem_reservation_increase ( int count , xen_pfn_t * frames ) ;
int xenmem_reservation_decrease ( int count , xen_pfn_t * frames ) ;
# endif