TTD (Target Transport Debugger) was hardwired to 0 in configfrag.ac.
Remove kttd_interface.c and all MACH_TTD blocks from trap.c, locore.S,
spl.S, net_io.c and autoconf.c.
---
 configfrag.ac              |   3 -
 device/net_io.c            |  26 --
 i386/Makefrag_x86.am       |   1 -
 i386/i386/kttd_interface.c | 574 -------------------------------------
 i386/i386/locore.S         |  81 +-----
 i386/i386/spl.S            |   8 +-
 i386/i386/trap.c           |  28 --
 i386/i386at/autoconf.c     |   6 -
 x86_64/locore.S            |  86 +-----
 x86_64/spl.S               |   8 +-
 10 files changed, 14 insertions(+), 807 deletions(-)
 delete mode 100644 i386/i386/kttd_interface.c

diff --git a/configfrag.ac b/configfrag.ac
index d38519f6..81384847 100644
--- a/configfrag.ac
+++ b/configfrag.ac
@@ -108,9 +108,6 @@ AC_ARG_ENABLE([kernsample],
   AC_DEFINE([MACH_KERNSAMPLE], [0], [MACH_KERNSAMPLE])
 [fi]
 
-# TTD Remote Kernel Debugging.
-AC_DEFINE([MACH_TTD], [0], [MACH_TTD])
-
 # VM debugging calls.
 AC_DEFINE([MACH_VM_DEBUG], [1], [MACH_VM_DEBUG])
 
diff --git a/device/net_io.c b/device/net_io.c
index 01c6a707..7b5c3e74 100644
--- a/device/net_io.c
+++ b/device/net_io.c
@@ -66,13 +66,6 @@
 
 #include <machine/spl.h>
 
-#if    MACH_TTD
-#include <ttd/ttd_stub.h>
-#endif /* MACH_TTD */
-
-#if    MACH_TTD
-int kttd_async_counter= 0;
-#endif /* MACH_TTD */
 
 
 /*
@@ -637,25 +630,6 @@ net_packet(
 {
        boolean_t awake;
 
-#if    MACH_TTD
-       /*
-        * Do a quick check to see if it is a kernel TTD packet.
-        *
-        * Only check if KernelTTD is enabled, ie. the current
-        * device driver supports TTD, and the bootp succeeded.
-        */
-       if (kttd_enabled && kttd_handle_async(kmsg)) {
-               /* 
-                * Packet was a valid ttd packet and
-                * doesn't need to be passed up to filter.
-                * The ttd code put the used kmsg buffer
-                * back onto the free list.
-                */
-               if (kttd_debug)
-                       printf("**%x**", kttd_async_counter++);
-               return;
-       }
-#endif /* MACH_TTD */
 
        kmsg->ikm_header.msgh_remote_port = (mach_port_t) ifp;
        net_kmsg(kmsg)->net_rcv_msg_packet_count = count;
diff --git a/i386/Makefrag_x86.am b/i386/Makefrag_x86.am
index a6c7a5c8..56bcf2a8 100644
--- a/i386/Makefrag_x86.am
+++ b/i386/Makefrag_x86.am
@@ -39,7 +39,6 @@ libkernel_a_SOURCES += \
        i386/i386/ipl.h \
        i386/i386/ktss.c \
        i386/i386/ktss.h \
-       i386/i386/kttd_interface.c \
        i386/i386/kttd_machdep.h \
        i386/i386/ldt.c \
        i386/i386/ldt.h \
diff --git a/i386/i386/kttd_interface.c b/i386/i386/kttd_interface.c
deleted file mode 100644
index f48fe8eb..00000000
--- a/i386/i386/kttd_interface.c
+++ /dev/null
@@ -1,574 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1993,1992 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  [email protected]
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-#if MACH_TTD
-
-#include <sys/types.h>
-#include <kern/printf.h>
-
-#include <mach/machine/eflags.h>
-
-#include <kern/thread.h>
-#include <kern/processor.h>
-#include <mach/thread_status.h>
-#include <mach/vm_param.h>
-#include <i386/seg.h>
-
-#include <ttd/ttd_types.h>
-#include <ttd/ttd_stub.h>
-#include <machine/kttd_machdep.h>
-
-/*
- * Shamelessly copied from the ddb sources:
- */
-struct  i386_saved_state *kttd_last_saved_statep;
-struct  i386_saved_state kttd_nested_saved_state;
-unsigned last_kttd_sp;
-
-struct i386_saved_state kttd_regs;     /* was ddb_regs */
-
-extern int             kttd_debug;
-extern boolean_t       kttd_enabled;
-extern vm_offset_t     virtual_end;
-
-#define        I386_BREAKPOINT 0xcc
-
-/*
- *     kernel map
- */
-extern vm_map_t        kernel_map;
-
-boolean_t kttd_console_init(void)
-{
-       /*
-        * Get local machine's IP address via bootp.
-        */
-       return(ttd_ip_bootp());
-}
-
-/*
- *     Execute a break instruction that will invoke ttd
- */
-void kttd_break(void)
-{
-       if (!kttd_enabled)
-               return;
-       asm("int3");
-}
-
-/*
- * Halt all processors on the 386at (not really applicable).
- */
-void kttd_halt_processors(void)
-{
-       /* XXX Fix for Sequent!!! */
-       /* Only one on AT386, so ignore for now... */
-}
-
-/*
- * Determine whether or not the ehternet device driver supports
- * ttd.
- */
-boolean_t kttd_supported(void)
-{
-       return ((int)ttd_get_packet != NULL);
-}
-
-/*
- * Return the ttd machine type for the i386at
- */
-ttd_machine_type get_ttd_machine_type(void)
-{
-       return TTD_AT386;
-}
-
-void kttd_machine_getregs(struct i386_gdb_register_state *ttd_state)
-{
-       ttd_state->gs = kttd_regs.gs;
-       ttd_state->fs = kttd_regs.fs;
-       ttd_state->es = kttd_regs.es;
-       ttd_state->ds = kttd_regs.ds;
-       ttd_state->edi = kttd_regs.edi;
-       ttd_state->esi = kttd_regs.esi;
-       ttd_state->ebp = kttd_regs.ebp;
-
-       /*
-        * This is set up to point to the right place in
-        * kttd_trap and .
-        */
-       ttd_state->esp = kttd_regs.uesp;
-
-       ttd_state->ebx = kttd_regs.ebx;
-       ttd_state->edx = kttd_regs.edx;
-       ttd_state->ecx = kttd_regs.ecx;
-       ttd_state->eax = kttd_regs.eax;
-       ttd_state->eip = kttd_regs.eip;
-       ttd_state->cs = kttd_regs.cs;
-       ttd_state->efl = kttd_regs.efl;
-       ttd_state->ss = kttd_regs.ss;
-}
-
-void kttd_machine_setregs(struct i386_gdb_register_state *ttd_state)
-{
-       if (kttd_regs.gs != ttd_state->gs) {
-               if (kttd_debug)
-                       printf("gs 0x%x:0x%x, ", kttd_regs.gs, ttd_state->gs);
-               kttd_regs.gs = ttd_state->gs;
-       }
-       if (kttd_regs.fs != ttd_state->fs) {
-               if (kttd_debug)
-                       printf("fs 0x%x:0x%x, ", kttd_regs.fs, ttd_state->fs);
-               kttd_regs.fs = ttd_state->fs;
-       }
-       if (kttd_regs.es != ttd_state->es) {
-               if (kttd_debug)
-                       printf("es 0x%x:0x%x, ", kttd_regs.es, ttd_state->es);
-               kttd_regs.es = ttd_state->es;
-       }
-       if (kttd_regs.ds != ttd_state->ds) {
-               if (kttd_debug)
-                       printf("ds 0x%x:0x%x, ", kttd_regs.ds, ttd_state->ds);
-               kttd_regs.ds = ttd_state->ds;
-       }
-       if (kttd_regs.edi != ttd_state->edi) {
-               if (kttd_debug)
-                       printf("edi 0x%x:0x%x, ", kttd_regs.edi, 
ttd_state->edi);
-               kttd_regs.edi = ttd_state->edi;
-       }
-       if (kttd_regs.esi != ttd_state->esi) {
-               if (kttd_debug)
-                       printf("esi 0x%x:0x%x, ", kttd_regs.esi, 
ttd_state->esi);
-               kttd_regs.esi = ttd_state->esi;
-       }
-       if (kttd_regs.ebp != ttd_state->ebp) {
-               if (kttd_debug)
-                       printf("ebp 0x%x:0x%x, ", kttd_regs.ebp, 
ttd_state->ebp);
-               kttd_regs.ebp = ttd_state->ebp;
-       }
-       if (kttd_regs.ebx != ttd_state->ebx) {
-               if (kttd_debug)
-                       printf("ebx 0x%x:0x%x, ", kttd_regs.ebx, 
ttd_state->ebx);
-               kttd_regs.ebx = ttd_state->ebx;
-       }
-       if (kttd_regs.edx != ttd_state->edx) {
-               if (kttd_debug)
-                       printf("edx 0x%x:0x%x, ", kttd_regs.edx, 
ttd_state->edx);
-               kttd_regs.edx = ttd_state->edx;
-       }
-       if (kttd_regs.ecx != ttd_state->ecx) {
-               if (kttd_debug)
-                       printf("ecx 0x%x:0x%x, ", kttd_regs.ecx, 
ttd_state->ecx);
-               kttd_regs.ecx = ttd_state->ecx;
-       }
-       if (kttd_regs.eax != ttd_state->eax) {
-               if (kttd_debug)
-                       printf("eax 0x%x:0x%x, ", kttd_regs.eax, 
ttd_state->eax);
-               kttd_regs.eax = ttd_state->eax;
-       }
-       if (kttd_regs.eip != ttd_state->eip) {
-               if (kttd_debug)
-                       printf("eip 0x%x:0x%x, ", kttd_regs.eip, 
ttd_state->eip);
-               kttd_regs.eip = ttd_state->eip;
-       }
-       if (kttd_regs.cs != ttd_state->cs) {
-               if (kttd_debug)
-                       printf("cs 0x%x:0x%x, ", kttd_regs.cs, ttd_state->cs);
-               kttd_regs.cs = ttd_state->cs;
-       }
-       if (kttd_regs.efl != ttd_state->efl) {
-               if (kttd_debug)
-                       printf("efl 0x%x:0x%x, ", kttd_regs.efl, 
ttd_state->efl);
-               kttd_regs.efl = ttd_state->efl;
-       }
-#if    0
-       /*
-        * We probably shouldn't mess with the uesp or the ss? XXX
-        */
-       if (kttd_regs.ss != ttd_state->ss) {
-               if (kttd_debug)
-                       printf("ss 0x%x:0x%x, ", kttd_regs.ss, ttd_state->ss);
-               kttd_regs.ss = ttd_state->ss;
-       }
-#endif /* 0 */
-
-}
-
-/*
- *     Enable a page for access, faulting it in if necessary
- */
-boolean_t kttd_mem_access(vm_offset_t offset, vm_prot_t access)
-{
-       kern_return_t   code;
-
-       /*
-        *      VM_MIN_KERNEL_ADDRESS if the beginning of equiv
-        *      mapped kernel memory.  virtual_end is the end.
-        *      If it's in between it's always accessible
-        */
-       if (offset >= VM_MIN_KERNEL_ADDRESS && offset < virtual_end)
-               return TRUE;
-
-       if (offset >= virtual_end) {
-               /*
-                *      fault in the memory just to make sure we can access it
-                */
-               if (kttd_debug)
-                       printf(">>>>>>>>>>Faulting in memory: 0x%x, 0x%x\n",
-                              trunc_page(offset), access);
-               code = vm_fault(kernel_map, trunc_page(offset), access, FALSE,
-                               FALSE, (void (*)()) 0);
-       } else {
-               /*
-                * Check for user thread
-                */
-#if    1
-               if ((current_thread() != THREAD_NULL) &&
-                   (current_thread()->task->map->pmap != kernel_pmap) &&
-                   (current_thread()->task->map->pmap != PMAP_NULL)) {
-                       code = vm_fault(current_thread()->task->map,
-                                       trunc_page(offset), access, FALSE,
-                                       FALSE, (void (*)()) 0);
-               }else{
-                       /*
-                        * Invalid kernel address (below VM_MIN_KERNEL_ADDRESS)
-                        */
-                       return FALSE;
-               }
-#else
-               if (kttd_debug)
-                       printf("==========Would've tried to map in user area 
0x%x\n",
-                              trunc_page(offset));
-               return FALSE;
-#endif /* 0 */
-       }
-
-       return (code == KERN_SUCCESS);
-}
-
-/*
- *     See if we modified the kernel text and if so flush the caches.
- *     This routine is never called with a range that crosses a page
- *     boundary.
- */
-void kttd_flush_cache(vm_offset_t offset, vm_size_t length)
-{
-       /* 386 doesn't need this */
-       return;
-}
-
-/*
- * Insert a breakpoint into memory.
- */
-boolean_t kttd_insert_breakpoint(vm_address_t address,
-                                ttd_saved_inst *saved_inst)
-{
-       /*
-        * Saved old memory data:
-        */
-       *saved_inst = *(unsigned char *)address;
-
-       /*
-        * Put in a Breakpoint:
-        */
-       *(unsigned char *)address = I386_BREAKPOINT;
-
-       return TRUE;
-}
-
-/*
- * Remove breakpoint from memory.
- */
-boolean_t kttd_remove_breakpoint(vm_address_t address,
-                                ttd_saved_inst saved_inst)
-{
-       /*
-        * replace it:
-        */
-       *(unsigned char *)address = (saved_inst & 0xff);
-
-       return TRUE;
-}
-
-/*
- * Set single stepping mode.  Assumes that program counter is set
- * to the location where single stepping is to begin.  The 386 is
- * an easy single stepping machine, ie. built into the processor.
- */
-boolean_t kttd_set_machine_single_step(void)
-{
-       /* Turn on Single Stepping */
-       kttd_regs.efl |= EFL_TF;
-
-       return TRUE;
-}
-
-/*
- * Clear single stepping mode.
- */
-boolean_t kttd_clear_machine_single_step(void)
-{
-       /* Turn off the trace flag */
-       kttd_regs.efl &= ~EFL_TF;
-
-       return TRUE;
-}
-
-
-/*
- * kttd_type_to_ttdtrap:
- *
- * Fills in the task and thread info structures with the reason
- * for entering the Teledebugger (bp, single step, pg flt, etc.)
- *
- */
-void kttd_type_to_ttdtrap(int type)
-{
-       /* XXX Fill this in sometime for i386 */
-}
-
-/*
- * kttd_trap:
- *
- *  This routine is called from the trap or interrupt handler when a
- * breakpoint instruction is encountered or a single step operation
- * completes. The argument is a pointer to a machine dependent
- * saved_state structure that was built on the interrupt or kernel stack.
- *
- */
-boolean_t kttd_trap(int        type, int code, struct i386_saved_state *regs)
-{
-       int s;
-
-       if (kttd_debug)
-               printf("kttd_TRAP, before splhigh()\n");
-
-       /*
-        * TTD isn't supported by the driver.
-        *
-        * Try to switch off to kdb if it is resident.
-        * Otherwise just hang (this might be panic).
-        *
-        * Check to make sure that TTD is supported.
-        * (Both by the machine's driver's, and bootp if using ether).
-        */
-       if (!kttd_supported()) {
-               kttd_enabled = FALSE;
-               return FALSE;
-       }
-
-       s = splhigh();
-
-       /*
-        * We are already in TTD!
-        */
-       if (++kttd_active > MAX_KTTD_ACTIVE) {
-               printf("kttd_trap: RE-ENTERED!!!\n");
-       }
-
-       if (kttd_debug)
-               printf("kttd_TRAP, after splhigh()\n");
-
-       /*  Should switch to kttd's own stack here. */
-
-       kttd_regs = *regs;
-
-       if ((regs->cs & 0x3) == KERNEL_RING) {
-           /*
-            * Kernel mode - esp and ss not saved
-            */
-           kttd_regs.uesp = (int)&regs->uesp;  /* kernel stack pointer */
-           kttd_regs.ss   = KERNEL_DS;
-       }
-
-       /*
-        * If this was not entered via an interrupt (type != -1)
-        * then we've entered via a bpt, single, etc. and must
-        * set the globals.
-        *
-        * Setup the kttd globals for entry....
-        */
-       if (type != -1) {
-               kttd_current_request = NULL;
-               kttd_current_length = 0;
-               kttd_current_kmsg = NULL;
-               kttd_run_status = FULL_STOP;
-       }else{
-               /*
-                * We know that we can only get here if we did a kttd_intr
-                * since it's the way that we are called with type -1 (via
-                * the trampoline), so we don't have to worry about entering
-                * from Cntl-Alt-D like the mips does.
-                */
-               /*
-                * Perform sanity check!
-                */
-               if ((kttd_current_request == NULL) ||
-                   (kttd_current_length == 0) ||
-                   (kttd_current_kmsg == NULL) ||
-                   (kttd_run_status != ONE_STOP)) {
-
-                       printf("kttd_trap: INSANITY!!!\n");
-               }
-       }
-
-       kttd_task_trap(type, code, (regs->cs & 0x3) != 0);
-
-       regs->eip    = kttd_regs.eip;
-       regs->efl    = kttd_regs.efl;
-       regs->eax    = kttd_regs.eax;
-       regs->ecx    = kttd_regs.ecx;
-       regs->edx    = kttd_regs.edx;
-       regs->ebx    = kttd_regs.ebx;
-       if ((regs->cs & 0x3) != KERNEL_RING) {
-           /*
-            * user mode - saved esp and ss valid
-            */
-           regs->uesp = kttd_regs.uesp;                /* user stack pointer */
-           regs->ss   = kttd_regs.ss & 0xffff; /* user stack segment */
-       }
-       regs->ebp    = kttd_regs.ebp;
-       regs->esi    = kttd_regs.esi;
-       regs->edi    = kttd_regs.edi;
-       regs->es     = kttd_regs.es & 0xffff;
-       regs->cs     = kttd_regs.cs & 0xffff;
-       regs->ds     = kttd_regs.ds & 0xffff;
-       regs->fs     = kttd_regs.fs & 0xffff;
-       regs->gs     = kttd_regs.gs & 0xffff;
-
-       if (--kttd_active < MIN_KTTD_ACTIVE)
-               printf("ttd_trap: kttd_active < 0\n");
-
-       if (kttd_debug) {
-               printf("Leaving kttd_trap, kttd_active = %d\n", kttd_active);
-       }
-
-       /*
-        * Only reset this if we entered kttd_trap via an async trampoline.
-        */
-       if (type == -1) {
-               if (kttd_run_status == RUNNING)
-                       printf("kttd_trap: $$$$$ run_status already RUNNING! 
$$$$$\n");
-               kttd_run_status = RUNNING;
-       }
-
-       /* Is this right? XXX */
-       kttd_run_status = RUNNING;
-
-       (void) splx(s);
-
-       /*
-        * Return true, that yes we handled the trap.
-        */
-       return TRUE;
-}
-
-/*
- *     Enter KTTD through a network packet trap.
- *     We show the registers as of the network interrupt
- *     instead of those at its call to KDB.
- */
-struct int_regs {
-       int     edi;
-       int     esi;
-       int     ebp;
-       int     ebx;
-       struct i386_interrupt_state *is;
-};
-
-void
-kttd_netentry(struct int_regs *int_regs)
-{
-       struct i386_interrupt_state *is = int_regs->is;
-       int     s;
-
-       if (kttd_debug)
-               printf("kttd_NETENTRY before slphigh()\n");
-
-       s = splhigh();
-
-       if (kttd_debug)
-               printf("kttd_NETENTRY after slphigh()\n");
-
-       if ((is->cs & 0x3) != KERNEL_RING) {
-           /*
-            * Interrupted from User Space
-            */
-           kttd_regs.uesp = ((int *)(is+1))[0];
-           kttd_regs.ss   = ((int *)(is+1))[1];
-       }
-       else {
-           /*
-            * Interrupted from Kernel Space
-            */
-           kttd_regs.ss  = KERNEL_DS;
-           kttd_regs.uesp= (int)(is+1);
-       }
-       kttd_regs.efl = is->efl;
-       kttd_regs.cs  = is->cs;
-       kttd_regs.eip = is->eip;
-       kttd_regs.eax = is->eax;
-       kttd_regs.ecx = is->ecx;
-       kttd_regs.edx = is->edx;
-       kttd_regs.ebx = int_regs->ebx;
-       kttd_regs.ebp = int_regs->ebp;
-       kttd_regs.esi = int_regs->esi;
-       kttd_regs.edi = int_regs->edi;
-       kttd_regs.ds  = is->ds;
-       kttd_regs.es  = is->es;
-       kttd_regs.fs  = is->fs;
-       kttd_regs.gs  = is->gs;
-
-       kttd_active++;
-       kttd_task_trap(-1, 0, (kttd_regs.cs & 0x3) != 0);
-       kttd_active--;
-
-       if ((kttd_regs.cs & 0x3) != KERNEL_RING) {
-           ((int *)(is+1))[0] = kttd_regs.uesp;
-           ((int *)(is+1))[1] = kttd_regs.ss & 0xffff;
-       }
-       is->efl = kttd_regs.efl;
-       is->cs  = kttd_regs.cs & 0xffff;
-       is->eip = kttd_regs.eip;
-       is->eax = kttd_regs.eax;
-       is->ecx = kttd_regs.ecx;
-       is->edx = kttd_regs.edx;
-       int_regs->ebx = kttd_regs.ebx;
-       int_regs->ebp = kttd_regs.ebp;
-       int_regs->esi = kttd_regs.esi;
-       int_regs->edi = kttd_regs.edi;
-       is->ds  = kttd_regs.ds & 0xffff;
-       is->es  = kttd_regs.es & 0xffff;
-       is->fs  = kttd_regs.fs & 0xffff;
-       is->gs  = kttd_regs.gs & 0xffff;
-
-       if (kttd_run_status == RUNNING)
-               printf("kttd_netentry: %%%%% run_status already RUNNING! 
%%%%%\n");
-       kttd_run_status = RUNNING;
-
-       (void) splx(s);
-}
-
-#endif /* MACH_TTD */
diff --git a/i386/i386/locore.S b/i386/i386/locore.S
index 905e1af9..dc761991 100644
--- a/i386/i386/locore.S
+++ b/i386/i386/locore.S
@@ -583,7 +583,7 @@ _kret_iret:
  * Trap from kernel mode.  No need to switch stacks.
  */
 trap_from_kernel:
-#if    MACH_KDB || MACH_TTD
+#if    MACH_KDB
        movl    %esp,%ebx               /* save current stack */
        movl    %esp,%edx               /* on an interrupt stack? */
 
@@ -606,12 +606,12 @@ trap_from_kernel:
        call    EXT(kernel_trap)        /* to kernel trap routine */
        addl    $4,%esp                 /* pop parameter */
        popl    %esp                    /* return to old stack */
-#else  /* MACH_KDB || MACH_TTD */
+#else  /* MACH_KDB */
 
        pushl   %esp                    /* pass parameter */
        call    EXT(kernel_trap)        /* to kernel trap routine */
        addl    $4,%esp                 /* pop parameter */
-#endif /* MACH_KDB || MACH_TTD */
+#endif /* MACH_KDB */
 
        jmp     _return_from_kernel
 
@@ -995,81 +995,6 @@ kdb_from_iret_i:                   /* on interrupt stack */
 
 #endif /* MACH_KDB */
 
-#if    MACH_TTD
-/*
- * Same code as that above for the keyboard entry into kdb.
- */
-ENTRY(kttd_intr)
-       movl    %ebp,%eax               /* save caller`s frame pointer */
-       movl    $EXT(return_to_iret),%ecx       /* interrupt return address 1 */
-       movl    $_return_to_iret_i,%edx /* interrupt return address 2 */
-
-0:     cmpl    16(%eax),%ecx           /* does this frame return to */
-                                       /* interrupt handler (1)? */
-       je      1f
-       cmpl    16(%eax),%edx           /* interrupt handler (2)? */
-       je      2f                      /* if not: */
-       movl    (%eax),%eax             /* try next frame */
-       jmp     0b
-
-1:     movl    $ttd_from_iret,16(%eax) /* returns to kernel/user stack */
-       ret
-
-2:     movl    $ttd_from_iret_i,16(%eax)
-                                       /* returns to interrupt stack */
-       ret
-
-/*
- * On return from keyboard interrupt, we will execute
- * ttd_from_iret_i
- *     if returning to an interrupt on the interrupt stack
- * ttd_from_iret
- *     if returning to an interrupt on the user or kernel stack
- */
-ttd_from_iret:
-                                       /* save regs in known locations */
-#if    STAT_TIME
-       pushl   %ebx                    /* caller`s %ebx is in reg */
-#else
-       movl    4(%esp),%eax            /* get caller`s %ebx */
-       pushl   %eax                    /* push on stack */
-#endif
-       pushl   %ebp
-       pushl   %esi
-       pushl   %edi
-       pushl   %esp                    /* pass regs */
-       call    _kttd_netentry          /* to kdb */
-       addl    $4,%esp                 /* pop parameters */
-       popl    %edi                    /* restore registers */
-       popl    %esi
-       popl    %ebp
-#if    STAT_TIME
-       popl    %ebx
-#else
-       popl    %eax
-       movl    %eax,4(%esp)
-#endif
-       jmp     EXT(return_to_iret)     /* normal interrupt return */
-
-ttd_from_iret_i:                       /* on interrupt stack */
-       pop     %edx                    /* restore saved registers */
-       pop     %ecx
-       pop     %eax
-       pushl   $0                      /* zero error code */
-       pushl   $0                      /* zero trap number */
-       pusha                           /* save general registers */
-       PUSH_SEGMENTS_ISR               /* save segment registers */
-       pushl   %esp                    /* pass regs, */
-       pushl   $0                      /* code, */
-       pushl   $-1                     /* type to kdb */
-       call    _kttd_trap
-       addl    $12,%esp                /* remove parameters */
-       POP_SEGMENTS_ISR                /* restore segment registers */
-       popa                            /* restore general registers */
-       addl    $8,%esp
-       iret
-
-#endif /* MACH_TTD */
 
 /*
  * System call enters through a call gate.  Flags are not saved -
diff --git a/i386/i386/spl.S b/i386/i386/spl.S
index 2f2c8e3a..1a831edb 100644
--- a/i386/i386/spl.S
+++ b/i386/i386/spl.S
@@ -131,7 +131,7 @@ ENTRY(spl7)
 ENTRY(splx)
        movl    S_ARG0,%edx             /* get ipl */
        CPU_NUMBER(%eax)
-#if (MACH_KDB || MACH_TTD) && !defined(MACH_XEN)
+#if MACH_KDB && !defined(MACH_XEN)
        /* First make sure that if we're exitting from ipl7, IF is still 
cleared */
        cmpl    $SPL7,CX(EXT(curr_ipl),%eax)    /* from ipl7? */
        jne     0f
@@ -142,7 +142,7 @@ ENTRY(splx)
        int3                            /* Oops, interrupts got enabled?! */
 
 0:
-#endif /* (MACH_KDB || MACH_TTD) && !MACH_XEN */
+#endif /* MACH_KDB && !MACH_XEN */
        testl   %edx,%edx               /* spl0? */
        jz      EXT(spl0)               /* yes, handle specially */
        CPU_NUMBER(%eax)
@@ -214,7 +214,7 @@ splx_cli:
        .globl  spl
 spl:
        CPU_NUMBER(%eax)
-#if (MACH_KDB || MACH_TTD) && !defined(MACH_XEN)
+#if MACH_KDB && !defined(MACH_XEN)
        /* First make sure that if we're exitting from ipl7, IF is still 
cleared */
        cmpl    $SPL7,CX(EXT(curr_ipl),%eax)    /* from ipl7? */
        jne     0f
@@ -225,7 +225,7 @@ spl:
        int3                            /* Oops, interrupts got enabled?! */
 
 0:
-#endif /* (MACH_KDB || MACH_TTD) && !MACH_XEN */
+#endif /* MACH_KDB && !MACH_XEN */
        cmpl    $SPL7,%edx              /* spl7? */
        je      EXT(spl7)               /* yes, handle specially */
 #ifdef MACH_XEN
diff --git a/i386/i386/trap.c b/i386/i386/trap.c
index de52de76..2f3a3b61 100644
--- a/i386/i386/trap.c
+++ b/i386/i386/trap.c
@@ -86,10 +86,6 @@ thread_kdb_return(void)
 }
 #endif /* MACH_KDB */
 
-#if    MACH_TTD
-extern boolean_t kttd_enabled;
-boolean_t debug_all_traps_with_kttd = TRUE;
-#endif /* MACH_TTD */
 
 static void
 user_page_fault_continue(kern_return_t kr)
@@ -339,10 +335,6 @@ dump_ss(regs);
                else
                        printf("trap %ld", type);
                printf(", eip 0x%lx, code %lx, cr2 %lx\n", regs->eip, code, 
regs->cr2);
-#if    MACH_TTD
-               if (kttd_enabled && kttd_trap(type, code, regs))
-                       return;
-#endif /* MACH_TTD */
 #if    MACH_KDB
                if (kdb_trap(type, code, regs))
                    return;
@@ -395,12 +387,6 @@ int user_trap(struct i386_saved_state *regs)
                break;
 
            case T_DEBUG:
-#if    MACH_TTD
-               if (kttd_enabled && kttd_in_single_step()) {
-                       if (kttd_trap(type, regs->err, regs))
-                               return 0;
-               }
-#endif /* MACH_TTD */
 #if    MACH_KDB
                if (db_in_single_step()) {
                    if (kdb_trap(type, regs->err, regs))
@@ -417,11 +403,6 @@ int user_trap(struct i386_saved_state *regs)
                break;
 
            case T_INT3:
-#if    MACH_TTD
-               if (kttd_enabled && kttd_trap(type, regs->err, regs))
-                       return 0;
-               break;
-#endif /* MACH_TTD */
 #if    MACH_KDB
            {
                if (db_find_breakpoint_here(
@@ -554,10 +535,6 @@ int user_trap(struct i386_saved_state *regs)
                return 0;
 
            default:
-#if    MACH_TTD
-               if (kttd_enabled && kttd_trap(type, regs->err, regs))
-                       return 0;
-#endif /* MACH_TTD */
 #if    MACH_KDB
                if (kdb_trap(type, regs->err, regs))
                    return 0;
@@ -570,11 +547,6 @@ int user_trap(struct i386_saved_state *regs)
                return 0;
        }
 
-#if    MACH_TTD
-       if ((debug_all_traps_with_kttd || thread->task->essential) &&
-           kttd_trap(type, regs->err, regs))
-               return 0;
-#endif /* MACH_TTD */
 #if    MACH_KDB
        if ((debug_all_traps_with_kdb || thread->task->essential) &&
            kdb_trap(type, regs->err, regs))
diff --git a/i386/i386at/autoconf.c b/i386/i386at/autoconf.c
index 5c69988f..388197c2 100644
--- a/i386/i386at/autoconf.c
+++ b/i386/i386at/autoconf.c
@@ -119,12 +119,6 @@ void probeio(void)
                        i++;
        }
 
-#if    MACH_TTD
-       /*
-        * Initialize Remote kernel debugger.
-        */
-       ttd_init();
-#endif /* MACH_TTD */
 }
 
 void take_dev_irq(
diff --git a/x86_64/locore.S b/x86_64/locore.S
index fad0d73c..dd35d2f8 100644
--- a/x86_64/locore.S
+++ b/x86_64/locore.S
@@ -733,7 +733,7 @@ _kret_iret:
  * Trap from kernel mode.  No need to switch stacks.
  */
 trap_from_kernel:
-#if    MACH_KDB || MACH_TTD
+#if    MACH_KDB
        movq    %rsp,%rbx               /* save current stack */
        movq    %rsp,%rdx               /* on an interrupt stack? */
 
@@ -756,12 +756,12 @@ trap_from_kernel:
        call    EXT(kernel_trap)        /* to kernel trap routine */
 
        popq    %rsp                    /* return to old stack */
-#else  /* MACH_KDB || MACH_TTD */
+#else  /* MACH_KDB */
 
        movq    %rsp,%rdi               /* pass parameter */
        call    EXT(kernel_trap)        /* to kernel trap routine */
 
-#endif /* MACH_KDB || MACH_TTD */
+#endif /* MACH_KDB */
 
        jmp     _return_from_kernel
 
@@ -1150,86 +1150,6 @@ ud2
 
 #endif /* MACH_KDB */
 
-#if    MACH_TTD
-/*
- * Same code as that above for the keyboard entry into kdb.
- */
-ENTRY(kttd_intr)
-// TODO: test it before dropping ud2
-ud2
-       movq    %rbp,%rax               /* save caller`s frame pointer */
-       movq    $EXT(return_to_iret),%rcx       /* interrupt return address 1 */
-       movq    $_return_to_iret_i,%rdx /* interrupt return address 2 */
-
-0:     cmpq    32(%rax),%rcx           /* does this frame return to */
-                                       /* interrupt handler (1)? */
-       je      1f
-       cmpq    32(%rax),%rdx           /* interrupt handler (2)? */
-       je      2f                      /* if not: */
-       movq    (%rax),%rax             /* try next frame */
-       jmp     0b
-
-1:     movq    $ttd_from_iret,32(%rax) /* returns to kernel/user stack */
-       ret
-
-2:     movq    $ttd_from_iret_i,32(%rax)
-                                       /* returns to interrupt stack */
-       ret
-
-/*
- * On return from keyboard interrupt, we will execute
- * ttd_from_iret_i
- *     if returning to an interrupt on the interrupt stack
- * ttd_from_iret
- *     if returning to an interrupt on the user or kernel stack
- */
-ttd_from_iret:
-                                       /* save regs in known locations */
-#if    STAT_TIME
-       pushq   %rbx                    /* caller`s %ebx is in reg */
-#else
-       movq    8(%rsp),%rax            /* get caller`s %ebx */
-       pushq   %rax                    /* push on stack */
-#endif
-       pushq   %rbp
-       pushq   %rsi
-       pushq   %rdi
-       movq    %rsp,%rdi               /* pass regs */
-       call    _kttd_netentry          /* to kdb */
-       popq    %rdi                    /* restore registers */
-       popq    %rsi
-       popq    %rbp
-#if    STAT_TIME
-       popq    %rbx
-#else
-       popq    %rax
-       movq    %rax,8(%rsp)
-#endif
-       jmp     EXT(return_to_iret)     /* normal interrupt return */
-
-ttd_from_iret_i:                       /* on interrupt stack */
-       pop     %rdx                    /* restore saved registers */
-       pop     %rcx
-       pop     %rax
-       pushq   $0                      /* zero error code */
-       pushq   $0                      /* zero trap number */
-       pusha                           /* save general registers */
-       PUSH_SEGMENTS_ISR(%rdx)         /* save segment registers */
-       ud2     // TEST it
-       movq    %rsp,%rdx               /* pass regs, */
-       movq    $0,%rsi                 /* code, */
-       movq    $-1,%rdi                /* type to kdb */
-       call    _kttd_trap
-       POP_SEGMENTS_ISR(%rdx)          /* restore segment registers */
-       popa                            /* restore general registers */
-       addq    $16,%rsp
-
-// TODO: test it before dropping ud2
-movq (%rsp),%rax
-ud2
-       iretq
-
-#endif /* MACH_TTD */
 
 #ifdef USER32
 /*
diff --git a/x86_64/spl.S b/x86_64/spl.S
index 28a17e22..5fdf977c 100644
--- a/x86_64/spl.S
+++ b/x86_64/spl.S
@@ -130,7 +130,7 @@ ENTRY(spl7)
 ENTRY(splx)
        movq    S_ARG0,%rdx             /* get ipl */
        CPU_NUMBER(%eax)
-#if (MACH_KDB || MACH_TTD) && !defined(MACH_XEN)
+#if MACH_KDB && !defined(MACH_XEN)
        /* First make sure that if we're exitting from ipl7, IF is still 
cleared */
        cmpl    $SPL7,CX(EXT(curr_ipl),%rax)    /* from ipl7? */
        jne     0f
@@ -141,7 +141,7 @@ ENTRY(splx)
        int3                            /* Oops, interrupts got enabled?! */
 
 0:
-#endif /* (MACH_KDB || MACH_TTD) && !MACH_XEN */
+#endif /* MACH_KDB && !MACH_XEN */
        testl   %edx,%edx               /* spl0? */
        jz      EXT(spl0)               /* yes, handle specially */
        CPU_NUMBER(%eax)
@@ -214,7 +214,7 @@ splx_cli:
        .globl  spl
 spl:
        CPU_NUMBER(%eax)
-#if (MACH_KDB || MACH_TTD) && !defined(MACH_XEN)
+#if MACH_KDB && !defined(MACH_XEN)
        /* First make sure that if we're exitting from ipl7, IF is still 
cleared */
        cmpl    $SPL7,CX(EXT(curr_ipl),%rax)    /* from ipl7? */
        jne     0f
@@ -225,7 +225,7 @@ spl:
        int3                            /* Oops, interrupts got enabled?! */
 
 0:
-#endif /* (MACH_KDB || MACH_TTD) && !MACH_XEN */
+#endif /* MACH_KDB && !MACH_XEN */
        cmpl    $SPL7,%edx              /* spl7? */
        je      EXT(spl7)               /* yes, handle specially */
 #ifdef MACH_XEN
-- 
2.53.0



Reply via email to