1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /****************************************************************************** 3 * include/asm-x86/hap.h 4 * 5 * hardware-assisted paging 6 * Copyright (c) 2007 Advanced Micro Devices (Wei Huang) 7 * 8 * Parts of this code are Copyright (c) 2006 by XenSource Inc. 9 * Parts of this code are Copyright (c) 2006 by Michael A Fetterman 10 * Parts based on earlier work by Michael A Fetterman, Ian Pratt et al. 11 */ 12 13 #ifndef _XEN_HAP_H 14 #define _XEN_HAP_H 15 16 #define HAP_PRINTK(_f, _a...) \ 17 debugtrace_printk("hap: %s(): " _f, __func__, ##_a) 18 19 /************************************************/ 20 /* hap domain level functions */ 21 /************************************************/ 22 void hap_domain_init(struct domain *d); 23 int hap_domctl(struct domain *d, struct xen_domctl_shadow_op *sc, 24 XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl); 25 int hap_enable(struct domain *d, u32 mode); 26 void hap_final_teardown(struct domain *d); 27 void hap_vcpu_teardown(struct vcpu *v); 28 void hap_teardown(struct domain *d, bool *preempted); 29 void hap_vcpu_init(struct vcpu *v); 30 int hap_track_dirty_vram(struct domain *d, 31 unsigned long begin_pfn, 32 unsigned int nr_frames, 33 XEN_GUEST_HANDLE(void) guest_dirty_bitmap); 34 35 extern const struct paging_mode *hap_paging_get_mode(struct vcpu *v); 36 int hap_set_allocation(struct domain *d, unsigned int pages, bool *preempted); 37 unsigned int hap_get_allocation(struct domain *d); 38 39 #endif /* XEN_HAP_H */ 40 41 /* 42 * Local variables: 43 * mode: C 44 * c-file-style: "BSD" 45 * c-basic-offset: 4 46 * indent-tabs-mode: nil 47 * End: 48 */ 49