summaryrefslogtreecommitdiffstats
path: root/sys/compat/linprocfs
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>2000-12-09 16:20:48 +0000
committerdes <des@FreeBSD.org>2000-12-09 16:20:48 +0000
commit27bb2ad1a8c5b1052a917b2cc11bffd46d0bf2b0 (patch)
tree672ba42fa314f8db68319f56fe7210f4e241449b /sys/compat/linprocfs
parent5837f3e5b40026bee61326aa7963929025dadc1d (diff)
downloadFreeBSD-src-27bb2ad1a8c5b1052a917b2cc11bffd46d0bf2b0.zip
FreeBSD-src-27bb2ad1a8c5b1052a917b2cc11bffd46d0bf2b0.tar.gz
Add proc/<pid>/cmdline.
Diffstat (limited to 'sys/compat/linprocfs')
-rw-r--r--sys/compat/linprocfs/linprocfs.h1
-rw-r--r--sys/compat/linprocfs/linprocfs_subr.c5
-rw-r--r--sys/compat/linprocfs/linprocfs_vnops.c4
3 files changed, 9 insertions, 1 deletions
diff --git a/sys/compat/linprocfs/linprocfs.h b/sys/compat/linprocfs/linprocfs.h
index 5e0c42f..fb085fe 100644
--- a/sys/compat/linprocfs/linprocfs.h
+++ b/sys/compat/linprocfs/linprocfs.h
@@ -50,6 +50,7 @@ typedef enum {
Pproc, /* a process-specific sub-directory */
Pexe, /* the executable file */
Pmem, /* the process's memory image */
+ Pcmdline, /* command line */
Pprocstat, /* the process's status */
Pprocstatus, /* the process's status (again) */
Pmeminfo, /* memory system statistics */
diff --git a/sys/compat/linprocfs/linprocfs_subr.c b/sys/compat/linprocfs/linprocfs_subr.c
index 47e95c9..6c215cd 100644
--- a/sys/compat/linprocfs/linprocfs_subr.c
+++ b/sys/compat/linprocfs/linprocfs_subr.c
@@ -52,6 +52,7 @@ static struct pfsnode *pfshead;
static int pfsvplock;
extern int procfs_domem __P((struct proc *, struct proc *, struct pfsnode *pfsp, struct uio *uio));
+extern int procfs_docmdline __P((struct proc *, struct proc *, struct pfsnode *pfsp, struct uio *uio));
/*
* allocate a pfsnode/vnode pair. the vnode is
@@ -177,6 +178,7 @@ loop:
case Pprocstat:
case Pprocstatus:
+ case Pcmdline:
/* fallthrough */
case Pmeminfo:
@@ -252,6 +254,9 @@ linprocfs_rw(ap)
pfs->pfs_lockowner = curproc->p_pid;
switch (pfs->pfs_type) {
+ case Pcmdline:
+ rtval = procfs_docmdline(curp, p, pfs, uio);
+ break;
case Pmem:
rtval = procfs_domem(curp, p, pfs, uio);
break;
diff --git a/sys/compat/linprocfs/linprocfs_vnops.c b/sys/compat/linprocfs/linprocfs_vnops.c
index 17e859c..36998bd 100644
--- a/sys/compat/linprocfs/linprocfs_vnops.c
+++ b/sys/compat/linprocfs/linprocfs_vnops.c
@@ -97,8 +97,9 @@ static struct proc_target {
/* name type validp */
{ DT_DIR, N("."), Pproc, NULL },
{ DT_DIR, N(".."), Proot, NULL },
- { DT_REG, N("mem"), Pmem, NULL },
+ { DT_REG, N("cmdline"), Pcmdline, NULL },
{ DT_LNK, N("exe"), Pexe, NULL },
+ { DT_REG, N("mem"), Pmem, NULL },
{ DT_REG, N("stat"), Pprocstat, NULL },
{ DT_REG, N("status"), Pprocstatus, NULL },
#undef N
@@ -549,6 +550,7 @@ linprocfs_getattr(ap)
vap->va_gid = KMEM_GROUP;
break;
+ case Pcmdline:
case Pprocstat:
case Pprocstatus:
vap->va_bytes = vap->va_size = 0;
OpenPOWER on IntegriCloud