xref: /rk3399_ARM-atf/include/lib/extensions/sve.h (revision 6d5319afecf62f931fe03c12f2dbc398e959c7f0)
11a853370SDavid Cunado /*
2*6d5319afSMadhukar Pappireddy  * Copyright (c) 2017-2024, Arm Limited and Contributors. All rights reserved.
31a853370SDavid Cunado  *
41a853370SDavid Cunado  * SPDX-License-Identifier: BSD-3-Clause
51a853370SDavid Cunado  */
61a853370SDavid Cunado 
740daecc1SAntonio Nino Diaz #ifndef SVE_H
840daecc1SAntonio Nino Diaz #define SVE_H
91a853370SDavid Cunado 
100c5e7d1cSMax Shvetsov #include <context.h>
111a853370SDavid Cunado 
122b0bc4e0SJayanth Dodderi Chidanand #if (ENABLE_SME_FOR_NS || ENABLE_SVE_FOR_NS)
13*6d5319afSMadhukar Pappireddy 
1460d330dcSBoyan Karatotev void sve_init_el2_unused(void);
15461c0a5dSElizabeth Ho void sve_enable_per_world(per_world_context_t *per_world_ctx);
16461c0a5dSElizabeth Ho void sve_disable_per_world(per_world_context_t *per_world_ctx);
172b0bc4e0SJayanth Dodderi Chidanand #else
1860d330dcSBoyan Karatotev static inline void sve_init_el2_unused(void)
1960d330dcSBoyan Karatotev {
2060d330dcSBoyan Karatotev }
21461c0a5dSElizabeth Ho static inline void sve_enable_per_world(per_world_context_t *per_world_ctx)
22461c0a5dSElizabeth Ho {
23461c0a5dSElizabeth Ho }
24461c0a5dSElizabeth Ho static inline void sve_disable_per_world(per_world_context_t *per_world_ctx)
252b0bc4e0SJayanth Dodderi Chidanand {
262b0bc4e0SJayanth Dodderi Chidanand }
272b0bc4e0SJayanth Dodderi Chidanand #endif /* ( ENABLE_SME_FOR_NS | ENABLE_SVE_FOR_NS ) */
2840daecc1SAntonio Nino Diaz 
29*6d5319afSMadhukar Pappireddy #if CTX_INCLUDE_SVE_REGS
30*6d5319afSMadhukar Pappireddy void sve_context_save(simd_regs_t *regs);
31*6d5319afSMadhukar Pappireddy void sve_context_restore(simd_regs_t *regs);
32*6d5319afSMadhukar Pappireddy #endif
33*6d5319afSMadhukar Pappireddy 
3440daecc1SAntonio Nino Diaz #endif /* SVE_H */
35