summaryrefslogtreecommitdiff
path: root/usr/src/uts/sparc/sys/old_procfs.h
diff options
context:
space:
mode:
authorstevel@tonic-gate <none@none>2005-06-14 00:00:00 -0700
committerstevel@tonic-gate <none@none>2005-06-14 00:00:00 -0700
commit7c478bd95313f5f23a4c958a745db2134aa03244 (patch)
treec871e58545497667cbb4b0a4f2daf204743e1fe7 /usr/src/uts/sparc/sys/old_procfs.h
downloadillumos-joyent-7c478bd95313f5f23a4c958a745db2134aa03244.tar.gz
OpenSolaris Launch
Diffstat (limited to 'usr/src/uts/sparc/sys/old_procfs.h')
-rw-r--r--usr/src/uts/sparc/sys/old_procfs.h612
1 files changed, 612 insertions, 0 deletions
diff --git a/usr/src/uts/sparc/sys/old_procfs.h b/usr/src/uts/sparc/sys/old_procfs.h
new file mode 100644
index 0000000000..7bb34e9393
--- /dev/null
+++ b/usr/src/uts/sparc/sys/old_procfs.h
@@ -0,0 +1,612 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 1992-2003 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
+
+#ifndef _SYS_OLD_PROCFS_H
+#define _SYS_OLD_PROCFS_H
+
+#pragma ident "%Z%%M% %I% %E% SMI"
+
+/*
+ * This file contains the definitions for the old ioctl()-based
+ * version of the process file system. It is obsolete but will
+ * continue to be supported in SunOS until the next major release.
+ * Note that <sys/procfs.h> and <sys/old_procfs.h> contain conflicting
+ * definitions and cannot be included together in the same source file.
+ */
+
+#include <sys/types.h>
+#include <sys/time_impl.h>
+#include <sys/signal.h>
+#include <sys/siginfo.h>
+#include <sys/fault.h>
+#include <sys/syscall.h>
+#include <sys/procfs_isa.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if !defined(_LP64) && _FILE_OFFSET_BITS == 64
+#error "Cannot use procfs in the large file compilation environment"
+#endif
+
+#if _STRUCTURED_PROC == 0
+
+/*
+ * ioctl codes and system call interfaces for /proc.
+ */
+
+#define PIOC ('q'<<8)
+#define PIOCSTATUS (PIOC|1) /* get process status */
+#define PIOCSTOP (PIOC|2) /* post STOP request and... */
+#define PIOCWSTOP (PIOC|3) /* wait for process to STOP */
+#define PIOCRUN (PIOC|4) /* make process runnable */
+#define PIOCGTRACE (PIOC|5) /* get traced signal set */
+#define PIOCSTRACE (PIOC|6) /* set traced signal set */
+#define PIOCSSIG (PIOC|7) /* set current signal */
+#define PIOCKILL (PIOC|8) /* send signal */
+#define PIOCUNKILL (PIOC|9) /* delete a signal */
+#define PIOCGHOLD (PIOC|10) /* get held signal set */
+#define PIOCSHOLD (PIOC|11) /* set held signal set */
+#define PIOCMAXSIG (PIOC|12) /* get max signal number */
+#define PIOCACTION (PIOC|13) /* get signal action structs */
+#define PIOCGFAULT (PIOC|14) /* get traced fault set */
+#define PIOCSFAULT (PIOC|15) /* set traced fault set */
+#define PIOCCFAULT (PIOC|16) /* clear current fault */
+#define PIOCGENTRY (PIOC|17) /* get syscall entry set */
+#define PIOCSENTRY (PIOC|18) /* set syscall entry set */
+#define PIOCGEXIT (PIOC|19) /* get syscall exit set */
+#define PIOCSEXIT (PIOC|20) /* set syscall exit set */
+
+/*
+ * These four are obsolete (replaced by PIOCSET/PIOCRESET).
+ */
+#define PIOCSFORK (PIOC|21) /* set inherit-on-fork flag */
+#define PIOCRFORK (PIOC|22) /* reset inherit-on-fork flag */
+#define PIOCSRLC (PIOC|23) /* set run-on-last-close flag */
+#define PIOCRRLC (PIOC|24) /* reset run-on-last-close flag */
+
+#define PIOCGREG (PIOC|25) /* get general registers */
+#define PIOCSREG (PIOC|26) /* set general registers */
+#define PIOCGFPREG (PIOC|27) /* get floating-point registers */
+#define PIOCSFPREG (PIOC|28) /* set floating-point registers */
+#define PIOCNICE (PIOC|29) /* set nice priority */
+#define PIOCPSINFO (PIOC|30) /* get ps(1) information */
+#define PIOCNMAP (PIOC|31) /* get number of memory mappings */
+#define PIOCMAP (PIOC|32) /* get memory map information */
+#define PIOCOPENM (PIOC|33) /* open mapped object for reading */
+#define PIOCCRED (PIOC|34) /* get process credentials */
+#define PIOCGROUPS (PIOC|35) /* get supplementary groups */
+#define PIOCGETPR (PIOC|36) /* read struct proc */
+#define PIOCGETU (PIOC|37) /* read user area */
+
+/*
+ * These are new with SunOS5.0.
+ */
+#define PIOCSET (PIOC|38) /* set process flags */
+#define PIOCRESET (PIOC|39) /* reset process flags */
+#define PIOCUSAGE (PIOC|43) /* get resource usage */
+#define PIOCOPENPD (PIOC|44) /* get page data file descriptor */
+
+/*
+ * Lightweight process interfaces.
+ */
+#define PIOCLWPIDS (PIOC|45) /* get lwp identifiers */
+#define PIOCOPENLWP (PIOC|46) /* get lwp file descriptor */
+#define PIOCLSTATUS (PIOC|47) /* get status of all lwps */
+#define PIOCLUSAGE (PIOC|48) /* get resource usage of all lwps */
+
+/*
+ * SVR4 run-time loader interfaces.
+ */
+#define PIOCNAUXV (PIOC|49) /* get number of aux vector entries */
+#define PIOCAUXV (PIOC|50) /* get aux vector (see sys/auxv.h) */
+
+/*
+ * extra register state interfaces
+ */
+#define PIOCGXREGSIZE (PIOC|51) /* get extra register state size */
+#define PIOCGXREG (PIOC|52) /* get extra register state */
+#define PIOCSXREG (PIOC|53) /* set extra register state */
+
+/*
+ * SPARC-specific interfaces.
+ */
+#define PIOCGWIN (PIOC|101) /* get gwindows_t (see sys/reg.h) */
+
+/* Process/lwp status structure */
+
+#define PRCLSZ 8 /* maximum size of scheduling class name */
+#define PRSYSARGS 8 /* maximum number of syscall arguments */
+
+#endif /* _STRUCTURED_PROC == 0 */
+
+typedef struct prstatus {
+ int pr_flags; /* Flags (see below) */
+ short pr_why; /* Reason for process stop (if stopped) */
+ short pr_what; /* More detailed reason */
+ siginfo_t pr_info; /* Info associated with signal or fault */
+ short pr_cursig; /* Current signal */
+ ushort_t pr_nlwp; /* Number of lwps in the process */
+ sigset_t pr_sigpend; /* Set of signals pending to the process */
+ sigset_t pr_sighold; /* Set of signals held (blocked) by the lwp */
+ struct sigaltstack pr_altstack; /* Alternate signal stack info */
+ struct sigaction pr_action; /* Signal action for current signal */
+ pid_t pr_pid; /* Process id */
+ pid_t pr_ppid; /* Parent process id */
+ pid_t pr_pgrp; /* Process group id */
+ pid_t pr_sid; /* Session id */
+ timestruc_t pr_utime; /* Process user cpu time */
+ timestruc_t pr_stime; /* Process system cpu time */
+ timestruc_t pr_cutime; /* Sum of children's user times */
+ timestruc_t pr_cstime; /* Sum of children's system times */
+ char pr_clname[PRCLSZ]; /* Scheduling class name */
+ short pr_syscall; /* System call number (if in syscall) */
+ short pr_nsysarg; /* Number of arguments to this syscall */
+ long pr_sysarg[PRSYSARGS]; /* Arguments to this syscall */
+ id_t pr_who; /* Specific lwp identifier */
+ sigset_t pr_lwppend; /* Set of signals pending to the lwp */
+ struct ucontext *pr_oldcontext; /* Address of previous ucontext */
+ caddr_t pr_brkbase; /* Address of the process heap */
+ size_t pr_brksize; /* Size of the process heap, in bytes */
+ caddr_t pr_stkbase; /* Address of the process stack */
+ size_t pr_stksize; /* Size of the process stack, in bytes */
+ short pr_processor; /* processor which last ran this LWP */
+ short pr_bind; /* processor LWP bound to or PBIND_NONE */
+ long pr_instr; /* Current instruction */
+ prgregset_t pr_reg; /* General registers */
+} prstatus_t;
+
+#if _STRUCTURED_PROC == 0
+
+/* pr_flags */
+
+#define PR_STOPPED 0x0001 /* lwp is stopped */
+#define PR_ISTOP 0x0002 /* lwp is stopped on an event of interest */
+#define PR_DSTOP 0x0004 /* lwp has a stop directive in effect */
+#define PR_ASLEEP 0x0008 /* lwp is sleeping in a system call */
+#define PR_FORK 0x0010 /* inherit-on-fork is in effect */
+#define PR_RLC 0x0020 /* run-on-last-close is in effect */
+#define PR_PTRACE 0x0040 /* obsolete, never set in SunOS5.0 */
+#define PR_PCINVAL 0x0080 /* contents of pr_instr undefined */
+#define PR_ISSYS 0x0100 /* system process */
+#define PR_STEP 0x0200 /* lwp has a single-step directive in effect */
+#define PR_KLC 0x0400 /* kill-on-last-close is in effect */
+#define PR_ASYNC 0x0800 /* asynchronous-stop is in effect */
+#define PR_PCOMPAT 0x1000 /* ptrace-compatibility mode is in effect */
+#define PR_MSACCT 0x2000 /* micro-state usage accounting is in effect */
+#define PR_BPTADJ 0x4000 /* breakpoint trap pc adjustment is in effect */
+#define PR_ASLWP 0x8000 /* obsolete flag; never set */
+
+/* Reasons for stopping */
+
+#define PR_REQUESTED 1
+#define PR_SIGNALLED 2
+#define PR_SYSENTRY 3
+#define PR_SYSEXIT 4
+#define PR_JOBCONTROL 5
+#define PR_FAULTED 6
+#define PR_SUSPENDED 7
+#define PR_CHECKPOINT 8
+
+/* Information for the ps(1) command */
+
+#define PRFNSZ 16 /* max size of execed filename */
+#define PRARGSZ 80 /* Number of chars of arguments */
+
+#endif /* _STRUCTURED_PROC == 0 */
+
+typedef struct prpsinfo {
+ char pr_state; /* numeric process state (see pr_sname) */
+ char pr_sname; /* printable character representing pr_state */
+ char pr_zomb; /* !=0: process terminated but not waited for */
+ char pr_nice; /* nice for cpu usage */
+ uint_t pr_flag; /* process flags */
+ uid_t pr_uid; /* real user id */
+ gid_t pr_gid; /* real group id */
+ pid_t pr_pid; /* unique process id */
+ pid_t pr_ppid; /* process id of parent */
+ pid_t pr_pgrp; /* pid of process group leader */
+ pid_t pr_sid; /* session id */
+ caddr_t pr_addr; /* physical address of process */
+ size_t pr_size; /* size of process image in pages */
+ size_t pr_rssize; /* resident set size in pages */
+ caddr_t pr_wchan; /* wait addr for sleeping process */
+ timestruc_t pr_start; /* process start time, sec+nsec since epoch */
+ timestruc_t pr_time; /* usr+sys cpu time for this process */
+ int pr_pri; /* priority, high value is high priority */
+ char pr_oldpri; /* pre-SVR4, low value is high priority */
+ char pr_cpu; /* pre-SVR4, cpu usage for scheduling */
+ o_dev_t pr_ottydev; /* short tty device number */
+ dev_t pr_lttydev; /* controlling tty device (PRNODEV if none) */
+ char pr_clname[PRCLSZ]; /* scheduling class name */
+ char pr_fname[PRFNSZ]; /* last component of execed pathname */
+ char pr_psargs[PRARGSZ]; /* initial characters of arg list */
+ short pr_syscall; /* system call number (if in syscall) */
+ short pr_fill;
+ timestruc_t pr_ctime; /* usr+sys cpu time for reaped children */
+ size_t pr_bysize; /* size of process image in bytes */
+ size_t pr_byrssize; /* resident set size in bytes */
+ int pr_argc; /* initial argument count */
+ char **pr_argv; /* initial argument vector */
+ char **pr_envp; /* initial environment vector */
+ int pr_wstat; /* if zombie, the wait() status */
+ /* The following percent numbers are 16-bit binary */
+ /* fractions [0 .. 1] with the binary point to the */
+ /* right of the high-order bit (one == 0x8000) */
+ ushort_t pr_pctcpu; /* % of recent cpu time, one or all lwps */
+ ushort_t pr_pctmem; /* % of of system memory used by the process */
+ uid_t pr_euid; /* effective user id */
+ gid_t pr_egid; /* effective group id */
+ id_t pr_aslwpid; /* historical; now always zero */
+ char pr_dmodel; /* data model of the process */
+ char pr_pad[3];
+ int pr_filler[6]; /* for future expansion */
+} prpsinfo_t;
+
+#if _STRUCTURED_PROC == 0
+
+#if !defined(_STYPES)
+#define pr_ttydev pr_lttydev
+#else
+#define pr_ttydev pr_ottydev
+#endif
+
+#define PRNODEV (dev_t)(-1l) /* non-existent device */
+
+/*
+ * See <sys/procfs_isa.h> for possible values of pr_dmodel.
+ */
+
+/* Optional actions to take when process continues */
+
+typedef struct prrun {
+ int pr_flags; /* Flags */
+ sigset_t pr_trace; /* Set of signals to be traced */
+ sigset_t pr_sighold; /* Set of signals to be held */
+ fltset_t pr_fault; /* Set of faults to be traced */
+ caddr_t pr_vaddr; /* Virtual address at which to resume */
+ int pr_filler[8]; /* Filler area for future expansion */
+} prrun_t;
+
+#define PRCSIG 0x001 /* Clear current signal */
+#define PRCFAULT 0x002 /* Clear current fault */
+#define PRSTRACE 0x004 /* Use traced-signal set in pr_trace */
+#define PRSHOLD 0x008 /* Use held-signal set in pr_sighold */
+#define PRSFAULT 0x010 /* Use traced-fault set in pr_fault */
+#define PRSVADDR 0x020 /* Resume at virtual address in pr_vaddr */
+#define PRSTEP 0x040 /* Direct the lwp to single-step */
+#define PRSABORT 0x080 /* Abort syscall */
+#define PRSTOP 0x100 /* Set directed stop request */
+
+/* Memory-management interface */
+
+typedef struct prmap {
+ caddr_t pr_vaddr; /* Virtual address */
+ size_t pr_size; /* Size of mapping in bytes */
+ off_t pr_off; /* Offset into mapped object, if any */
+ uint_t pr_mflags; /* Protection and attribute flags */
+ uint_t pr_pagesize; /* pagesize (bytes) for this mapping */
+ long pr_filler[3]; /* Filler for future expansion */
+} prmap_t;
+
+/* Protection and attribute flags */
+
+#define MA_READ 0x04 /* Readable by the traced process */
+#define MA_WRITE 0x02 /* Writable by the traced process */
+#define MA_EXEC 0x01 /* Executable by the traced process */
+#define MA_SHARED 0x08 /* Changes are shared by mapped object */
+/*
+ * These are obsolete and unreliable.
+ * They are included here only for historical compatibility.
+ */
+#define MA_BREAK 0x10 /* Grown by brk(2) */
+#define MA_STACK 0x20 /* Grown automatically on stack faults */
+
+/* Process credentials */
+
+typedef struct prcred {
+ uid_t pr_euid; /* Effective user id */
+ uid_t pr_ruid; /* Real user id */
+ uid_t pr_suid; /* Saved user id (from exec) */
+ gid_t pr_egid; /* Effective group id */
+ gid_t pr_rgid; /* Real group id */
+ gid_t pr_sgid; /* Saved group id (from exec) */
+ uint_t pr_ngroups; /* Number of supplementary groups */
+} prcred_t;
+
+/* Resource usage */
+
+typedef struct prusage {
+ id_t pr_lwpid; /* lwp id. 0: process or defunct */
+ int pr_count; /* number of contributing lwps */
+ timestruc_t pr_tstamp; /* current time stamp */
+ timestruc_t pr_create; /* process/lwp creation time stamp */
+ timestruc_t pr_term; /* process/lwp termination time stamp */
+ timestruc_t pr_rtime; /* total lwp real (elapsed) time */
+ timestruc_t pr_utime; /* user level CPU time */
+ timestruc_t pr_stime; /* system call CPU time */
+ timestruc_t pr_ttime; /* other system trap CPU time */
+ timestruc_t pr_tftime; /* text page fault sleep time */
+ timestruc_t pr_dftime; /* data page fault sleep time */
+ timestruc_t pr_kftime; /* kernel page fault sleep time */
+ timestruc_t pr_ltime; /* user lock wait sleep time */
+ timestruc_t pr_slptime; /* all other sleep time */
+ timestruc_t pr_wtime; /* wait-cpu (latency) time */
+ timestruc_t pr_stoptime; /* stopped time */
+ timestruc_t filltime[6]; /* filler for future expansion */
+ ulong_t pr_minf; /* minor page faults */
+ ulong_t pr_majf; /* major page faults */
+ ulong_t pr_nswap; /* swaps */
+ ulong_t pr_inblk; /* input blocks */
+ ulong_t pr_oublk; /* output blocks */
+ ulong_t pr_msnd; /* messages sent */
+ ulong_t pr_mrcv; /* messages received */
+ ulong_t pr_sigs; /* signals received */
+ ulong_t pr_vctx; /* voluntary context switches */
+ ulong_t pr_ictx; /* involuntary context switches */
+ ulong_t pr_sysc; /* system calls */
+ ulong_t pr_ioch; /* chars read and written */
+ ulong_t filler[10]; /* filler for future expansion */
+} prusage_t;
+
+/* Page data */
+
+/* page data file header */
+typedef struct prpageheader {
+ timestruc_t pr_tstamp; /* real time stamp */
+ ulong_t pr_nmap; /* number of address space mappings */
+ ulong_t pr_npage; /* total number of pages */
+} prpageheader_t;
+
+/* page data mapping header */
+typedef struct prasmap {
+ caddr_t pr_vaddr; /* virtual address */
+ size_t pr_npage; /* number of pages in mapping */
+ off_t pr_off; /* offset into mapped object, if any */
+ uint_t pr_mflags; /* protection and attribute flags */
+ uint_t pr_pagesize; /* pagesize (bytes) for this mapping */
+ long pr_filler[3]; /* filler for future expansion */
+} prasmap_t;
+
+/*
+ * npage bytes (rounded up to a sizeof (long)-byte boundary) follow
+ * each mapping header, containing zero or more of these flags.
+ */
+#define PG_REFERENCED 0x02 /* page referenced since last read */
+#define PG_MODIFIED 0x01 /* page modified since last read */
+#define PG_HWMAPPED 0x04 /* page is present and mapped */
+
+/*
+ * Macros for manipulating sets of flags.
+ * sp must be a pointer to one of sigset_t, fltset_t, or sysset_t.
+ * flag must be a member of the enumeration corresponding to *sp.
+ */
+
+/* turn on all flags in set */
+#define prfillset(sp) \
+ { register int _i_ = sizeof (*(sp))/sizeof (uint32_t); \
+ while (_i_) ((uint32_t *)(sp))[--_i_] = (uint32_t)0xFFFFFFFF; }
+
+/* turn off all flags in set */
+#define premptyset(sp) \
+ { register int _i_ = sizeof (*(sp))/sizeof (uint32_t); \
+ while (_i_) ((uint32_t *)(sp))[--_i_] = (uint32_t)0; }
+
+/* turn on specified flag in set */
+#define praddset(sp, flag) \
+ ((void)(((unsigned)((flag)-1) < 32*sizeof (*(sp))/sizeof (uint32_t)) ? \
+ (((uint32_t *)(sp))[((flag)-1)/32] |= (1UL<<(((flag)-1)%32))) : 0))
+
+/* turn off specified flag in set */
+#define prdelset(sp, flag) \
+ ((void)(((unsigned)((flag)-1) < 32*sizeof (*(sp))/sizeof (uint32_t)) ? \
+ (((uint32_t *)(sp))[((flag)-1)/32] &= ~(1UL<<(((flag)-1)%32))) : 0))
+
+/* query: != 0 iff flag is turned on in set */
+#define prismember(sp, flag) \
+ (((unsigned)((flag)-1) < 32*sizeof (*(sp))/sizeof (uint32_t)) && \
+ (((uint32_t *)(sp))[((flag)-1)/32] & (1UL<<(((flag)-1)%32))))
+
+#endif /* _STRUCTURED_PROC == 0 */
+
+#ifdef _SYSCALL32
+
+#if _STRUCTURED_PROC == 0
+
+/*
+ * dev32_t version of PRNODEV
+ */
+#define PRNODEV32 (dev32_t)(-1)
+
+/*
+ * Kernel view of structures used by _ILP32 programs.
+ */
+
+#endif /* _STRUCTURED_PROC == 0 */
+
+typedef struct prstatus32 {
+ int32_t pr_flags; /* Flags */
+ short pr_why; /* Reason for process stop (if stopped) */
+ short pr_what; /* More detailed reason */
+ siginfo32_t pr_info; /* Info associated with signal or fault */
+ short pr_cursig; /* Current signal */
+ ushort_t pr_nlwp; /* Number of lwps in the process */
+ sigset_t pr_sigpend; /* Set of signals pending to the process */
+ sigset_t pr_sighold; /* Set of signals held (blocked) by the lwp */
+ struct sigaltstack32 pr_altstack; /* Alternate signal stack info */
+ struct sigaction32 pr_action; /* Signal action for current signal */
+ pid32_t pr_pid; /* Process id */
+ pid32_t pr_ppid; /* Parent process id */
+ pid32_t pr_pgrp; /* Process group id */
+ pid32_t pr_sid; /* Session id */
+ timestruc32_t pr_utime; /* Process user cpu time */
+ timestruc32_t pr_stime; /* Process system cpu time */
+ timestruc32_t pr_cutime; /* Sum of children's user times */
+ timestruc32_t pr_cstime; /* Sum of children's system times */
+ char pr_clname[PRCLSZ]; /* Scheduling class name */
+ short pr_syscall; /* System call number (if in syscall) */
+ short pr_nsysarg; /* Number of arguments to this syscall */
+ int32_t pr_sysarg[PRSYSARGS]; /* Arguments to this syscall */
+ id32_t pr_who; /* Specific lwp identifier */
+ sigset_t pr_lwppend; /* Set of signals pending to the lwp */
+ caddr32_t pr_oldcontext; /* Address of previous ucontext */
+ caddr32_t pr_brkbase; /* Address of the process heap */
+ size32_t pr_brksize; /* Size of the process heap, in bytes */
+ caddr32_t pr_stkbase; /* Address of the process stack */
+ size32_t pr_stksize; /* Size of the process stack, in bytes */
+ short pr_processor; /* processor which last ran this LWP */
+ short pr_bind; /* processor LWP bound to or PBIND_NONE */
+ int32_t pr_instr; /* Current instruction */
+ prgregset32_t pr_reg; /* General registers */
+} prstatus32_t;
+
+typedef struct prpsinfo32 {
+ char pr_state; /* numeric process state (see pr_sname) */
+ char pr_sname; /* printable character representing pr_state */
+ char pr_zomb; /* !=0: process terminated but not waited for */
+ char pr_nice; /* nice for cpu usage */
+ uint32_t pr_flag; /* process flags */
+ uid32_t pr_uid; /* real user id */
+ gid32_t pr_gid; /* real group id */
+ pid32_t pr_pid; /* unique process id */
+ pid32_t pr_ppid; /* process id of parent */
+ pid32_t pr_pgrp; /* pid of process group leader */
+ pid32_t pr_sid; /* session id */
+ caddr32_t pr_addr; /* physical address of process */
+ size32_t pr_size; /* size of process image in pages */
+ size32_t pr_rssize; /* resident set size in pages */
+ caddr32_t pr_wchan; /* wait addr for sleeping process */
+ timestruc32_t pr_start; /* process start time, sec+nsec since epoch */
+ timestruc32_t pr_time; /* usr+sys cpu time for this process */
+ int32_t pr_pri; /* priority, high value is high priority */
+ char pr_oldpri; /* pre-SVR4, low value is high priority */
+ char pr_cpu; /* pre-SVR4, cpu usage for scheduling */
+ o_dev_t pr_ottydev; /* short tty device number */
+ dev32_t pr_lttydev; /* controlling tty device (PRNODEV if none) */
+ char pr_clname[PRCLSZ]; /* scheduling class name */
+ char pr_fname[PRFNSZ]; /* last component of execed pathname */
+ char pr_psargs[PRARGSZ]; /* initial characters of arg list */
+ short pr_syscall; /* system call number (if in syscall) */
+ short pr_fill;
+ timestruc32_t pr_ctime; /* usr+sys cpu time for reaped children */
+ size32_t pr_bysize; /* size of process image in bytes */
+ size32_t pr_byrssize; /* resident set size in bytes */
+ int pr_argc; /* initial argument count */
+ caddr32_t pr_argv; /* initial argument vector */
+ caddr32_t pr_envp; /* initial environment vector */
+ int pr_wstat; /* if zombie, the wait() status */
+ ushort_t pr_pctcpu; /* % of recent cpu time, one or all lwps */
+ ushort_t pr_pctmem; /* % of of system memory used by the process */
+ uid32_t pr_euid; /* effective user id */
+ gid32_t pr_egid; /* effective group id */
+ id32_t pr_aslwpid; /* historical; now always zero */
+ char pr_dmodel; /* data model of the process */
+ char pr_pad[3];
+ int32_t pr_filler[6]; /* for future expansion */
+} prpsinfo32_t;
+
+#if _STRUCTURED_PROC == 0
+
+typedef struct prrun32 {
+ int32_t pr_flags; /* Flags */
+ sigset_t pr_trace; /* Set of signals to be traced */
+ sigset_t pr_sighold; /* Set of signals to be held */
+ fltset_t pr_fault; /* Set of faults to be traced */
+ caddr32_t pr_vaddr; /* Virtual address at which to resume */
+ int32_t pr_filler[8]; /* Filler area for future expansion */
+} prrun32_t;
+
+typedef struct ioc_prmap32 {
+ caddr32_t pr_vaddr; /* Virtual address */
+ size32_t pr_size; /* Size of mapping in bytes */
+ off32_t pr_off; /* Offset into mapped object, if any */
+ uint32_t pr_mflags; /* Protection and attribute flags */
+ uint32_t pr_pagesize; /* pagesize (bytes) for this mapping */
+ int32_t pr_filler[3]; /* Filler for future expansion */
+} ioc_prmap32_t;
+
+typedef struct prusage32 {
+ id32_t pr_lwpid; /* lwp id. 0: process or defunct */
+ int32_t pr_count; /* number of contributing lwps */
+ timestruc32_t pr_tstamp; /* current time stamp */
+ timestruc32_t pr_create; /* process/lwp creation time stamp */
+ timestruc32_t pr_term; /* process/lwp termination time stamp */
+ timestruc32_t pr_rtime; /* total lwp real (elapsed) time */
+ timestruc32_t pr_utime; /* user level cpu time */
+ timestruc32_t pr_stime; /* system call cpu time */
+ timestruc32_t pr_ttime; /* other system trap cpu time */
+ timestruc32_t pr_tftime; /* text page fault sleep time */
+ timestruc32_t pr_dftime; /* data page fault sleep time */
+ timestruc32_t pr_kftime; /* kernel page fault sleep time */
+ timestruc32_t pr_ltime; /* user lock wait sleep time */
+ timestruc32_t pr_slptime; /* all other sleep time */
+ timestruc32_t pr_wtime; /* wait-cpu (latency) time */
+ timestruc32_t pr_stoptime; /* stopped time */
+ timestruc32_t filltime[6]; /* filler for future expansion */
+ uint32_t pr_minf; /* minor page faults */
+ uint32_t pr_majf; /* major page faults */
+ uint32_t pr_nswap; /* swaps */
+ uint32_t pr_inblk; /* input blocks */
+ uint32_t pr_oublk; /* output blocks */
+ uint32_t pr_msnd; /* messages sent */
+ uint32_t pr_mrcv; /* messages received */
+ uint32_t pr_sigs; /* signals received */
+ uint32_t pr_vctx; /* voluntary context switches */
+ uint32_t pr_ictx; /* involuntary context switches */
+ uint32_t pr_sysc; /* system calls */
+ uint32_t pr_ioch; /* chars read and written */
+ uint32_t filler[10]; /* filler for future expansion */
+} prusage32_t;
+
+typedef struct ioc_prpageheader32 {
+ timestruc32_t pr_tstamp; /* real time stamp */
+ uint32_t pr_nmap; /* number of address space mappings */
+ uint32_t pr_npage; /* total number of pages */
+} ioc_prpageheader32_t;
+
+typedef struct ioc_prasmap32 {
+ caddr32_t pr_vaddr; /* virtual address */
+ size32_t pr_npage; /* number of pages in mapping */
+ off32_t pr_off; /* offset into mapped object, if any */
+ uint32_t pr_mflags; /* protection and attribute flags */
+ uint32_t pr_pagesize; /* pagesize (bytes) for this mapping */
+ int32_t pr_filler[3]; /* filler for future expansion */
+} ioc_prasmap32_t;
+
+#endif /* _STRUCTURED_PROC == 0 */
+
+#endif /* _SYSCALL32 */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_OLD_PROCFS_H */