blob: dcc38d460a486ea3d3a622146d382f29429c97a6 [file] [log] [blame]
#ifndef _IPXE_XENMEM_H
#define _IPXE_XENMEM_H
/** @file
*
* Xen memory operations
*
*/
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#include <ipxe/xen.h>
#include <xen/memory.h>
/**
* Add page to physical address space
*
* @v xen Xen hypervisor
* @v add Page mapping descriptor
* @ret xenrc Xen status code
*/
static inline __attribute__ (( always_inline )) int
xenmem_add_to_physmap ( struct xen_hypervisor *xen,
struct xen_add_to_physmap *add ) {
return xen_hypercall_2 ( xen, __HYPERVISOR_memory_op,
XENMEM_add_to_physmap, virt_to_phys ( add ) );
}
/**
* Remove page from physical address space
*
* @v xen Xen hypervisor
* @v remove Page mapping descriptor
* @ret xenrc Xen status code
*/
static inline __attribute__ (( always_inline )) int
xenmem_remove_from_physmap ( struct xen_hypervisor *xen,
struct xen_remove_from_physmap *remove ) {
return xen_hypercall_2 ( xen, __HYPERVISOR_memory_op,
XENMEM_remove_from_physmap,
virt_to_phys ( remove ) );
}
#endif /* _IPXE_XENMEM_H */