Print this page
8956 Implement KPTI
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
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>
Reviewed by: Yuri Pankov <yuripv@yuripv.net>

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/mdb/i86pc/modules/unix/unix_sup.s
          +++ new/usr/src/cmd/mdb/i86pc/modules/unix/unix_sup.s
↓ open down ↓ 2 lines elided ↑ open up ↑
   3    3   * Common Development and Distribution License ("CDDL"), version 1.0.
   4    4   * You may only use this file in accordance with the terms of version
   5    5   * 1.0 of the CDDL.
   6    6   *
   7    7   * A full copy of the text of the CDDL should have accompanied this
   8    8   * source.  A copy of the CDDL is also available via the Internet at
   9    9   * http://www.illumos.org/license/CDDL.
  10   10   */
  11   11  
  12   12  /*
  13      - * Copyright 2015 Joyent, Inc.
       13 + * Copyright 2018 Joyent, Inc.
  14   14   */
  15   15  
  16   16  #if !defined(__lint)
  17   17          .file   "unix_sup.s"
  18   18  #endif /* __lint */
  19   19  
  20   20  /*
  21   21   * Support routines for the unix kmdb module
  22   22   */
  23   23  
↓ open down ↓ 1 lines elided ↑ open up ↑
  25   25  
  26   26  #if defined(__lint)
  27   27  
  28   28  #include <sys/types.h>
  29   29  
  30   30  ulong_t
  31   31  kmdb_unix_getcr0(void)
  32   32  { return (0); }
  33   33  
  34   34  ulong_t
       35 +kmdb_unix_getcr3(void)
       36 +{ return (0); }
       37 +
       38 +ulong_t
  35   39  kmdb_unix_getcr4(void)
  36   40  { return (0); }
  37   41  
  38   42  #else   /* __lint */
  39   43  
  40   44  #if defined(__amd64)
  41   45          ENTRY(kmdb_unix_getcr0)
  42   46          movq %cr0, %rax
  43   47          ret
  44   48          SET_SIZE(kmdb_unix_getcr0)
  45   49  
       50 +        ENTRY(kmdb_unix_getcr2)
       51 +        movq %cr2, %rax
       52 +        ret
       53 +        SET_SIZE(kmdb_unix_getcr2)
       54 +
       55 +        ENTRY(kmdb_unix_getcr3)
       56 +        movq %cr3, %rax
       57 +        ret
       58 +        SET_SIZE(kmdb_unix_getcr3)
       59 +
  46   60          ENTRY(kmdb_unix_getcr4)
  47   61          movq %cr4, %rax
  48   62          ret
  49   63          SET_SIZE(kmdb_unix_getcr4)
  50   64  
  51   65  #elif defined (__i386)
  52   66          ENTRY(kmdb_unix_getcr0)
  53   67          movl %cr0, %eax
  54   68          ret
  55   69          SET_SIZE(kmdb_unix_getcr0)
  56   70  
       71 +        ENTRY(kmdb_unix_getcr2)
       72 +        movl %cr2, %eax
       73 +        ret
       74 +        SET_SIZE(kmdb_unix_getcr2)
       75 +
       76 +        ENTRY(kmdb_unix_getcr3)
       77 +        movl %cr3, %eax
       78 +        ret
       79 +        SET_SIZE(kmdb_unix_getcr3)
       80 +
  57   81          ENTRY(kmdb_unix_getcr4)
  58   82          movl %cr4, %eax
  59   83          ret
  60   84          SET_SIZE(kmdb_unix_getcr4)
  61   85  
  62   86  #endif  /* __i386 */
  63   87  
  64   88  #endif /* __lint */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX