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,11 +25,11 @@
 
 /*      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
 /*        All Rights Reserved   */
 
 /*
- * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ * Copyright 2015, Joyent, Inc.
  */
 
 #ifndef _SYS_PROC_PRDATA_H
 #define _SYS_PROC_PRDATA_H
 

@@ -121,10 +121,11 @@
         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,10 +346,12 @@
 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 *);