Print this page
9736 kmdb tortures via single-step miscellaneous trap
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/intel/amd64/sys/kdi_regs.h
          +++ new/usr/src/uts/intel/amd64/sys/kdi_regs.h
↓ open down ↓ 21 lines elided ↑ open up ↑
  22   22  /*
  23   23   * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  24   24   * Use is subject to license terms.
  25   25   *
  26   26   * Copyright 2018 Joyent, Inc.
  27   27   */
  28   28  
  29   29  #ifndef _AMD64_SYS_KDI_REGS_H
  30   30  #define _AMD64_SYS_KDI_REGS_H
  31   31  
       32 +#include <sys/stddef.h>
       33 +
  32   34  #ifdef __cplusplus
  33   35  extern "C" {
  34   36  #endif
  35   37  
  36   38  /*
  37   39   * A modified version of struct regs layout.
  38   40   */
  39   41  
  40   42  #define KDIREG_SAVFP    0
  41   43  #define KDIREG_SAVPC    1
↓ open down ↓ 28 lines elided ↑ open up ↑
  70   72  #define KDIREG_RFLAGS   30
  71   73  #define KDIREG_RSP      31
  72   74  #define KDIREG_SS       32
  73   75  
  74   76  #define KDIREG_NGREG    (KDIREG_SS + 1)
  75   77  
  76   78  #define KDIREG_PC       KDIREG_RIP
  77   79  #define KDIREG_SP       KDIREG_RSP
  78   80  #define KDIREG_FP       KDIREG_RBP
  79   81  
       82 +#if !defined(_ASM)
       83 +
       84 +/*
       85 + * Handy for debugging krs_gregs; keep in sync with the KDIREG_* above.
       86 + */
       87 +typedef struct {
       88 +        greg_t kr_savfp;
       89 +        greg_t kr_savpc;
       90 +        greg_t kr_rdi;
       91 +        greg_t kr_rsi;
       92 +        greg_t kr_rdx;
       93 +        greg_t kr_rcx;
       94 +        greg_t kr_r8;
       95 +        greg_t kr_r9;
       96 +        greg_t kr_rax;
       97 +        greg_t kr_rbx;
       98 +        greg_t kr_rbp;
       99 +        greg_t r_r10;
      100 +        greg_t r_r11;
      101 +        greg_t r_r12;
      102 +        greg_t r_r13;
      103 +        greg_t r_r14;
      104 +        greg_t r_r15;
      105 +        greg_t kr_fsbase;
      106 +        greg_t kr_gsbase;
      107 +        greg_t kr_kgsbase;
      108 +        greg_t kr_cr2;
      109 +        greg_t kr_cr3;
      110 +        greg_t kr_ds;
      111 +        greg_t kr_es;
      112 +        greg_t kr_fs;
      113 +        greg_t kr_gs;
      114 +        greg_t kr_trapno;
      115 +        greg_t kr_err;
      116 +        greg_t kr_rip;
      117 +        greg_t kr_cs;
      118 +        greg_t kr_rflags;
      119 +        greg_t kr_rsp;
      120 +        greg_t kr_ss;
      121 +} kdiregs_t;
      122 +
      123 +#if defined(_KERNEL)
      124 +CTASSERT(offsetof(kdiregs_t, kr_ss) == ((KDIREG_NGREG - 1) * sizeof (greg_t)));
      125 +#endif
      126 +
      127 +#endif /* !_ASM */
      128 +
  80  129  #ifdef __cplusplus
  81  130  }
  82  131  #endif
  83  132  
  84  133  #endif /* _AMD64_SYS_KDI_REGS_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX