1 // © 2021 Qualcomm Innovation Center, Inc. All rights reserved. 2 // 3 // SPDX-License-Identifier: BSD-3-Clause 4 5 // Called by psci_common 6 7 error_t 8 psci_vcpu_suspend(thread_t *current) REQUIRE_PREEMPT_DISABLED; 9 10 void 11 psci_vcpu_resume(thread_t *thread) REQUIRE_PREEMPT_DISABLED; 12 13 void 14 psci_vcpu_clear_vcpu_state(thread_t *thread, cpu_index_t target_cpu) 15 REQUIRE_PREEMPT_DISABLED REQUIRE_SCHEDULER_LOCK(thread); 16 17 uint32_t 18 psci_cpu_suspend_features(void); 19 20 // Implemented by psci_common 21 22 psci_ret_t 23 psci_suspend(psci_suspend_powerstate_t suspend_state, 24 paddr_t entry_point_address, register_t context_id) 25 EXCLUDE_PREEMPT_DISABLED; 26 27 bool 28 psci_set_vpm_active_pcpus_bit(cpu_index_t bit); 29 30 bool 31 psci_clear_vpm_active_pcpus_bit(cpu_index_t bit); 32 33 void 34 psci_vpm_active_vcpus_get(cpu_index_t cpu, thread_t *vcpu) 35 REQUIRE_SCHEDULER_LOCK(vcpu); 36 37 void 38 psci_vpm_active_vcpus_put(cpu_index_t cpu, thread_t *vcpu) 39 REQUIRE_SCHEDULER_LOCK(vcpu); 40 41 bool 42 psci_vpm_active_vcpus_is_zero(cpu_index_t cpu); 43 44 bool 45 vcpus_state_is_any_awake(vpm_group_suspend_state_t vm_state, uint32_t level, 46 cpu_index_t cpu); 47 48 void 49 vcpus_state_set(vpm_group_suspend_state_t *vm_state, cpu_index_t cpu, 50 psci_cpu_state_t cpu_state); 51 52 void 53 vcpus_state_clear(vpm_group_suspend_state_t *vm_state, cpu_index_t cpu); 54