Print this page
XXX AVX procfs

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/intel/sys/ucontext.h
          +++ new/usr/src/uts/intel/sys/ucontext.h
↓ open down ↓ 64 lines elided ↑ open up ↑
  65   65  } stack_t;
  66   66  #endif /* _STACK_T */
  67   67  #endif /* defined(_XPG4_2) && !defined(__EXTENSIONS__) */
  68   68  
  69   69  #if !defined(_XPG4_2) || defined(__EXTENSIONS__)
  70   70  typedef struct ucontext ucontext_t;
  71   71  #else
  72   72  typedef struct __ucontext ucontext_t;
  73   73  #endif /* !defined(_XPG4_2) || defined(__EXTENSIONS__) */
  74   74  
       75 +#define XRS_ID  0x00737278      /* the string "xrs" */
       76 +
       77 +typedef struct {
       78 +        unsigned long   xrs_id;
       79 +        caddr_t         xrs_ptr;
       80 +} xrs_t;
       81 +
  75   82  #if !defined(_XPG4_2) || defined(__EXTENSIONS__)
  76   83  struct  ucontext {
  77   84  #else
  78   85  struct  __ucontext {
  79   86  #endif
  80   87          unsigned long   uc_flags;
  81   88          ucontext_t      *uc_link;
  82   89          sigset_t        uc_sigmask;
  83   90          stack_t         uc_stack;
  84   91          mcontext_t      uc_mcontext;
  85      -        long            uc_filler[5];   /* see ABI spec for Intel386 */
       92 +        xrs_t           uc_xrs;
       93 +        long            uc_filler[3];   /* see ABI spec for Intel386 */
  86   94  };
  87   95  
  88   96  #if defined(_SYSCALL32)
  89   97  
       98 +typedef struct {
       99 +        uint32_t        xrs_id;
      100 +        caddr32_t       xrs_ptr;
      101 +} xrs32_t;
      102 +
  90  103  /* Kernel view of user ILP32 ucontext structure */
  91  104  
  92  105  typedef struct ucontext32 {
  93  106          uint32_t        uc_flags;
  94  107          caddr32_t       uc_link;
  95  108          sigset_t        uc_sigmask;
  96  109          stack32_t       uc_stack;
  97  110          mcontext32_t    uc_mcontext;
  98      -        int32_t         uc_filler[5];
      111 +        xrs32_t         uc_xrs;
      112 +        int32_t         uc_filler[3];
  99  113  } ucontext32_t;
 100  114  
 101  115  #if defined(_KERNEL)
 102  116  extern void ucontext_nto32(const ucontext_t *src, ucontext32_t *dest);
 103  117  extern void ucontext_32ton(const ucontext32_t *src, ucontext_t *dest);
 104  118  #endif
 105  119  
 106  120  #endif  /* _SYSCALL32 */
 107  121  
 108  122  #if !defined(_XPG4_2) || defined(__EXTENSIONS__)
↓ open down ↓ 6 lines elided ↑ open up ↑
 115  129   * values for uc_flags
 116  130   * these are implementation dependent flags, that should be hidden
 117  131   * from the user interface, defining which elements of ucontext
 118  132   * are valid, and should be restored on call to setcontext
 119  133   */
 120  134  
 121  135  #define UC_SIGMASK      0x01
 122  136  #define UC_STACK        0x02
 123  137  #define UC_CPU          0x04
 124  138  #define UC_MAU          0x08
      139 +#define UC_XREGS        0x10
 125  140  #define UC_FPU          UC_MAU
 126  141  
 127  142  #define UC_MCONTEXT     (UC_CPU|UC_FPU)
 128  143  
 129  144  /*
 130  145   * UC_ALL specifies the default context
 131  146   */
 132  147  
 133  148  #define UC_ALL          (UC_SIGMASK|UC_STACK|UC_MCONTEXT)
 134  149  #endif /* !defined(_XPG4_2) || defined(__EXTENSIONS__) */
↓ open down ↓ 15 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX