david/ipxe
david
/
ipxe
Archived
1
0
Fork 0
This repository has been archived on 2020-12-06. You can view files and clone it, but cannot push or open issues or pull requests.
ipxe/src/include/ipxe/xenmem.h

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 */