135 PR_OBJECT, /* /proc/<pid>/object/xxx */
136 PR_LWPDIR, /* /proc/<pid>/lwp */
137 PR_LWPIDDIR, /* /proc/<pid>/lwp/<lwpid> */
138 PR_LWPCTL, /* /proc/<pid>/lwp/<lwpid>/lwpctl */
139 PR_LWPSTATUS, /* /proc/<pid>/lwp/<lwpid>/lwpstatus */
140 PR_LWPSINFO, /* /proc/<pid>/lwp/<lwpid>/lwpsinfo */
141 PR_LWPUSAGE, /* /proc/<pid>/lwp/<lwpid>/lwpusage */
142 PR_XREGS, /* /proc/<pid>/lwp/<lwpid>/xregs */
143 PR_TMPLDIR, /* /proc/<pid>/lwp/<lwpid>/templates */
144 PR_TMPL, /* /proc/<pid>/lwp/<lwpid>/templates/<id> */
145 PR_SPYMASTER, /* /proc/<pid>/lwp/<lwpid>/spymaster */
146 #if defined(__sparc)
147 PR_GWINDOWS, /* /proc/<pid>/lwp/<lwpid>/gwindows */
148 PR_ASRS, /* /proc/<pid>/lwp/<lwpid>/asrs */
149 #endif
150 PR_PRIV, /* /proc/<pid>/priv */
151 PR_PATHDIR, /* /proc/<pid>/path */
152 PR_PATH, /* /proc/<pid>/path/xxx */
153 PR_CTDIR, /* /proc/<pid>/contracts */
154 PR_CT, /* /proc/<pid>/contracts/<ctid> */
155 PR_PIDFILE, /* old process file */
156 PR_LWPIDFILE, /* old lwp file */
157 PR_OPAGEDATA, /* old page data file */
158 PR_NFILES /* number of /proc node types */
159 } prnodetype_t;
160
161 typedef struct prnode {
162 vnode_t *pr_next; /* list of all vnodes for process */
163 uint_t pr_flags; /* private flags */
164 kmutex_t pr_mutex; /* locks pr_files and child pr_flags */
165 prnodetype_t pr_type; /* node type */
166 mode_t pr_mode; /* file mode */
167 ino_t pr_ino; /* node id (for stat(2)) */
168 uint_t pr_hatid; /* hat layer id for page data files */
169 prcommon_t *pr_common; /* common data structure */
170 prcommon_t *pr_pcommon; /* process common data structure */
171 vnode_t *pr_parent; /* parent directory */
172 vnode_t **pr_files; /* contained files array (directory) */
173 uint_t pr_index; /* position within parent */
174 vnode_t *pr_pidfile; /* substitute vnode for old /proc */
|
135 PR_OBJECT, /* /proc/<pid>/object/xxx */
136 PR_LWPDIR, /* /proc/<pid>/lwp */
137 PR_LWPIDDIR, /* /proc/<pid>/lwp/<lwpid> */
138 PR_LWPCTL, /* /proc/<pid>/lwp/<lwpid>/lwpctl */
139 PR_LWPSTATUS, /* /proc/<pid>/lwp/<lwpid>/lwpstatus */
140 PR_LWPSINFO, /* /proc/<pid>/lwp/<lwpid>/lwpsinfo */
141 PR_LWPUSAGE, /* /proc/<pid>/lwp/<lwpid>/lwpusage */
142 PR_XREGS, /* /proc/<pid>/lwp/<lwpid>/xregs */
143 PR_TMPLDIR, /* /proc/<pid>/lwp/<lwpid>/templates */
144 PR_TMPL, /* /proc/<pid>/lwp/<lwpid>/templates/<id> */
145 PR_SPYMASTER, /* /proc/<pid>/lwp/<lwpid>/spymaster */
146 #if defined(__sparc)
147 PR_GWINDOWS, /* /proc/<pid>/lwp/<lwpid>/gwindows */
148 PR_ASRS, /* /proc/<pid>/lwp/<lwpid>/asrs */
149 #endif
150 PR_PRIV, /* /proc/<pid>/priv */
151 PR_PATHDIR, /* /proc/<pid>/path */
152 PR_PATH, /* /proc/<pid>/path/xxx */
153 PR_CTDIR, /* /proc/<pid>/contracts */
154 PR_CT, /* /proc/<pid>/contracts/<ctid> */
155 PR_SECFLAGS, /* /proc/<pid>/secflags */
156 PR_PIDFILE, /* old process file */
157 PR_LWPIDFILE, /* old lwp file */
158 PR_OPAGEDATA, /* old page data file */
159 PR_NFILES /* number of /proc node types */
160 } prnodetype_t;
161
162 typedef struct prnode {
163 vnode_t *pr_next; /* list of all vnodes for process */
164 uint_t pr_flags; /* private flags */
165 kmutex_t pr_mutex; /* locks pr_files and child pr_flags */
166 prnodetype_t pr_type; /* node type */
167 mode_t pr_mode; /* file mode */
168 ino_t pr_ino; /* node id (for stat(2)) */
169 uint_t pr_hatid; /* hat layer id for page data files */
170 prcommon_t *pr_common; /* common data structure */
171 prcommon_t *pr_pcommon; /* process common data structure */
172 vnode_t *pr_parent; /* parent directory */
173 vnode_t **pr_files; /* contained files array (directory) */
174 uint_t pr_index; /* position within parent */
175 vnode_t *pr_pidfile; /* substitute vnode for old /proc */
|