1 // © 2021 Qualcomm Innovation Center, Inc. All rights reserved. 2 // 3 // SPDX-License-Identifier: BSD-3-Clause 4 5 #define vpm__vcpus_state_foreach(cpu_index, cpu_state, vcpus_state, i) \ 6 cpu_state = \ 7 (psci_cpu_state_t)(uint32_t)(vcpus_state & \ 8 PSCI_VCPUS_STATE_PER_VCPU_MASK); \ 9 cpu_index = 0; \ 10 for (index_t i = 0; i < PSCI_VCPUS_STATE_MAX_INDEX; \ 11 i += PSCI_VCPUS_STATE_PER_VCPU_BITS, cpu_index++, \ 12 cpu_state = \ 13 (psci_cpu_state_t)(uint32_t)((vcpus_state >> i) & \ 14 PSCI_VCPUS_STATE_PER_VCPU_MASK)) 15 16 #define vpm_vcpus_state_foreach(cpu_index, cpu_state, vcpus_state) \ 17 vpm__vcpus_state_foreach((cpu_index), (cpu_state), (vcpus_state), \ 18 util_cpp_unique_ident(i)) 19 20 error_t 21 vpm_group_configure(vpm_group_t *vpm_group, vpm_group_option_flags_t flags); 22 23 error_t 24 vpm_attach(vpm_group_t *pg, thread_t *thread, index_t index); 25 26 error_t 27 vpm_bind_virq(vpm_group_t *vpm_group, vic_t *vic, virq_t virq); 28 29 void 30 vpm_unbind_virq(vpm_group_t *vpm_group); 31 32 vpm_state_t 33 vpm_get_state(vpm_group_t *vpm_group); 34