Beispiel #1
0
void arch_domain_destroy(struct domain *d)
{
    p2m_teardown(d);
    domain_vgic_free(d);
    domain_vuart_free(d);
    free_xenheap_page(d->shared_info);
}
Beispiel #2
0
void vmx_destroy_vmcs(struct vcpu *v)
{
    struct arch_vmx_struct *arch_vmx = &v->arch.hvm_vmx;

    if ( arch_vmx->vmcs == NULL )
        return;

    vmx_clear_vmcs(v);

    vmx_free_vmcs(arch_vmx->vmcs);
    arch_vmx->vmcs = NULL;

    free_xenheap_page(v->arch.hvm_vmx.host_msr_area);
    v->arch.hvm_vmx.host_msr_area = NULL;
    free_xenheap_page(v->arch.hvm_vmx.msr_area);
    v->arch.hvm_vmx.msr_area = NULL;
    free_xenheap_page(v->arch.hvm_vmx.msr_bitmap);
    v->arch.hvm_vmx.msr_bitmap = NULL;
}
Beispiel #3
0
void arch_domain_destroy(struct domain *d)
{
    /* IOMMU page table is shared with P2M, always call
     * iommu_domain_destroy() before p2m_teardown().
     */
    iommu_domain_destroy(d);
    p2m_teardown(d);
    domain_vgic_free(d);
    domain_vuart_free(d);
    free_xenheap_page(d->shared_info);
}
Beispiel #4
0
void arch_domain_destroy(struct domain *d)
{
    /* IOMMU page table is shared with P2M, always call
     * iommu_domain_destroy() before p2m_teardown().
     */
    iommu_domain_destroy(d);
    p2m_teardown(d);
    domain_vgic_free(d);
    domain_vuart_free(d);
    free_xenheap_page(d->shared_info);
#ifdef CONFIG_ACPI
    free_xenheap_pages(d->arch.efi_acpi_table,
                       get_order_from_bytes(d->arch.efi_acpi_len));
#endif
    domain_io_free(d);
}
Beispiel #5
0
static void vmx_free_vmcs(struct vmcs_struct *vmcs)
{
    free_xenheap_page(vmcs);
}
Beispiel #6
0
void free_vcpu_struct(struct vcpu *v)
{
    free_xenheap_page(v);
}
Beispiel #7
0
void free_domain_struct(struct domain *d)
{
    xfree(d->arch.grant_table_gpfn);
    free_xenheap_page(d);
}
Beispiel #8
0
void free_vmcb(struct vmcb_struct *vmcb)
{
    free_xenheap_page(vmcb);
}