Print this page
9210 remove KMDB branch debugging support
9211 ::crregs could do with cr2/cr3 support
9209 ::ttrace should be able to filter by thread
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/intel/sys/kdi_machimpl.h
          +++ new/usr/src/uts/intel/sys/kdi_machimpl.h
↓ open down ↓ 13 lines elided ↑ open up ↑
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  23   23   * Use is subject to license terms.
       24 + *
       25 + * Copyright 2018 Joyent, Inc.
  24   26   */
  25   27  
  26   28  #ifndef _SYS_KDI_MACHIMPL_H
  27   29  #define _SYS_KDI_MACHIMPL_H
  28   30  
  29      -#pragma ident   "%Z%%M% %I%     %E% SMI"
  30      -
  31   31  /*
  32   32   * The Kernel/Debugger interface.  The operations provided by the kdi_t,
  33   33   * defined below, comprise the Debugger -> Kernel portion of the interface,
  34   34   * and are to be used only when the system has been stopped.
  35   35   */
  36   36  
  37   37  #include <sys/modctl.h>
  38   38  #include <sys/types.h>
  39   39  #include <sys/cpuvar.h>
  40   40  #include <sys/kdi_regs.h>
↓ open down ↓ 11 lines elided ↑ open up ↑
  52   52  
  53   53  #define KDI_MEMRANGES_MAX       2
  54   54  
  55   55  typedef struct kdi_mach {
  56   56          void (*mkdi_activate)(kdi_main_t, kdi_cpusave_t *, uint_t);
  57   57          void (*mkdi_deactivate)(void);
  58   58  
  59   59          void (*mkdi_idt_switch)(kdi_cpusave_t *);
  60   60  
  61   61          void (*mkdi_update_drreg)(kdi_drreg_t *);
  62      -        void (*mkdi_set_debug_msrs)(kdi_msr_t *);
  63   62  
  64   63          uintptr_t (*mkdi_get_userlimit)(void);
  65   64  
  66   65          int (*mkdi_get_cpuinfo)(uint_t *, uint_t *, uint_t *);
  67   66  
  68   67          void (*mkdi_stop_slaves)(int, int);
  69   68  
  70   69          void (*mkdi_start_slaves)(void);
  71   70  
  72   71          void (*mkdi_slave_wait)(void);
  73   72  
  74   73          void (*mkdi_memrange_add)(caddr_t, size_t);
  75   74  
  76   75          void (*mkdi_reboot)(void);
  77   76  } kdi_mach_t;
  78   77  
  79   78  #define mkdi_activate                   kdi_mach.mkdi_activate
  80   79  #define mkdi_deactivate                 kdi_mach.mkdi_deactivate
  81   80  #define mkdi_idt_switch                 kdi_mach.mkdi_idt_switch
  82   81  #define mkdi_update_drreg               kdi_mach.mkdi_update_drreg
  83      -#define mkdi_set_debug_msrs             kdi_mach.mkdi_set_debug_msrs
  84   82  #define mkdi_get_userlimit              kdi_mach.mkdi_get_userlimit
  85   83  #define mkdi_get_cpuinfo                kdi_mach.mkdi_get_cpuinfo
  86   84  #define mkdi_stop_slaves                kdi_mach.mkdi_stop_slaves
  87   85  #define mkdi_start_slaves               kdi_mach.mkdi_start_slaves
  88   86  #define mkdi_slave_wait                 kdi_mach.mkdi_slave_wait
  89   87  #define mkdi_memrange_add               kdi_mach.mkdi_memrange_add
  90   88  #define mkdi_reboot                     kdi_mach.mkdi_reboot
  91   89  
  92   90  extern void hat_kdi_init(void);
  93   91  
  94   92  extern ulong_t kdi_getdr0(void), kdi_getdr1(void), kdi_getdr2(void);
  95   93  extern ulong_t kdi_getdr3(void), kdi_getdr6(void), kdi_getdr7(void);
  96   94  extern void kdi_setdr0(ulong_t), kdi_setdr1(ulong_t), kdi_setdr2(ulong_t);
  97   95  extern void kdi_setdr3(ulong_t), kdi_setdr6(ulong_t), kdi_setdr7(ulong_t);
  98   96  extern ulong_t kdi_dreg_get(int);
  99   97  extern void kdi_dreg_set(int, ulong_t);
 100   98  extern void kdi_update_drreg(kdi_drreg_t *);
 101      -extern void kdi_set_debug_msrs(kdi_msr_t *);
 102   99  extern void kdi_cpu_debug_init(kdi_cpusave_t *);
 103  100  
 104  101  extern void kdi_cpu_init(void);
 105  102  extern void kdi_xc_others(int, void (*)(void));
 106  103  extern void kdi_start_slaves(void);
 107  104  extern void kdi_slave_wait(void);
 108  105  
 109  106  extern void kdi_idtr_set(gate_desc_t *, size_t);
 110  107  extern void kdi_idt_write(struct gate_desc *, uint_t);
 111  108  extern void kdi_idt_sync(void);
↓ open down ↓ 18 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX