1 // © 2021 Qualcomm Innovation Center, Inc. All rights reserved. 2 // 3 // SPDX-License-Identifier: BSD-3-Clause 4 5 // clang-format off 6 7 #define PSCI_FUNCTION(fn, feat, h, ...) \ 8 subscribe smccc_call_fast_32_standard[(smccc_function_t)PSCI_FUNCTION_ ## fn]; \ 9 handler psci_ ## h ## _32(__VA_ARGS__); \ 10 exclude_preempt_disabled. \ 11 subscribe psci_features32[PSCI_FUNCTION_ ## fn]; \ 12 constant feat. \ 13 subscribe smccc_call_fast_64_standard[(smccc_function_t)PSCI_FUNCTION_ ## fn]; \ 14 handler psci_ ## h ## _64(__VA_ARGS__); \ 15 exclude_preempt_disabled. \ 16 subscribe psci_features64[PSCI_FUNCTION_ ## fn]; \ 17 constant feat. 18 19 #define PSCI_FUNCTION32(fn, feat, h, ...) \ 20 subscribe smccc_call_fast_32_standard[(smccc_function_t)PSCI_FUNCTION_ ## fn]; \ 21 handler psci_ ## h(__VA_ARGS__); \ 22 exclude_preempt_disabled. \ 23 subscribe psci_features32[PSCI_FUNCTION_ ## fn]; \ 24 constant feat. 25 26 #define PSCI_FUNCTION_PERVM(fn, h, ...) \ 27 subscribe smccc_call_fast_32_standard[(smccc_function_t)PSCI_FUNCTION_ ## fn]; \ 28 handler psci_ ## h ## _32(__VA_ARGS__); \ 29 exclude_preempt_disabled. \ 30 subscribe psci_features32[PSCI_FUNCTION_ ## fn]; \ 31 handler psci_ ## h ## _32_features(). \ 32 subscribe smccc_call_fast_64_standard[(smccc_function_t)PSCI_FUNCTION_ ## fn]; \ 33 handler psci_ ## h ## _64(__VA_ARGS__); \ 34 exclude_preempt_disabled. \ 35 subscribe psci_features64[PSCI_FUNCTION_ ## fn]; \ 36 handler psci_ ## h ## _64_features(). \ 37 38 #define PSCI_FUNCTION32_PERVM(fn, h, ...) \ 39 subscribe smccc_call_fast_32_standard[(smccc_function_t)PSCI_FUNCTION_ ## fn]; \ 40 handler psci_ ## h(__VA_ARGS__); \ 41 exclude_preempt_disabled. \ 42 subscribe psci_features32[PSCI_FUNCTION_ ## fn]; \ 43 handler psci_ ## h ## _features(). 44