| /hyp/misc/vet/src/ |
| A D | vet.c | 38 thread_t *vcpu = thread_get_self(); in vet_handle_thread_context_switch_pre() local 39 assert(vcpu != NULL); in vet_handle_thread_context_switch_pre() 42 vet_update_trace_unit_status(vcpu); in vet_handle_thread_context_switch_pre() 45 vet_flush_trace(vcpu); in vet_handle_thread_context_switch_pre() 53 vet_flush_buffer(vcpu); in vet_handle_thread_context_switch_pre() 66 assert(vcpu != NULL); in vet_handle_thread_load_state() 118 if (may_poweroff && (vcpu != NULL) && vcpu->vet_trace_buffer_enabled) { in vet_handle_power_cpu_suspend() 122 if ((vcpu != NULL) && vcpu->vet_trace_unit_enabled) { in vet_handle_power_cpu_suspend() 138 if ((vcpu != NULL) && vcpu->vet_trace_unit_enabled) { in vet_unwind_power_cpu_suspend() 153 if (was_poweroff && (vcpu != NULL) && vcpu->vet_trace_buffer_enabled) { in vet_handle_power_cpu_resume() [all …]
|
| /hyp/vm/vcpu_power/src/ |
| A D | vcpu_power.c | 23 assert((vcpu != NULL) && !vcpu->vcpu_power_should_vote); in vcpu_power_handle_vcpu_poweron() 24 vcpu->vcpu_power_should_vote = true; in vcpu_power_handle_vcpu_poweron() 30 if (vcpu_run_is_enabled(vcpu)) { in vcpu_power_handle_vcpu_poweron() 48 assert((vcpu != NULL) && vcpu->vcpu_power_should_vote); in vcpu_power_handle_vcpu_poweroff() 54 if (vcpu_run_is_enabled(vcpu)) { in vcpu_power_handle_vcpu_poweroff() 69 thread_t *vcpu = thread_get_self(); in vcpu_power_handle_vcpu_stopped() local 70 assert((vcpu != NULL) && (vcpu->kind == THREAD_KIND_VCPU)); in vcpu_power_handle_vcpu_stopped() 72 scheduler_lock_nopreempt(vcpu); in vcpu_power_handle_vcpu_stopped() 80 if (vcpu_run_is_enabled(vcpu)) { in vcpu_power_handle_vcpu_stopped() 90 scheduler_unlock_nopreempt(vcpu); in vcpu_power_handle_vcpu_stopped() [all …]
|
| /hyp/vm/vcpu_run/src/ |
| A D | vcpu_run.c | 115 scheduler_lock(vcpu); in hypercall_vcpu_run() 162 scheduler_unlock(vcpu); in hypercall_vcpu_run() 164 object_put_thread(vcpu); in hypercall_vcpu_run() 190 scheduler_lock(vcpu); in hypercall_vcpu_run_check() 201 scheduler_unlock(vcpu); in hypercall_vcpu_run_check() 204 object_put_thread(vcpu); in hypercall_vcpu_run_check() 214 scheduler_lock(vcpu); in vcpu_run_handle_vcpu_bind_virq() 231 scheduler_unlock(vcpu); in vcpu_run_handle_vcpu_bind_virq() 248 thread_t *vcpu = in vcpu_run_handle_task_queue_execute() local 251 assert(vcpu != NULL); in vcpu_run_handle_task_queue_execute() [all …]
|
| /hyp/vm/vcpu/aarch64/src/ |
| A D | hypercalls.c | 77 object_put_thread(vcpu); in hypercall_vcpu_configure() 97 thread_t *vcpu = result.r; in hypercall_vcpu_register_write() local 101 object_put_thread(vcpu); in hypercall_vcpu_register_write() 133 object_put_thread(vcpu); in hypercall_vcpu_bind_virq() 154 object_put_thread(vcpu); in hypercall_vcpu_unbind_virq() 194 object_put_thread(vcpu); 213 object_put_thread(vcpu); 242 scheduler_lock(vcpu); 245 vcpu, 260 scheduler_unlock(vcpu); [all …]
|
| A D | aarch64_init.c | 101 if (thread_get_self() == vcpu) { in arch_vcpu_el1_registers_init() 341 assert((vcpu != NULL) && (vcpu->kind == THREAD_KIND_VCPU)); in vcpu_reset_execution_context() 346 arch_vcpu_el1_registers_init(vcpu); in vcpu_reset_execution_context() 365 assert(vcpu != NULL); in vcpu_poweron() 369 if (thread_is_dying(vcpu) || thread_has_exited(vcpu)) { in vcpu_poweron() 378 vcpu_reset_execution_context(vcpu); in vcpu_poweron() 485 vcpu_resume(thread_t *vcpu) in vcpu_resume() argument 487 assert(vcpu != NULL); in vcpu_resume() 499 thread_t *vcpu = thread_get_self(); in vcpu_warm_reset() local 507 vcpu_reset_execution_context(vcpu); in vcpu_warm_reset() [all …]
|
| A D | reg_access.c | 45 vcpu_register_write(thread_t *vcpu, vcpu_register_set_t register_set, in vcpu_register_write() argument 50 if (compiler_expected(vcpu->kind != THREAD_KIND_VCPU)) { in vcpu_register_write() 55 scheduler_lock(vcpu); in vcpu_register_write() 57 thread_state_t state = atomic_load_relaxed(&vcpu->state); in vcpu_register_write() 64 if (!scheduler_is_blocked(vcpu, SCHEDULER_BLOCK_VCPU_OFF)) { in vcpu_register_write() 73 vcpu_gpr_write(vcpu, (uint8_t)register_index, value); in vcpu_register_write() 84 vcpu->vcpu_regs_gpr.pc = ELR_EL2_cast(value); in vcpu_register_write() 94 vcpu->vcpu_regs_el1.sp_el0 = SP_EL0_cast(value); in vcpu_register_write() 97 vcpu->vcpu_regs_el1.sp_el1 = SP_EL1_cast(value); in vcpu_register_write() 109 scheduler_unlock(vcpu); in vcpu_register_write()
|
| A D | wfi.c | 137 vcpu_wakeup(thread_t *vcpu) in vcpu_wakeup() argument 139 assert(vcpu != NULL); in vcpu_wakeup() 140 assert(vcpu->kind == THREAD_KIND_VCPU); in vcpu_wakeup() 143 if (vcpu == thread_get_self()) { in vcpu_wakeup() 145 vcpu_runtime_flags_set_vcpu_interrupted(&vcpu->vcpu_flags, in vcpu_wakeup() 150 trigger_vcpu_wakeup_event(vcpu); in vcpu_wakeup() 152 if (scheduler_unblock(vcpu, SCHEDULER_BLOCK_VCPU_WFI)) { in vcpu_wakeup()
|
| /hyp/mem/addrspace/aarch64/src/ |
| A D | vmmio.c | 72 if (scheduler_is_blocked(vcpu, in addrspace_handle_vcpu_run_check() 74 *state_data_0 = (register_t)vcpu->addrspace_vmmio_access_ipa; in addrspace_handle_vcpu_run_check() 75 *state_data_1 = (register_t)vcpu->addrspace_vmmio_access_size; in addrspace_handle_vcpu_run_check() 76 *state_data_2 = (register_t)vcpu->addrspace_vmmio_access_value; in addrspace_handle_vcpu_run_check() 77 ret = vcpu->addrspace_vmmio_access_write in addrspace_handle_vcpu_run_check() 90 assert(scheduler_is_blocked(vcpu, in addrspace_handle_vcpu_run_resume_read() 92 !vcpu->addrspace_vmmio_access_write); in addrspace_handle_vcpu_run_resume_read() 93 vcpu->addrspace_vmmio_access_value = resume_data_0; in addrspace_handle_vcpu_run_resume_read() 99 addrspace_handle_vcpu_run_resume_write(thread_t *vcpu) in addrspace_handle_vcpu_run_resume_write() argument 101 assert(scheduler_is_blocked(vcpu, in addrspace_handle_vcpu_run_resume_write() [all …]
|
| /hyp/vm/vgic/src/ |
| A D | deliver.c | 816 unlisted = vgic_sync_lr(vic, vcpu, &vcpu->vgic_lrs[i], in vgic_undeliver() 1866 virq, vcpu, in vgic_reclaim_lr() 3080 gicv3_read_ich_aprs(vcpu->vgic_ap0rs, vcpu->vgic_ap1rs); in vgic_handle_thread_save_state() 3111 if (!vcpu->vgic_group0_enabled && !vcpu->vgic_group1_enabled) { in vgic_do_delivery_check() 3448 (void)vgic_sync_lr(vic, vcpu, &vcpu->vgic_lrs[i], in vgic_reroute_all() 3658 gicv3_write_ich_aprs(vcpu->vgic_ap0rs, vcpu->vgic_ap1rs); in vgic_handle_thread_load_state() 3771 (vcpu->vgic_group0_enabled || vcpu->vgic_group1_enabled)) { in vgic_handle_vcpu_pending_wakeup() 3800 if (vcpu->vgic_group0_enabled || vcpu->vgic_group1_enabled) { in vgic_handle_vcpu_stopped() 3808 vcpu->vgic_vic, vcpu, GICD_CTLR_DS_default()); in vgic_handle_vcpu_stopped() 3838 vgic_reclaim_lr(vcpu->vgic_vic, vcpu, lr, in vgic_handle_vcpu_trap_wfi() [all …]
|
| A D | util.c | 186 assert(vcpu != NULL); in vgic_find_source() 188 &vcpu->vgic_sources[virq - GIC_PPI_BASE]); in vgic_find_source() 209 assert(vcpu != NULL); in _Atomic() 210 dstate = &vcpu->vgic_private_states[virq]; in _Atomic() 245 vgic_lr_owner_lock(thread_t *vcpu) in vgic_lr_owner_lock() argument 248 return vgic_lr_owner_lock_nopreempt(vcpu); in vgic_lr_owner_lock() 252 vgic_lr_owner_lock_nopreempt(thread_t *vcpu) LOCK_IMPL in vgic_lr_owner_lock_nopreempt() argument 255 if ((vcpu != NULL) && (vcpu != thread_get_self())) { in vgic_lr_owner_lock_nopreempt() 266 vgic_lr_owner_unlock(thread_t *vcpu) in vgic_lr_owner_unlock() argument 268 vgic_lr_owner_unlock_nopreempt(vcpu); in vgic_lr_owner_unlock() [all …]
|
| A D | vgic.c | 11 vic_get_vic(const thread_t *vcpu) in vic_get_vic() argument 13 return vcpu->vgic_vic; in vic_get_vic()
|
| /hyp/vm/vetm/src/ |
| A D | vetm.c | 89 assert(vcpu != NULL); in vetm_vdevice_write() 94 vcpu->vetm_enabled = ((val & 0x1U) != 0U); in vetm_vdevice_write() 111 (void)vcpu; in vetm_vdevice_read() 126 thread_t *vcpu = thread_get_self(); in vetm_handle_vdevice_access_fixed_addr() local 127 assert(vcpu != NULL); in vetm_handle_vdevice_access_fixed_addr() 148 ret = vetm_vdevice_read(vcpu, pcpu, offset, in vetm_handle_vdevice_access_fixed_addr() 162 thread_t *vcpu = thread_get_self(); in vetm_handle_thread_load_state() local 163 assert(vcpu != NULL); in vetm_handle_thread_load_state() 168 sizeof(vcpu->vetm_trcvi_ctlr)); in vetm_handle_thread_load_state() 175 thread_t *vcpu = thread_get_self(); in vetm_handle_thread_context_switch_pre() local [all …]
|
| /hyp/vm/vic_base/src/ |
| A D | forward_private.c | 60 scheduler_lock(vcpu); in vic_bind_private_hwirq_helper() 61 cpu = vcpu->scheduler_affinity; in vic_bind_private_hwirq_helper() 62 scheduler_unlock(vcpu); in vic_bind_private_hwirq_helper() 73 vcpu, fp->virq, irq_info->irq, in vic_bind_private_hwirq_helper() 116 scheduler_lock(vcpu); in vic_sync_private_hwirq_helper() 118 scheduler_unlock(vcpu); in vic_sync_private_hwirq_helper() 135 scheduler_lock(vcpu); in vic_disable_private_hwirq_helper() 137 scheduler_unlock(vcpu); in vic_disable_private_hwirq_helper() 200 if ((vcpu != NULL) && vcpu->vic_base_forward_private_active) { in vic_bind_hwirq_forward_private() 420 vic_t *vic = vic_get_vic(vcpu); in vic_base_handle_vcpu_started() [all …]
|
| /hyp/interfaces/vcpu/include/ |
| A D | vcpu.h | 23 vcpu_poweron(thread_t *vcpu, vmaddr_result_t entry_point, 24 register_result_t context) REQUIRE_SCHEDULER_LOCK(vcpu); 78 vcpu_resume(thread_t *vcpu) REQUIRE_SCHEDULER_LOCK(vcpu); 89 vcpu_wakeup(thread_t *vcpu) REQUIRE_SCHEDULER_LOCK(vcpu); 162 vcpu_bind_virq(thread_t *vcpu, vic_t *vic, virq_t virq, 166 vcpu_unbind_virq(thread_t *vcpu, vcpu_virq_type_t virq_type);
|
| /hyp/interfaces/vcpu/ |
| A D | build.conf | 5 types vcpu.tc 6 events vcpu.ev 8 arch_types armv8 vcpu.tc 9 arch_types aarch64 vcpu.tc
|
| /hyp/vm/vgic/include/ |
| A D | internal.h | 11 (uintptr_t)vcpu, __VA_ARGS__) 15 (uintptr_t)vcpu, __VA_ARGS__) 35 EXCLUDE_SCHEDULER_LOCK(vcpu); 38 vgic_undeliver(vic_t *vic, thread_t *vcpu, 41 EXCLUDE_SCHEDULER_LOCK(vcpu); 44 vgic_undeliver_all(vic_t *vic, thread_t *vcpu) EXCLUDE_SCHEDULER_LOCK(vcpu); 47 vgic_deactivate(vic_t *vic, thread_t *vcpu, virq_t virq, 67 vgic_lr_owner_lock(thread_t *vcpu) ACQUIRE_LOCK(vcpu->vgic_lr_owner_lock) 71 vgic_lr_owner_lock_nopreempt(thread_t *vcpu) 75 vgic_lr_owner_unlock(thread_t *vcpu) RELEASE_LOCK(vcpu->vgic_lr_owner_lock) [all …]
|
| /hyp/vm/vcpu/src/ |
| A D | vcpu.c | 153 vcpu_bind_virq(thread_t *vcpu, vic_t *vic, virq_t virq, in vcpu_bind_virq() argument 156 return trigger_vcpu_bind_virq_event(virq_type, vcpu, vic, virq); in vcpu_bind_virq() 160 vcpu_unbind_virq(thread_t *vcpu, vcpu_virq_type_t virq_type) in vcpu_unbind_virq() argument 162 return trigger_vcpu_unbind_virq_event(virq_type, vcpu); in vcpu_unbind_virq() 166 vcpu_handle_vcpu_bind_virq(thread_t *vcpu, vic_t *vic, virq_t virq) in vcpu_handle_vcpu_bind_virq() argument 168 error_t err = vic_bind_shared(&vcpu->vcpu_halt_virq_src, vic, virq, in vcpu_handle_vcpu_bind_virq() 175 vcpu_handle_vcpu_unbind_virq(thread_t *vcpu) in vcpu_handle_vcpu_unbind_virq() argument 177 vic_unbind_sync(&vcpu->vcpu_halt_virq_src); in vcpu_handle_vcpu_unbind_virq()
|
| /hyp/vm/psci/include/ |
| A D | psci_common.h | 34 psci_vpm_active_vcpus_get(cpu_index_t cpu, thread_t *vcpu) 35 REQUIRE_SCHEDULER_LOCK(vcpu); 38 psci_vpm_active_vcpus_put(cpu_index_t cpu, thread_t *vcpu) 39 REQUIRE_SCHEDULER_LOCK(vcpu);
|
| A D | psci_pm_list.h | 16 psci_pm_list_insert(cpu_index_t cpu_index, thread_t *vcpu); 20 psci_pm_list_delete(cpu_index_t cpu_index, thread_t *vcpu);
|
| /hyp/vm/psci/src/ |
| A D | psci_pm_list.c | 35 psci_pm_list_insert(cpu_index_t cpu_index, thread_t *vcpu) in psci_pm_list_insert() argument 40 list_insert_at_tail_release(list, &vcpu->psci_pm_list_node); in psci_pm_list_insert() 45 psci_pm_list_delete(cpu_index_t cpu_index, thread_t *vcpu) in psci_pm_list_delete() argument 50 (void)list_delete_node(list, &vcpu->psci_pm_list_node); in psci_pm_list_delete()
|
| /hyp/vm/vetm_null/src/ |
| A D | vetm_null.c | 23 thread_t *vcpu = thread_get_self(); in vetm_null_handle_vdevice_access_fixed_addr() local 24 assert(vcpu != NULL); in vetm_null_handle_vdevice_access_fixed_addr() 26 if (!vcpu_option_flags_get_hlos_vm(&vcpu->vcpu_options)) { in vetm_null_handle_vdevice_access_fixed_addr()
|
| /hyp/vm/vic_base/include/ |
| A D | vic_base.h | 14 vic_attach_vcpu(vic_t *vic, thread_t *vcpu, index_t index); 20 thread_t *vcpu, virq_t virq); 24 thread_t *vcpu, virq_t virq, irq_t pirq,
|
| /hyp/interfaces/vcpu_run/include/ |
| A D | vcpu_run.h | 15 vcpu_run_is_enabled(const thread_t *vcpu) REQUIRE_SCHEDULER_LOCK(vcpu);
|
| /hyp/vm/vcpu/include/ |
| A D | vcpu.h | 6 vcpu_bind_virq(thread_t *vcpu, vic_t *vic, virq_t virq, 10 vcpu_unbind_virq(thread_t *vcpu, vcpu_virq_type_t virq_type);
|
| /hyp/vm/vcpu/ |
| A D | build.conf | 5 interface vcpu 8 types vcpu.tc 9 events vcpu.ev 10 source vcpu.c
|