Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/riscv/riscv Hacky build fixes



details:   https://anonhg.NetBSD.org/src/rev/a25ac7cb7162
branches:  trunk
changeset: 988285:a25ac7cb7162
user:      skrll <skrll%NetBSD.org@localhost>
date:      Thu Oct 07 07:13:35 2021 +0000

description:
Hacky build fixes

diffstat:

 sys/arch/riscv/riscv/pmap_machdep.c  |  17 +++++++++++++++--
 sys/arch/riscv/riscv/riscv_machdep.c |   6 ++++--
 sys/arch/riscv/riscv/syscall.c       |   9 ++++-----
 sys/arch/riscv/riscv/trap.c          |   6 ++++--
 4 files changed, 27 insertions(+), 11 deletions(-)

diffs (172 lines):

diff -r 3b0f67fdb6c6 -r a25ac7cb7162 sys/arch/riscv/riscv/pmap_machdep.c
--- a/sys/arch/riscv/riscv/pmap_machdep.c       Thu Oct 07 06:44:18 2021 +0000
+++ b/sys/arch/riscv/riscv/pmap_machdep.c       Thu Oct 07 07:13:35 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap_machdep.c,v 1.8 2021/10/02 14:28:05 skrll Exp $ */
+/* $NetBSD: pmap_machdep.c,v 1.9 2021/10/07 07:13:35 skrll Exp $ */
 
 /*
  * Copyright (c) 2014, 2019, 2021 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
 
 #include <sys/cdefs.h>
 
-__RCSID("$NetBSD: pmap_machdep.c,v 1.8 2021/10/02 14:28:05 skrll Exp $");
+__RCSID("$NetBSD: pmap_machdep.c,v 1.9 2021/10/07 07:13:35 skrll Exp $");
 
 #include <sys/param.h>
 
@@ -57,22 +57,30 @@
 void
 pmap_zero_page(paddr_t pa)
 {
+#ifdef _LP64
 #ifdef PMAP_DIRECT_MAP
        memset((void *)PMAP_DIRECT_MAP(pa), 0, PAGE_SIZE);
 #else
 #error "no direct map"
 #endif
+#else
+       KASSERT(false);
+#endif
 }
 
 void
 pmap_copy_page(paddr_t src, paddr_t dst)
 {
+#ifdef _LP64
 #ifdef PMAP_DIRECT_MAP
        memcpy((void *)PMAP_DIRECT_MAP(dst), (const void *)PMAP_DIRECT_MAP(src),
            PAGE_SIZE);
 #else
 #error "no direct map"
 #endif
+#else
+       KASSERT(false);
+#endif
 }
 
 struct vm_page *
@@ -113,10 +121,15 @@
 pmap_md_direct_mapped_vaddr_to_paddr(vaddr_t va)
 {
 #ifdef _LP64
+#ifdef PMAP_DIRECT_MAP
        return PMAP_DIRECT_UNMAP(va);
 #else
 #error "no direct map"
 #endif
+#else
+       KASSERT(false);
+       return 0;
+#endif
 }
 
 vaddr_t
diff -r 3b0f67fdb6c6 -r a25ac7cb7162 sys/arch/riscv/riscv/riscv_machdep.c
--- a/sys/arch/riscv/riscv/riscv_machdep.c      Thu Oct 07 06:44:18 2021 +0000
+++ b/sys/arch/riscv/riscv/riscv_machdep.c      Thu Oct 07 07:13:35 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: riscv_machdep.c,v 1.14 2021/05/01 06:53:08 skrll Exp $ */
+/*     $NetBSD: riscv_machdep.c,v 1.15 2021/10/07 07:13:35 skrll Exp $ */
 
 /*-
  * Copyright (c) 2014, 2019 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
 
 #include "opt_modular.h"
 
-__RCSID("$NetBSD: riscv_machdep.c,v 1.14 2021/05/01 06:53:08 skrll Exp $");
+__RCSID("$NetBSD: riscv_machdep.c,v 1.15 2021/10/07 07:13:35 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -157,7 +157,9 @@
 // We've worked hard to make sure struct reg and __gregset_t are the same.
 // Ditto for struct fpreg and fregset_t.
 
+#ifdef _LP64
 CTASSERT(sizeof(struct reg) == sizeof(__gregset_t));
+#endif
 CTASSERT(sizeof(struct fpreg) == sizeof(__fregset_t));
 
 void
diff -r 3b0f67fdb6c6 -r a25ac7cb7162 sys/arch/riscv/riscv/syscall.c
--- a/sys/arch/riscv/riscv/syscall.c    Thu Oct 07 06:44:18 2021 +0000
+++ b/sys/arch/riscv/riscv/syscall.c    Thu Oct 07 07:13:35 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: syscall.c,v 1.2 2020/03/14 16:12:16 skrll Exp $        */
+/*     $NetBSD: syscall.c,v 1.3 2021/10/07 07:13:35 skrll Exp $        */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.2 2020/03/14 16:12:16 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.3 2021/10/07 07:13:35 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/cpu.h>
@@ -81,7 +81,6 @@
        register_t retval[2];
        const struct sysent *callp;
        int code, error;
-       size_t i;
 #ifdef _LP64
        const bool pk32_p = (p->p_flag & PK_32) != 0;
        register_t copyargs[EMULNAME(SYS_MAXSYSARGS)];
@@ -110,8 +109,8 @@
        else
                callp += code;
 
+#ifdef _LP64
        const size_t nargs = callp->sy_narg;
-#ifdef _LP64
        /*
         * If there are no 64bit arguments, we still need "sanitize" the
         * 32-bit arguments in case they try to slip through a 64-bit pointer.
@@ -141,7 +140,7 @@
                 * encounter a 64 bit argument, we grab two adjacent 32bit
                 * values and synthesize the 64bit argument.
                 */
-               for (i = 0; i < nargs + narg64; ) {
+               for (size_t i = 0; i < nargs + narg64; ) {
                        register_t arg = *args32++;
                        if (__predict_true((arg64mask & 1) == 0)) {
                                /*
diff -r 3b0f67fdb6c6 -r a25ac7cb7162 sys/arch/riscv/riscv/trap.c
--- a/sys/arch/riscv/riscv/trap.c       Thu Oct 07 06:44:18 2021 +0000
+++ b/sys/arch/riscv/riscv/trap.c       Thu Oct 07 07:13:35 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: trap.c,v 1.15 2020/12/20 16:38:26 skrll Exp $  */
+/*     $NetBSD: trap.c,v 1.16 2021/10/07 07:13:35 skrll Exp $  */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
 #define __PMAP_PRIVATE
 #define __UFETCHSTORE_PRIVATE
 
-__RCSID("$NetBSD: trap.c,v 1.15 2020/12/20 16:38:26 skrll Exp $");
+__RCSID("$NetBSD: trap.c,v 1.16 2021/10/07 07:13:35 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -379,6 +379,7 @@
 
        if (__predict_true(fault_mask & FAULT_TRAP_MASK)) {
 #ifndef _LP64
+#if 0
                // This fault may be cause the kernel's page table got a new
                // page table page and this pmap's page table doesn't know
                // about it.  See
@@ -389,6 +390,7 @@
                        return;
                }
 #endif
+#endif
                ok = trap_pagefault(tf, epc, status, cause, addr,
                    usertrap_p, &ksi);
        } else if (fault_mask & INSTRUCTION_TRAP_MASK) {



Home | Main Index | Thread Index | Old Index