Module Name: src
Committed By: christos
Date: Sun Dec 31 03:02:23 UTC 2017
Modified Files:
src/sys/miscfs/procfs: procfs.h procfs_cmdline.c procfs_subr.c
procfs_vfsops.c procfs_vnops.c
Log Message:
Add an environ node
To generate a diff of this commit:
cvs rdiff -u -r1.72 -r1.73 src/sys/miscfs/procfs/procfs.h
cvs rdiff -u -r1.28 -r1.29 src/sys/miscfs/procfs/procfs_cmdline.c
cvs rdiff -u -r1.109 -r1.110 src/sys/miscfs/procfs/procfs_subr.c
cvs rdiff -u -r1.98 -r1.99 src/sys/miscfs/procfs/procfs_vfsops.c
cvs rdiff -u -r1.201 -r1.202 src/sys/miscfs/procfs/procfs_vnops.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/miscfs/procfs/procfs.h
diff -u src/sys/miscfs/procfs/procfs.h:1.72 src/sys/miscfs/procfs/procfs.h:1.73
--- src/sys/miscfs/procfs/procfs.h:1.72 Sun Aug 27 20:46:07 2017
+++ src/sys/miscfs/procfs/procfs.h Sat Dec 30 22:02:23 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: procfs.h,v 1.72 2017/08/28 00:46:07 kamil Exp $ */
+/* $NetBSD: procfs.h,v 1.73 2017/12/31 03:02:23 christos Exp $ */
/*
* Copyright (c) 1993
@@ -94,6 +94,7 @@ typedef enum {
PFSnotepg, /* process group notifier */
PFSmap, /* memory map */
PFScmdline, /* process command line args */
+ PFSenviron, /* process environment */
PFSmeminfo, /* system memory info (if -o linux) */
PFScpuinfo, /* CPU info (if -o linux) */
PFSmaps, /* memory map, Linux style (if -o linux) */
@@ -208,7 +209,7 @@ int procfs_dostatus(struct lwp *, struct
int procfs_domap(struct lwp *, struct proc *, struct pfsnode *,
struct uio *, int);
int procfs_docmdline(struct lwp *, struct proc *, struct pfsnode *,
- struct uio *);
+ struct uio *, int);
int procfs_domeminfo(struct lwp *, struct proc *, struct pfsnode *,
struct uio *);
int procfs_dodevices(struct lwp *, struct proc *, struct pfsnode *,
Index: src/sys/miscfs/procfs/procfs_cmdline.c
diff -u src/sys/miscfs/procfs/procfs_cmdline.c:1.28 src/sys/miscfs/procfs/procfs_cmdline.c:1.29
--- src/sys/miscfs/procfs/procfs_cmdline.c:1.28 Fri Mar 4 17:25:32 2011
+++ src/sys/miscfs/procfs/procfs_cmdline.c Sat Dec 30 22:02:23 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: procfs_cmdline.c,v 1.28 2011/03/04 22:25:32 joerg Exp $ */
+/* $NetBSD: procfs_cmdline.c,v 1.29 2017/12/31 03:02:23 christos Exp $ */
/*
* Copyright (c) 1999 Jaromir Dolecek <[email protected]>
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: procfs_cmdline.c,v 1.28 2011/03/04 22:25:32 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: procfs_cmdline.c,v 1.29 2017/12/31 03:02:23 christos Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -65,7 +65,8 @@ procfs_docmdline(
struct lwp *curl,
struct proc *p,
struct pfsnode *pfs,
- struct uio *uio
+ struct uio *uio,
+ int oid
)
{
size_t len, start;
@@ -104,7 +105,7 @@ procfs_docmdline(
len = uio->uio_offset + uio->uio_resid;
- error = copy_procargs(p, KERN_PROC_ARGV, &len,
+ error = copy_procargs(p, oid, &len,
procfs_docmdline_helper, uio);
return error;
}
Index: src/sys/miscfs/procfs/procfs_subr.c
diff -u src/sys/miscfs/procfs/procfs_subr.c:1.109 src/sys/miscfs/procfs/procfs_subr.c:1.110
--- src/sys/miscfs/procfs/procfs_subr.c:1.109 Sun Aug 27 20:46:07 2017
+++ src/sys/miscfs/procfs/procfs_subr.c Sat Dec 30 22:02:23 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: procfs_subr.c,v 1.109 2017/08/28 00:46:07 kamil Exp $ */
+/* $NetBSD: procfs_subr.c,v 1.110 2017/12/31 03:02:23 christos Exp $ */
/*-
* Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -102,7 +102,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: procfs_subr.c,v 1.109 2017/08/28 00:46:07 kamil Exp $");
+__KERNEL_RCSID(0, "$NetBSD: procfs_subr.c,v 1.110 2017/12/31 03:02:23 christos Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -114,6 +114,7 @@ __KERNEL_RCSID(0, "$NetBSD: procfs_subr.
#include <sys/file.h>
#include <sys/filedesc.h>
#include <sys/kauth.h>
+#include <sys/sysctl.h>
#include <miscfs/procfs/procfs.h>
@@ -221,7 +222,11 @@ procfs_rw(void *v)
break;
case PFScmdline:
- error = procfs_docmdline(curl, p, pfs, uio);
+ error = procfs_docmdline(curl, p, pfs, uio, KERN_PROC_ARGV);
+ break;
+
+ case PFSenviron:
+ error = procfs_docmdline(curl, p, pfs, uio, KERN_PROC_ENV);
break;
case PFSmeminfo:
Index: src/sys/miscfs/procfs/procfs_vfsops.c
diff -u src/sys/miscfs/procfs/procfs_vfsops.c:1.98 src/sys/miscfs/procfs/procfs_vfsops.c:1.99
--- src/sys/miscfs/procfs/procfs_vfsops.c:1.98 Sun Aug 27 20:46:07 2017
+++ src/sys/miscfs/procfs/procfs_vfsops.c Sat Dec 30 22:02:23 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: procfs_vfsops.c,v 1.98 2017/08/28 00:46:07 kamil Exp $ */
+/* $NetBSD: procfs_vfsops.c,v 1.99 2017/12/31 03:02:23 christos Exp $ */
/*
* Copyright (c) 1993
@@ -76,7 +76,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: procfs_vfsops.c,v 1.98 2017/08/28 00:46:07 kamil Exp $");
+__KERNEL_RCSID(0, "$NetBSD: procfs_vfsops.c,v 1.99 2017/12/31 03:02:23 christos Exp $");
#if defined(_KERNEL_OPT)
#include "opt_compat_netbsd.h"
@@ -395,6 +395,7 @@ procfs_loadvnode(struct mount *mp, struc
case PFSstatus: /* /proc/N/status = -r--r--r-- */
case PFSstat: /* /proc/N/stat = -r--r--r-- */
case PFScmdline: /* /proc/N/cmdline = -r--r--r-- */
+ case PFSenviron: /* /proc/N/cmdline = -r--r--r-- */
case PFSemul: /* /proc/N/emul = -r--r--r-- */
case PFSmeminfo: /* /proc/meminfo = -r--r--r-- */
case PFScpustat: /* /proc/stat = -r--r--r-- */
Index: src/sys/miscfs/procfs/procfs_vnops.c
diff -u src/sys/miscfs/procfs/procfs_vnops.c:1.201 src/sys/miscfs/procfs/procfs_vnops.c:1.202
--- src/sys/miscfs/procfs/procfs_vnops.c:1.201 Fri Dec 1 14:01:34 2017
+++ src/sys/miscfs/procfs/procfs_vnops.c Sat Dec 30 22:02:23 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: procfs_vnops.c,v 1.201 2017/12/01 19:01:34 christos Exp $ */
+/* $NetBSD: procfs_vnops.c,v 1.202 2017/12/31 03:02:23 christos Exp $ */
/*-
* Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -105,7 +105,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.201 2017/12/01 19:01:34 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.202 2017/12/31 03:02:23 christos Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -171,6 +171,7 @@ static const struct proc_target {
{ DT_REG, N("map"), PFSmap, procfs_validmap },
{ DT_REG, N("maps"), PFSmaps, procfs_validmap },
{ DT_REG, N("cmdline"), PFScmdline, NULL },
+ { DT_REG, N("environ"), PFSenviron, NULL },
{ DT_REG, N("exe"), PFSexe, procfs_validfile },
{ DT_LNK, N("cwd"), PFScwd, NULL },
{ DT_LNK, N("root"), PFSchroot, NULL },
@@ -728,6 +729,7 @@ procfs_getattr(void *v)
case PFSnote:
case PFSnotepg:
case PFScmdline:
+ case PFSenviron:
case PFSemul:
case PFSstatm:
@@ -860,6 +862,7 @@ procfs_getattr(void *v)
case PFSnote:
case PFSnotepg:
case PFScmdline:
+ case PFSenviron:
case PFSmeminfo:
case PFSdevices:
case PFScpuinfo: