blob: a471efb132c8a8894502b7d4eaf802fe09d837cc [file] [log] [blame]
David Cunadoce88eee2017-10-20 11:30:57 +01001/*
Boyan Karatotev90b7b752024-11-15 15:03:02 +00002 * Copyright (c) 2017-2025, Arm Limited and Contributors. All rights reserved.
David Cunadoce88eee2017-10-20 11:30:57 +01003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Antonio Nino Diaz033b4bb2018-10-25 16:52:26 +01007#ifndef SVE_H
8#define SVE_H
David Cunadoce88eee2017-10-20 11:30:57 +01009
Max Shvetsovc4502772021-03-22 11:59:37 +000010#include <context.h>
Antonio Nino Diaz033b4bb2018-10-25 16:52:26 +010011
Jayanth Dodderi Chidanandd62c6812023-03-07 10:43:19 +000012#if (ENABLE_SME_FOR_NS || ENABLE_SVE_FOR_NS)
Madhukar Pappireddy78728cd2024-06-17 15:22:36 -050013
Boyan Karatotev90b7b752024-11-15 15:03:02 +000014void sve_init_el3(void);
Boyan Karatotev6468d4a2023-02-16 15:12:45 +000015void sve_init_el2_unused(void);
Elizabeth Ho4fc00d22023-07-18 14:10:25 +010016void sve_enable_per_world(per_world_context_t *per_world_ctx);
17void sve_disable_per_world(per_world_context_t *per_world_ctx);
Jayanth Dodderi Chidanandd62c6812023-03-07 10:43:19 +000018#else
Boyan Karatotev90b7b752024-11-15 15:03:02 +000019static inline void sve_init_el3(void)
20{
21}
Elizabeth Ho4fc00d22023-07-18 14:10:25 +010022static inline void sve_init_el2_unused(void)
Jayanth Dodderi Chidanandd62c6812023-03-07 10:43:19 +000023{
24}
Elizabeth Ho4fc00d22023-07-18 14:10:25 +010025static inline void sve_enable_per_world(per_world_context_t *per_world_ctx)
Boyan Karatotev6468d4a2023-02-16 15:12:45 +000026{
27}
Elizabeth Ho4fc00d22023-07-18 14:10:25 +010028static inline void sve_disable_per_world(per_world_context_t *per_world_ctx)
Jayanth Dodderi Chidanandd62c6812023-03-07 10:43:19 +000029{
30}
31#endif /* ( ENABLE_SME_FOR_NS | ENABLE_SVE_FOR_NS ) */
David Cunadoce88eee2017-10-20 11:30:57 +010032
Madhukar Pappireddy78728cd2024-06-17 15:22:36 -050033#if CTX_INCLUDE_SVE_REGS
34void sve_context_save(simd_regs_t *regs);
35void sve_context_restore(simd_regs_t *regs);
36#endif
37
Antonio Nino Diaz033b4bb2018-10-25 16:52:26 +010038#endif /* SVE_H */