mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
viridian: add init hooks
This patch adds domain and vcpu init hooks for viridian features. The init hooks do not yet do anything; the functionality will be added to by subsequent patches. Signed-off-by: Paul Durrant <paul.durrant@citrix.com> Reviewed-by: Wei Liu <wei.liu2@citrix.com> Acked-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
1 parent
704caeb93c
commit
40a4a9d72d
3 files changed
+23
No files matched your search
@@ -666,6 +666,10 @@ int hvm_domain_initialise(struct domain *d)
|
||||
if ( hvm_tsc_scaling_supported )
|
||||
d->arch.hvm.tsc_scaling_ratio = hvm_default_tsc_scaling_ratio;
|
||||
|
||||
rc = viridian_domain_init(d);
|
||||
if ( rc )
|
||||
goto fail2;
|
||||
|
||||
rc = hvm_funcs.domain_initialise(d);
|
||||
if ( rc != 0 )
|
||||
goto fail2;
|
||||
@@ -687,6 +691,7 @@ int hvm_domain_initialise(struct domain *d)
|
||||
hvm_destroy_cacheattr_region_list(d);
|
||||
destroy_perdomain_mapping(d, PERDOMAIN_VIRT_START, 0);
|
||||
fail:
|
||||
viridian_domain_deinit(d);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -1526,6 +1531,10 @@ int hvm_vcpu_initialise(struct vcpu *v)
|
||||
&& (rc = nestedhvm_vcpu_initialise(v)) < 0 ) /* teardown: nestedhvm_vcpu_destroy */
|
||||
goto fail5;
|
||||
|
||||
rc = viridian_vcpu_init(v);
|
||||
if ( rc )
|
||||
goto fail5;
|
||||
|
||||
rc = hvm_all_ioreq_servers_add_vcpu(d, v);
|
||||
if ( rc != 0 )
|
||||
goto fail6;
|
||||
@@ -1553,6 +1562,7 @@ int hvm_vcpu_initialise(struct vcpu *v)
|
||||
fail2:
|
||||
hvm_vcpu_cacheattr_destroy(v);
|
||||
fail1:
|
||||
viridian_vcpu_deinit(v);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
@@ -417,6 +417,16 @@ int guest_rdmsr_viridian(const struct vcpu *v, uint32_t idx, uint64_t *val)
|
||||
return X86EMUL_OKAY;
|
||||
}
|
||||
|
||||
int viridian_vcpu_init(struct vcpu *v)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int viridian_domain_init(struct domain *d)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void viridian_vcpu_deinit(struct vcpu *v)
|
||||
{
|
||||
viridian_synic_wrmsr(v, HV_X64_MSR_VP_ASSIST_PAGE, 0);
|
||||
|
||||
@@ -80,6 +80,9 @@ viridian_hypercall(struct cpu_user_regs *regs);
|
||||
void viridian_time_ref_count_freeze(struct domain *d);
|
||||
void viridian_time_ref_count_thaw(struct domain *d);
|
||||
|
||||
int viridian_vcpu_init(struct vcpu *v);
|
||||
int viridian_domain_init(struct domain *d);
|
||||
|
||||
void viridian_vcpu_deinit(struct vcpu *v);
|
||||
void viridian_domain_deinit(struct domain *d);
|
||||
|
||||
|
||||