summaryrefslogtreecommitdiff
path: root/arch/riscv/include/asm/vector.h
diff options
context:
space:
mode:
authorGreentime Hu <greentime.hu@sifive.com>2024-01-15 05:59:20 +0000
committerPalmer Dabbelt <palmer@rivosinc.com>2024-01-16 07:13:53 -0800
commitecd2ada8a5e0b464dab54f71d4ba7bbf5708711f (patch)
tree23dd7e28a56871c4286f8dd07bb1bf5dbda14e18 /arch/riscv/include/asm/vector.h
parentb85ea95d086471afb4ad062012a4d73cd328fa86 (diff)
riscv: Add support for kernel mode vector
Add kernel_vector_begin() and kernel_vector_end() function declarations and corresponding definitions in kernel_mode_vector.c These are needed to wrap uses of vector in kernel mode. Co-developed-by: Vincent Chen <vincent.chen@sifive.com> Signed-off-by: Vincent Chen <vincent.chen@sifive.com> Signed-off-by: Greentime Hu <greentime.hu@sifive.com> Signed-off-by: Andy Chiu <andy.chiu@sifive.com> Reviewed-by: Eric Biggers <ebiggers@google.com> Tested-by: Björn Töpel <bjorn@rivosinc.com> Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Link: https://lore.kernel.org/r/20240115055929.4736-2-andy.chiu@sifive.com Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Diffstat (limited to 'arch/riscv/include/asm/vector.h')
-rw-r--r--arch/riscv/include/asm/vector.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/riscv/include/asm/vector.h b/arch/riscv/include/asm/vector.h
index 87aaef656257..71af3404fda1 100644
--- a/arch/riscv/include/asm/vector.h
+++ b/arch/riscv/include/asm/vector.h
@@ -22,6 +22,15 @@
extern unsigned long riscv_v_vsize;
int riscv_v_setup_vsize(void);
bool riscv_v_first_use_handler(struct pt_regs *regs);
+void kernel_vector_begin(void);
+void kernel_vector_end(void);
+void get_cpu_vector_context(void);
+void put_cpu_vector_context(void);
+
+static inline u32 riscv_v_flags(void)
+{
+ return current->thread.riscv_v_flags;
+}
static __always_inline bool has_vector(void)
{