Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 31 Mar 2021 16:02:34 GMT
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 42d99e4efa83 - releng/13.0 - arm64: implement COMPAT_FREEBSD32 fill/set dbregs/fpregs
Message-ID:  <202103311602.12VG2YDc097003@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch releng/13.0 has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=42d99e4efa83e1118b796967cdac6a5b7c190298

commit 42d99e4efa83e1118b796967cdac6a5b7c190298
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2021-03-17 14:10:41 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2021-03-31 16:01:54 +0000

    arm64: implement COMPAT_FREEBSD32 fill/set dbregs/fpregs
    
    On FreeBSD/arm fill_fpregs, fill_dbregs are stubs that zero the reg
    struct and return success. set_fpregs and set_dbregs do nothing and
    return success.
    
    Provide the same implementation for arm64 COMPAT_FREEBSD32.
    
    Reviewed by:    andrew
    Approved by:    re (gjb)
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D29314
    
    (cherry picked from commit 5be27cbf16c85ce95d21db57349f61494f851821)
    (cherry picked from commit db50c8123469e3eab07e931019bf6d4df2d55c78)
---
 sys/arm64/arm64/machdep.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/sys/arm64/arm64/machdep.c b/sys/arm64/arm64/machdep.c
index 73b06beeba7e..d33eb3ff4b76 100644
--- a/sys/arm64/arm64/machdep.c
+++ b/sys/arm64/arm64/machdep.c
@@ -489,36 +489,35 @@ set_regs32(struct thread *td, struct reg32 *regs)
 	return (0);
 }
 
+/* XXX fill/set dbregs/fpregs are stubbed on 32-bit arm. */
 int
 fill_fpregs32(struct thread *td, struct fpreg32 *regs)
 {
 
-	printf("ARM64TODO: fill_fpregs32");
-	return (EDOOFUS);
+	memset(regs, 0, sizeof(*regs));
+	return (0);
 }
 
 int
 set_fpregs32(struct thread *td, struct fpreg32 *regs)
 {
 
-	printf("ARM64TODO: set_fpregs32");
-	return (EDOOFUS);
+	return (0);
 }
 
 int
 fill_dbregs32(struct thread *td, struct dbreg32 *regs)
 {
 
-	printf("ARM64TODO: fill_dbregs32");
-	return (EDOOFUS);
+	memset(regs, 0, sizeof(*regs));
+	return (0);
 }
 
 int
 set_dbregs32(struct thread *td, struct dbreg32 *regs)
 {
 
-	printf("ARM64TODO: set_dbregs32");
-	return (EDOOFUS);
+	return (0);
 }
 #endif
 



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