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>
        
*** 25,35 ****
  
  /*      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
  /*        All Rights Reserved   */
  
  /*
!  * Copyright (c) 2013, Joyent, Inc. All rights reserved.
   */
  
  #ifndef _SYS_PROC_PRDATA_H
  #define _SYS_PROC_PRDATA_H
  
--- 25,35 ----
  
  /*      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
  /*        All Rights Reserved   */
  
  /*
!  * Copyright 2015, Joyent, Inc.
   */
  
  #ifndef _SYS_PROC_PRDATA_H
  #define _SYS_PROC_PRDATA_H
  
*** 121,130 ****
--- 121,131 ----
          PR_SIGACT,              /* /proc/<pid>/sigact                   */
          PR_AUXV,                /* /proc/<pid>/auxv                     */
  #if defined(__i386) || defined(__amd64)
          PR_LDT,                 /* /proc/<pid>/ldt                      */
  #endif
+         PR_ARGV,                /* /proc/<pid>/argv                     */
          PR_USAGE,               /* /proc/<pid>/usage                    */
          PR_LUSAGE,              /* /proc/<pid>/lusage                   */
          PR_PAGEDATA,            /* /proc/<pid>/pagedata                 */
          PR_WATCH,               /* /proc/<pid>/watch                    */
          PR_CURDIR,              /* /proc/<pid>/cwd                      */
*** 345,354 ****
--- 346,357 ----
  extern  int     pr_set(proc_t *, long);
  extern  int     pr_unset(proc_t *, long);
  extern  void    pr_sethold(prnode_t *, sigset_t *);
  extern  void    pr_setfault(proc_t *, fltset_t *);
  extern  int     prusrio(proc_t *, enum uio_rw, struct uio *, int);
+ extern  int     prreadargv(proc_t *, char *, size_t, size_t *);
+ extern  int     prreadenvv(proc_t *, char *, size_t, size_t *);
  extern  int     prwritectl(vnode_t *, struct uio *, cred_t *);
  extern  int     prlock(prnode_t *, int);
  extern  void    prunmark(proc_t *);
  extern  void    prunlock(prnode_t *);
  extern  size_t  prpdsize(struct as *);