Source-Changes-HG archive

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

[src/trunk]: src/sys/arch Merge into x86/.



details:   https://anonhg.NetBSD.org/src/rev/547be52ce638
branches:  trunk
changeset: 355798:547be52ce638
user:      maxv <maxv%NetBSD.org@localhost>
date:      Tue Aug 15 08:51:38 2017 +0000

description:
Merge into x86/.

diffstat:

 sys/arch/amd64/amd64/kgdb_machdep.c |  248 ------------------------------
 sys/arch/amd64/conf/files.amd64     |    3 +-
 sys/arch/i386/conf/files.i386       |    3 +-
 sys/arch/i386/i386/kgdb_machdep.c   |  251 ------------------------------
 sys/arch/x86/conf/files.x86         |    3 +-
 sys/arch/x86/x86/kgdb_machdep.c     |  295 ++++++++++++++++++++++++++++++++++++
 sys/arch/xen/conf/files.xen         |    5 +-
 7 files changed, 301 insertions(+), 507 deletions(-)

diffs (truncated from 890 to 300 lines):

diff -r a6feef0fd97f -r 547be52ce638 sys/arch/amd64/amd64/kgdb_machdep.c
--- a/sys/arch/amd64/amd64/kgdb_machdep.c       Tue Aug 15 08:39:11 2017 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,248 +0,0 @@
-/*     $NetBSD: kgdb_machdep.c,v 1.11 2017/08/15 08:35:56 maxv Exp $   */
-
-/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
- * NASA Ames Research Center.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * Copyright (c) 1996 Matthias Pfaller.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kgdb_machdep.c,v 1.11 2017/08/15 08:35:56 maxv Exp $");
-
-#include "opt_ddb.h"
-
-/*
- * Machine-dependent functions for remote KGDB.  Originally written
- * for NetBSD/pc532 by Matthias Pfaller.  Modified for NetBSD/i386
- * by Jason R. Thorpe. Modified for NetBSD/amd64 by Frank van der Linden.
- */
-
-#include <sys/param.h>
-#include <sys/kgdb.h>
-#include <sys/systm.h>
-
-#include <machine/pte.h>
-#include <machine/trap.h>
-
-/*
- * Determine if the memory at va..(va+len) is valid.
- */
-int
-kgdb_acc(vaddr_t va, size_t len)
-{
-       vaddr_t last_va;
-       pt_entry_t *pte;
-
-       last_va = va + len;
-       va  &= ~PGOFSET;
-       last_va &= ~PGOFSET;
-
-       do {
-               if (va < VM_MIN_KERNEL_ADDRESS)
-                       pte = vtopte(va);
-               else
-                       pte = kvtopte(va);
-               if ((*pte & PG_V) == 0)
-                       return (0);
-               if (*pte & PG_PS)
-                       va = (va & PG_LGFRAME) + NBPD_L2;
-               else
-                       va += PAGE_SIZE;
-       } while (va < last_va);
-
-       return (1);
-}
-
-void
-kgdb_entry_notice(int type, db_regs_t *regs)
-{
-       if (type == T_NMI)
-               printf("NMI ... going to debugger\n");
-}
-
-/*
- * Translate a trap number into a unix compatible signal value.
- * (gdb only understands unix signal numbers).
- */
-int
-kgdb_signal(int type)
-{
-       switch (type) {
-       case T_NMI:
-               return (SIGINT);
-
-       case T_ALIGNFLT:
-               return (SIGILL);
-
-       case T_BPTFLT:
-       case T_TRCTRAP:
-               return (SIGTRAP);
-
-       case T_ASTFLT:
-       case T_DOUBLEFLT:
-               return (SIGEMT);
-
-       case T_ARITHTRAP:
-       case T_DIVIDE:
-       case T_OFLOW:
-       case T_DNA:
-       case T_FPOPFLT:
-               return (SIGFPE);
-
-       case T_PRIVINFLT:
-       case T_PROTFLT:
-       case T_PAGEFLT:
-       case T_TSSFLT:
-       case T_SEGNPFLT:
-       case T_STKFLT:
-               return (SIGSEGV);
-
-       case T_BOUND:
-               return (SIGURG);
-
-       default:
-               return (SIGEMT);
-       }
-}
-
-/*
- * Translate the values stored in the kernel regs struct to the format
- * understood by gdb.
- */
-void
-kgdb_getregs(db_regs_t *regs, kgdb_reg_t *gdb_regs)
-{
-
-       gdb_regs[ 0] = regs->tf_rax;
-       gdb_regs[ 1] = regs->tf_rbx;
-       gdb_regs[ 2] = regs->tf_rcx;
-       gdb_regs[ 3] = regs->tf_rdx;
-       gdb_regs[ 4] = regs->tf_rsi;
-       gdb_regs[ 5] = regs->tf_rdi;
-       gdb_regs[ 6] = regs->tf_rbp;
-       gdb_regs[ 7] = regs->tf_rsp;
-       gdb_regs[ 8] = regs->tf_r8;
-       gdb_regs[ 9] = regs->tf_r9;
-       gdb_regs[10] = regs->tf_r10;
-       gdb_regs[11] = regs->tf_r11;
-       gdb_regs[12] = regs->tf_r12;
-       gdb_regs[13] = regs->tf_r13;
-       gdb_regs[14] = regs->tf_r14;
-       gdb_regs[15] = regs->tf_r15;
-       gdb_regs[16] = regs->tf_rip;
-       gdb_regs[17] = regs->tf_rflags;
-       gdb_regs[18] = regs->tf_cs;
-       gdb_regs[19] = regs->tf_ss;
-}
-
-/*
- * Reverse the above.
- */
-void
-kgdb_setregs(db_regs_t *regs, kgdb_reg_t *gdb_regs)
-{
-
-       regs->tf_rax = gdb_regs[ 0];
-       regs->tf_rbx = gdb_regs[ 1];
-       regs->tf_rcx = gdb_regs[ 2];
-       regs->tf_rdx = gdb_regs[ 3];
-       regs->tf_rsi = gdb_regs[ 4];
-       regs->tf_rdi = gdb_regs[ 5];
-       regs->tf_rbp = gdb_regs[ 6];
-       regs->tf_rsp = gdb_regs[ 7];
-       regs->tf_r8  = gdb_regs[ 8];
-       regs->tf_r9  = gdb_regs[ 9];
-       regs->tf_r10 = gdb_regs[10];
-       regs->tf_r11 = gdb_regs[11];
-       regs->tf_r12 = gdb_regs[12];
-       regs->tf_r13 = gdb_regs[13];
-       regs->tf_r14 = gdb_regs[14];
-       regs->tf_r15 = gdb_regs[15];
-       regs->tf_rip = gdb_regs[16];
-       regs->tf_rflags = gdb_regs[17];
-       regs->tf_cs  = gdb_regs[18];
-       regs->tf_ss  = gdb_regs[19];
-}
-
-/*
- * Trap into kgdb to wait for debugger to connect,
- * noting on the console why nothing else is going on.
- */
-void
-kgdb_connect(int verbose)
-{
-       if (kgdb_dev == NODEV)
-               return;
-
-       if (verbose)
-               printf("kgdb waiting...");
-
-       breakpoint();
-
-       if (verbose)
-               printf("connected.\n");
-
-       kgdb_debug_panic = 1;
-}
-
-/*
- * Decide what to do on panic.
- * (This is called by panic, like Debugger())
- */
-void
-kgdb_panic(void)
-{
-       if (kgdb_dev != NODEV && kgdb_debug_panic) {
-               printf("entering kgdb\n");
-               kgdb_connect(kgdb_active == 0);
-       }
-}
diff -r a6feef0fd97f -r 547be52ce638 sys/arch/amd64/conf/files.amd64
--- a/sys/arch/amd64/conf/files.amd64   Tue Aug 15 08:39:11 2017 +0000
+++ b/sys/arch/amd64/conf/files.amd64   Tue Aug 15 08:51:38 2017 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: files.amd64,v 1.91 2017/08/15 06:27:40 maxv Exp $
+#      $NetBSD: files.amd64,v 1.92 2017/08/15 08:51:38 maxv Exp $
 #
 # new style config file for amd64 architecture
 #
@@ -43,7 +43,6 @@
 file   arch/amd64/amd64/db_interface.c         ddb
 file   arch/amd64/amd64/db_machdep.c           ddb
 file   arch/amd64/amd64/kobj_machdep.c         modular
-file   arch/amd64/amd64/kgdb_machdep.c         kgdb
 file   kern/subr_disk_mbr.c                    disk
 file   arch/amd64/amd64/gdt.c                  machdep
 file   arch/amd64/amd64/machdep.c              machdep
diff -r a6feef0fd97f -r 547be52ce638 sys/arch/i386/conf/files.i386
--- a/sys/arch/i386/conf/files.i386     Tue Aug 15 08:39:11 2017 +0000
+++ b/sys/arch/i386/conf/files.i386     Tue Aug 15 08:51:38 2017 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: files.i386,v 1.386 2017/08/15 06:27:40 maxv Exp $
+#      $NetBSD: files.i386,v 1.387 2017/08/15 08:51:38 maxv Exp $
 #
 # new style config file for i386 architecture
 #
@@ -65,7 +65,6 @@
 file   arch/i386/i386/gdt.c
 file   arch/i386/i386/i386func.S
 file   arch/i386/i386/ipkdb_glue.c     ipkdb
-file   arch/i386/i386/kgdb_machdep.c   kgdb
 file   arch/i386/i386/kobj_machdep.c   modular
 file   arch/i386/i386/machdep.c
 file   arch/i386/i386/longrun.c
diff -r a6feef0fd97f -r 547be52ce638 sys/arch/i386/i386/kgdb_machdep.c
--- a/sys/arch/i386/i386/kgdb_machdep.c Tue Aug 15 08:39:11 2017 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,251 +0,0 @@
-/*     $NetBSD: kgdb_machdep.c,v 1.23 2017/08/15 08:35:56 maxv Exp $   */
-
-/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
- * NASA Ames Research Center.
- *



Home | Main Index | Thread Index | Old Index