Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 May 2023 10:59:26 GMT
From:      Andrew Turner <andrew@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 255adf35c0b9 - main - Export arm64 VFP handling functions
Message-ID:  <202305241059.34OAxQg2042376@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by andrew:

URL: https://cgit.FreeBSD.org/src/commit/?id=255adf35c0b928e43c82ade2a491eea51e71383f

commit 255adf35c0b928e43c82ade2a491eea51e71383f
Author:     Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2023-05-16 10:08:03 +0000
Commit:     Andrew Turner <andrew@FreeBSD.org>
CommitDate: 2023-05-24 10:55:38 +0000

    Export arm64 VFP handling functions
    
    These will be used by bhyve to manage the host VFP registers, e.g.
    saving the host state before entering a guest.
    
    Reviewed by:    markj
    Sponsored by:   Arm Ltd
    Differential Revision:  https://reviews.freebsd.org/D40130
---
 sys/arm64/arm64/vfp.c   | 8 ++++----
 sys/arm64/include/vfp.h | 4 ++++
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/sys/arm64/arm64/vfp.c b/sys/arm64/arm64/vfp.c
index 49a83d3fe71f..22b15ee78596 100644
--- a/sys/arm64/arm64/vfp.c
+++ b/sys/arm64/arm64/vfp.c
@@ -57,7 +57,7 @@ struct fpu_kern_ctx {
 	struct vfpstate	 state;
 };
 
-static void
+void
 vfp_enable(void)
 {
 	uint32_t cpacr;
@@ -68,7 +68,7 @@ vfp_enable(void)
 	isb();
 }
 
-static void
+void
 vfp_disable(void)
 {
 	uint32_t cpacr;
@@ -99,7 +99,7 @@ vfp_discard(struct thread *td)
 	vfp_disable();
 }
 
-static void
+void
 vfp_store(struct vfpstate *state)
 {
 	__uint128_t *vfp_state;
@@ -131,7 +131,7 @@ vfp_store(struct vfpstate *state)
 	state->vfp_fpsr = fpsr;
 }
 
-static void
+void
 vfp_restore(struct vfpstate *state)
 {
 	__uint128_t *vfp_state;
diff --git a/sys/arm64/include/vfp.h b/sys/arm64/include/vfp.h
index a450a5f31fdd..4f64b0396417 100644
--- a/sys/arm64/include/vfp.h
+++ b/sys/arm64/include/vfp.h
@@ -67,7 +67,11 @@ struct pcb;
 struct thread;
 
 void	vfp_init(void);
+void	vfp_enable(void);
+void	vfp_disable(void);
 void	vfp_discard(struct thread *);
+void	vfp_store(struct vfpstate *);
+void	vfp_restore(struct vfpstate *);
 void	vfp_new_thread(struct thread *, struct thread *, bool);
 void	vfp_reset_state(struct thread *, struct pcb *);
 void	vfp_restore_state(void);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202305241059.34OAxQg2042376>