Print this page
OS-4277 lx procfs /proc/{pid}/environ always empty
OS-3463 expose process argv through procfs
OS-3207 in lx zone, 'ps auxww' does not show full cmdline for processes
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/proc/prdata.h
          +++ new/usr/src/uts/common/fs/proc/prdata.h
↓ open down ↓ 19 lines elided ↑ open up ↑
  20   20   */
  21   21  /*
  22   22   * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  23   23   * Use is subject to license terms.
  24   24   */
  25   25  
  26   26  /*      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
  27   27  /*        All Rights Reserved   */
  28   28  
  29   29  /*
  30      - * Copyright (c) 2013, Joyent, Inc. All rights reserved.
       30 + * Copyright 2015, Joyent, Inc.
  31   31   */
  32   32  
  33   33  #ifndef _SYS_PROC_PRDATA_H
  34   34  #define _SYS_PROC_PRDATA_H
  35   35  
  36   36  #include <sys/isa_defs.h>
  37   37  #include <sys/proc.h>
  38   38  #include <sys/vnode.h>
  39   39  #include <sys/prsystm.h>
  40   40  #include <sys/model.h>
↓ open down ↓ 75 lines elided ↑ open up ↑
 116  116          PR_LPSINFO,             /* /proc/<pid>/lpsinfo                  */
 117  117          PR_MAP,                 /* /proc/<pid>/map                      */
 118  118          PR_RMAP,                /* /proc/<pid>/rmap                     */
 119  119          PR_XMAP,                /* /proc/<pid>/xmap                     */
 120  120          PR_CRED,                /* /proc/<pid>/cred                     */
 121  121          PR_SIGACT,              /* /proc/<pid>/sigact                   */
 122  122          PR_AUXV,                /* /proc/<pid>/auxv                     */
 123  123  #if defined(__i386) || defined(__amd64)
 124  124          PR_LDT,                 /* /proc/<pid>/ldt                      */
 125  125  #endif
      126 +        PR_ARGV,                /* /proc/<pid>/argv                     */
 126  127          PR_USAGE,               /* /proc/<pid>/usage                    */
 127  128          PR_LUSAGE,              /* /proc/<pid>/lusage                   */
 128  129          PR_PAGEDATA,            /* /proc/<pid>/pagedata                 */
 129  130          PR_WATCH,               /* /proc/<pid>/watch                    */
 130  131          PR_CURDIR,              /* /proc/<pid>/cwd                      */
 131  132          PR_ROOTDIR,             /* /proc/<pid>/root                     */
 132  133          PR_FDDIR,               /* /proc/<pid>/fd                       */
 133  134          PR_FD,                  /* /proc/<pid>/fd/nn                    */
 134  135          PR_OBJECTDIR,           /* /proc/<pid>/object                   */
 135  136          PR_OBJECT,              /* /proc/<pid>/object/xxx               */
↓ open down ↓ 204 lines elided ↑ open up ↑
 340  341  extern  int     pr_setsig(prnode_t *, siginfo_t *);
 341  342  extern  int     pr_kill(prnode_t *, int, cred_t *);
 342  343  extern  int     pr_unkill(prnode_t *, int);
 343  344  extern  int     pr_nice(proc_t *, int, cred_t *);
 344  345  extern  void    pr_setentryexit(proc_t *, sysset_t *, int);
 345  346  extern  int     pr_set(proc_t *, long);
 346  347  extern  int     pr_unset(proc_t *, long);
 347  348  extern  void    pr_sethold(prnode_t *, sigset_t *);
 348  349  extern  void    pr_setfault(proc_t *, fltset_t *);
 349  350  extern  int     prusrio(proc_t *, enum uio_rw, struct uio *, int);
      351 +extern  int     prreadargv(proc_t *, char *, size_t, size_t *);
      352 +extern  int     prreadenvv(proc_t *, char *, size_t, size_t *);
 350  353  extern  int     prwritectl(vnode_t *, struct uio *, cred_t *);
 351  354  extern  int     prlock(prnode_t *, int);
 352  355  extern  void    prunmark(proc_t *);
 353  356  extern  void    prunlock(prnode_t *);
 354  357  extern  size_t  prpdsize(struct as *);
 355  358  extern  int     prpdread(proc_t *, uint_t, struct uio *);
 356  359  extern  size_t  oprpdsize(struct as *);
 357  360  extern  int     oprpdread(struct as *, uint_t, struct uio *);
 358  361  extern  void    prgetaction(proc_t *, user_t *, uint_t, struct sigaction *);
 359  362  extern  void    prgetusage(kthread_t *, struct prhusage *);
↓ open down ↓ 57 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX