mirror of https://github.com/ipxe/ipxe.git
47 lines
1.0 KiB
C
47 lines
1.0 KiB
C
#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 */
|