Print this page
    
15254 %ymm registers not restored after signal handler
15367 x86 getfpregs() summons corrupting %xmm ghosts
15333 want x86 /proc xregs support (libc_db, libproc, mdb, etc.)
15336 want libc functions for extended ucontext_t
15334 want ps_lwphandle-specific reg routines
15328 FPU_CW_INIT mistreats reserved bit
15335 i86pc fpu_subr.c isn't really platform-specific
15332 setcontext(2) isn't actually noreturn
15331 need <sys/stdalign.h>
Change-Id: I7060aa86042dfb989f77fc3323c065ea2eafa9ad
Conflicts:
    usr/src/uts/common/fs/proc/prcontrol.c
    usr/src/uts/intel/os/archdep.c
    usr/src/uts/intel/sys/ucontext.h
    usr/src/uts/intel/syscall/getcontext.c
    
      
        | Split | 
	Close | 
      
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/lib/libproc/common/mapfile-vers
          +++ new/usr/src/lib/libproc/common/mapfile-vers
   1    1  #
   2    2  # CDDL HEADER START
   3    3  #
   4    4  # The contents of this file are subject to the terms of the
   5    5  # Common Development and Distribution License (the "License").
   6    6  # You may not use this file except in compliance with the License.
   7    7  #
   8    8  # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9    9  # or http://www.opensolaris.org/os/licensing.
  10   10  # See the License for the specific language governing permissions
  11   11  # and limitations under the License.
  12   12  #
  13   13  # When distributing Covered Code, include this CDDL HEADER in each
  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]
  
    | 
      ↓ open down ↓ | 
    17 lines elided | 
    
      ↑ open up ↑ | 
  
  18   18  #
  19   19  # CDDL HEADER END
  20   20  #
  21   21  #
  22   22  # Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
  23   23  # Copyright 2012 DEY Storage Systems, Inc.  All rights reserved.
  24   24  # Copyright 2018 Joyent, Inc.
  25   25  # Copyright (c) 2013 by Delphix. All rights reserved.
  26   26  # Copyright (c) 2019 Carlos Neira <cneirabustos@gmail.com>
  27   27  # Copyright 2020 OmniOS Community Edition (OmniOSce) Association.
       28 +# Copyright 2023 Oxide Computer Company
  28   29  #
  29   30  
  30   31  #
  31   32  # MAPFILE HEADER START
  32   33  #
  33   34  # WARNING:  STOP NOW.  DO NOT MODIFY THIS FILE.
  34   35  # Object versioning must comply with the rules detailed in
  35   36  #
  36   37  #       usr/src/lib/README.mapfiles
  37   38  #
  38   39  # You should not be making modifications here until you've read the most current
  39   40  # copy of that file. If you need help, contact a gatekeeper for guidance.
  40   41  #
  41   42  # MAPFILE HEADER END
  42   43  #
  43   44  
  44   45  $mapfile_version 2
  45   46  
  46   47  # Due to mistakes made early in the history of this library, there are no
  47   48  # SUNW_1.1 through SUNW_1.4 symbols, but they are now kept as placeholders.
  48   49  # Don't add any symbols to these versions.
  49   50  
  50   51  SYMBOL_VERSION SUNW_1.4 {
  51   52      global:
  52   53          SUNW_1.4;
  53   54  } SUNW_1.3;
  54   55  
  55   56  SYMBOL_VERSION SUNW_1.3 {
  56   57      global:
  57   58          SUNW_1.3;
  58   59  } SUNW_1.2;
  59   60  
  60   61  SYMBOL_VERSION SUNW_1.2 {
  61   62      global:
  62   63          SUNW_1.2;
  63   64  } SUNW_1.1;
  64   65  
  65   66  SYMBOL_VERSION SUNW_1.1 {
  66   67      global:
  67   68          SUNW_1.1;
  68   69  };
  
    | 
      ↓ open down ↓ | 
    31 lines elided | 
    
      ↑ open up ↑ | 
  
  69   70  
  70   71  SYMBOL_VERSION SUNWprivate_1.1 {
  71   72      global:
  72   73          Lalt_stack;
  73   74          Lclearfault;
  74   75          Lclearsig;
  75   76          Lctlfd;
  76   77          Ldstop;
  77   78          Lfree;
  78   79          Lgetareg;
       80 +        Lgetfpregs;
       81 +        Lgetregs;
       82 +        Lgetxregs;
  79   83          Lgrab;
  80   84          Lgrab_error;
  81   85          _libproc_debug  { ASSERT = { TYPE = OBJECT; SIZE = 4; }; };
  82   86          Lmain_stack;
  83   87          Lprochandle;
  84   88          Lpsinfo;
  85   89          Lputareg;
       90 +        Lsetfpregs;
       91 +        Lsetregs;
  86   92          Lsetrun;
       93 +        Lsetxregs;
  87   94          Lstack;
  88   95          Lstate;
  89   96          Lstatus;
  90   97          Lstop;
  91   98          Lsync;
  92   99          Lwait;
  93  100          Lxecbkpt;
  94  101          Lxecwapt;
  95  102          Paddr_to_ctf;
  96  103          Paddr_to_loadobj;
  97  104          Paddr_to_map;
  98  105          Paddr_to_text_map;
  99  106          Pasfd;
 100  107          Pclearfault;
 101  108          Pclearsig;
 102  109          Pcontent;
 103  110          Pcreate;
 104  111          Pcreate_agent;
 105  112          Pcreate_callback;
 106  113          Pcreate_error;
 107  114          Pcred;
 108  115          Pctlfd;
 109  116          Pdelbkpt;
 110  117          Pdelwapt;
 111  118          Pdestroy_agent;
 112  119          Pdstop;
 113  120          Penv_iter;
 114  121          Perror_printf;
 115  122          Pexecname;
 116  123          Pfault;
 117  124          Pfgcore;
 118  125          Pfgrab_core;
 119  126          Pfree;
 120  127          Pgcore;
 121  128          Pgetareg;
 122  129          Pgetauxval;
 123  130          Pgetauxvec;
 124  131          Pgetenv;
 125  132          Pgrab;
 126  133          Pgrab_core;
 127  134          Pgrab_error;
 128  135          Pgrab_file;
 129  136          Pgrab_ops;
  
    | 
      ↓ open down ↓ | 
    33 lines elided | 
    
      ↑ open up ↑ | 
  
 130  137          Pisprocdir;
 131  138          Pissyscall;
 132  139          Pissyscall_prev;
 133  140          Plmid;
 134  141          Plmid_to_ctf;
 135  142          Plmid_to_loadobj;
 136  143          Plmid_to_map;
 137  144          Plookup_by_addr;
 138  145          Plookup_by_name;
 139  146          Plwp_alt_stack;
      147 +        Plwp_freexregs;
 140  148          Plwp_getfpregs;
 141  149          Plwp_getname;
 142  150          Plwp_getpsinfo;
 143  151          Plwp_getregs;
 144  152          Plwp_getspymaster;
      153 +        Plwp_getxregs;
 145  154          Plwp_iter;
 146  155          Plwp_iter_all;
 147  156          Plwp_main_stack;
 148  157          Plwp_setfpregs;
 149  158          Plwp_setregs;
      159 +        Plwp_setxregs;
 150  160          Plwp_stack;
 151  161          Pmapping_iter;
 152  162          Pmapping_iter_resolved;
 153  163          Pname_to_ctf;
 154  164          Pname_to_loadobj;
 155  165          Pname_to_map;
 156  166          Pobject_iter;
 157  167          Pobject_iter_resolved;
 158  168          Pobjname;
 159  169          Pobjname_resolved;
 160  170          Pplatform;
 161  171          Ppltdest;
 162  172          Ppriv;
 163  173          Pprivinfo;
 164  174          Ppriv_free;
 165  175          Ppsinfo;
 166  176          Pputareg;
 167  177          pr_access;
 168  178          pr_close;
 169  179          pr_creat;
 170  180          Prd_agent;
 171  181          pr_door_info;
 172  182          Pread;
 173  183          Pread_string;
 174  184          Prelease;
 175  185          Preopen;
 176  186          Preset_maps;
 177  187          pr_exit;
 178  188          pr_fcntl;
 179  189          pr_fstat;
 180  190          pr_fstat64;
 181  191          pr_fstatvfs;
 182  192          pr_getitimer;
 183  193          pr_getpeername;
 184  194          pr_getpeerucred;
 185  195          pr_getprojid;
 186  196          pr_getrctl;
 187  197          pr_getrlimit;
 188  198          pr_getrlimit64;
 189  199          pr_getsockname;
 190  200          pr_getsockopt;
 191  201          pr_gettaskid;
 192  202          pr_getzoneid;
 193  203          pr_ioctl;
 194  204          pr_link;
 195  205          pr_llseek;
 196  206          pr_lseek;
 197  207          pr_lstat;
 198  208          pr_lstat64;
 199  209          pr_lwp_exit;
 200  210          pr_memcntl;
 201  211          pr_meminfo;
 202  212          pr_mmap;
 203  213          pr_munmap;
 204  214          proc_arg_grab;
 205  215          proc_arg_psinfo;
 206  216          proc_arg_xgrab;
 207  217          proc_arg_xpsinfo;
 208  218          proc_content2str;
 209  219          proc_dmodelname;
 210  220          proc_fdinfo_free;
 211  221          proc_fdinfo_misc;
 212  222          proc_fdinfowalk;
 213  223          proc_fdwalk;
 214  224          proc_finistdio;
 215  225          proc_fltname;
 216  226          proc_fltset2str;
 217  227          proc_flushstdio;
 218  228          proc_free_priv;
 219  229          proc_get_auxv;
 220  230          proc_get_cred;
 221  231          proc_get_fdinfo;
 222  232          proc_get_priv;
 223  233          proc_get_psinfo;
 224  234          proc_get_lwpsinfo;
 225  235          proc_get_secflags;
 226  236          proc_get_status;
 227  237          proc_initstdio;
 228  238          proc_lwp_in_set;
 229  239          proc_lwp_range_valid;
 230  240          proc_signame;
 231  241          proc_sigset2str;
 232  242          proc_str2content;
 233  243          proc_str2flt;
 234  244          proc_str2fltset;
 235  245          proc_str2sig;
 236  246          proc_str2sigset;
 237  247          proc_str2sys;
 238  248          proc_str2sysset;
 239  249          proc_sysname;
 240  250          proc_sysset2str;
 241  251          proc_unctrl_psinfo;
 242  252          proc_walk;
 243  253          pr_open;
 244  254          pr_processor_bind;
 245  255          pr_rename;
 246  256          pr_setitimer;
 247  257          pr_setprojrctl;
 248  258          pr_setrctl;
 249  259          pr_setrlimit;
 250  260          pr_setrlimit64;
 251  261          pr_settaskid;
 252  262          pr_sigaction;
 253  263          pr_stat;
 254  264          pr_stat64;
 255  265          pr_statvfs;
 256  266          pr_unlink;
 257  267          pr_waitid;
 258  268          pr_zmap;
 259  269          Pset_procfs_path;
 260  270          Psetbkpt;
 261  271          Psetcred;
 262  272          Psetfault;
 263  273          Psetflags;
 264  274          Psetpriv;
  
    | 
      ↓ open down ↓ | 
    105 lines elided | 
    
      ↑ open up ↑ | 
  
 265  275          Psetrun;
 266  276          Psetsignal;
 267  277          Psetsysentry;
 268  278          Psetsysexit;
 269  279          Psetwapt;
 270  280          Psetzoneid;
 271  281          Psignal;
 272  282          ps_lcontinue;
 273  283          ps_lgetfpregs;
 274  284          ps_lgetregs;
      285 +        ps_lgetxregs;
      286 +        ps_lgetxregsize;
 275  287          ps_lsetfpregs;
 276  288          ps_lsetregs;
      289 +        ps_lsetxregs;
 277  290          ps_lstop;
 278  291          ps_pauxv;
 279  292          ps_pbrandname;
 280  293          ps_pcontinue;
 281  294          ps_pdmodel;
 282  295          ps_pdread       { FLAGS = NODYNSORT; }; # Alias of ps_pread
 283  296          ps_pdwrite      { FLAGS = NODYNSORT; }; # Alias of ps_pwrite
 284  297          ps_pglobal_lookup;
 285  298          ps_pglobal_sym;
 286  299          ps_plog;
 287  300          ps_pread;
 288  301          ps_pstop;
 289  302          ps_ptread       { FLAGS = NODYNSORT; }; # Alias of ps_pread
 290  303          ps_ptwrite      { FLAGS = NODYNSORT; }; # Alias of ps_pwrite
 291  304          ps_pwrite;
 292  305          Psecflags;
 293  306          Psecflags_free;
 294  307          Pstack_iter;
 295  308          Pstate;
 296  309          Pstatus;
 297  310          Pstop;
 298  311          Pstopstatus;
 299  312          Psymbol_iter;
 300  313          Psymbol_iter_by_addr;
 301  314          Psymbol_iter_by_lmid;
 302  315          Psymbol_iter_by_name;
 303  316          Psync;
 304  317          Psyscall;
 305  318          Psysentry;
 306  319          Psysexit;
 307  320          Puname;
 308  321          Punsetflags;
 309  322          Pupdate_maps;
 310  323          Pupdate_syms;
 311  324          Pupanic;
 312  325          Pupanic_free;
 313  326          Pwait;
 314  327          Pwrite;
 315  328          Pxcreate;
 316  329          Pxecbkpt;
 317  330          Pxecwapt;
 318  331          Pxlookup_by_addr;
 319  332          Pxlookup_by_addr_resolved;
 320  333          Pxlookup_by_name;
 321  334          Pxsymbol_iter;
 322  335          Pzonename;
 323  336          Pzonepath;
 324  337          Pzoneroot;
  
    | 
      ↓ open down ↓ | 
    38 lines elided | 
    
      ↑ open up ↑ | 
  
 325  338          Pfdinfo_iter;
 326  339  
 327  340  $if _x86 && _ELF32
 328  341          Pldt;
 329  342          proc_get_ldt;
 330  343          ps_lgetLDT;
 331  344  $endif
 332  345  
 333  346  $if _sparc
 334  347          Plwp_getgwindows;
 335      -        Plwp_getxregs;
 336      -        Plwp_setxregs;
 337      -        ps_lgetxregs;
 338      -        ps_lgetxregsize;
 339      -        ps_lsetxregs;
 340      -
 341  348  $if _ELF64
 342  349          Plwp_getasrs;
 343  350          Plwp_setasrs;
 344  351  $endif
 345  352  $endif
 346  353  
 347  354      local:
 348  355          *;
 349  356  };
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX