blob: 2979efb1db780fe71f9247af139c1d52931dd1b0 [file] [log] [blame]
David Cunado1a853372017-10-20 11:30:57 +01001/*
Madhukar Pappireddy6d5319a2024-06-17 15:22:36 -05002 * Copyright (c) 2017-2024, Arm Limited and Contributors. All rights reserved.
David Cunado1a853372017-10-20 11:30:57 +01003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Antonio Nino Diaz40daecc2018-10-25 16:52:26 +01007#ifndef SVE_H
8#define SVE_H
David Cunado1a853372017-10-20 11:30:57 +01009
Max Shvetsov0c5e7d12021-03-22 11:59:37 +000010#include <context.h>
David Cunado1a853372017-10-20 11:30:57 +010011
Jayanth Dodderi Chidanand2b0bc4e2023-03-07 10:43:19 +000012#if (ENABLE_SME_FOR_NS || ENABLE_SVE_FOR_NS)
Madhukar Pappireddy6d5319a2024-06-17 15:22:36 -050013
Boyan Karatotev60d330d2023-02-16 15:12:45 +000014void sve_init_el2_unused(void);
Elizabeth Ho461c0a52023-07-18 14:10:25 +010015void sve_enable_per_world(per_world_context_t *per_world_ctx);
16void sve_disable_per_world(per_world_context_t *per_world_ctx);
Jayanth Dodderi Chidanand2b0bc4e2023-03-07 10:43:19 +000017#else
Boyan Karatotev60d330d2023-02-16 15:12:45 +000018static inline void sve_init_el2_unused(void)
19{
20}
Elizabeth Ho461c0a52023-07-18 14:10:25 +010021static inline void sve_enable_per_world(per_world_context_t *per_world_ctx)
22{
23}
24static inline void sve_disable_per_world(per_world_context_t *per_world_ctx)
Jayanth Dodderi Chidanand2b0bc4e2023-03-07 10:43:19 +000025{
26}
27#endif /* ( ENABLE_SME_FOR_NS | ENABLE_SVE_FOR_NS ) */
Antonio Nino Diaz40daecc2018-10-25 16:52:26 +010028
Madhukar Pappireddy6d5319a2024-06-17 15:22:36 -050029#if CTX_INCLUDE_SVE_REGS
30void sve_context_save(simd_regs_t *regs);
31void sve_context_restore(simd_regs_t *regs);
32#endif
33
Antonio Nino Diaz40daecc2018-10-25 16:52:26 +010034#endif /* SVE_H */