4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
24 * Copyright 2017 Joyent, Inc.
25 */
26
27 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
28 /* All Rights Reserved */
29
30 #ifndef _SYS_PROC_H
31 #define _SYS_PROC_H
32
33 #include <sys/time.h>
34 #include <sys/thread.h>
35 #include <sys/cred.h>
36 #include <sys/user.h>
37 #include <sys/watchpoint.h>
38 #include <sys/timer.h>
39 #if defined(__x86)
40 #include <sys/tss.h>
41 #include <sys/segments.h>
42 #endif
43 #include <sys/utrap.h>
44 #include <sys/model.h>
284 char p_unref_thread; /* unref thread created */
285
286 /*
287 * Kernel probes
288 */
289 uchar_t p_tnf_flags;
290
291 /*
292 * Solaris Audit
293 */
294 struct p_audit_data *p_audit_data; /* per process audit structure */
295
296 pctxop_t *p_pctx;
297
298 #if defined(__x86)
299 /*
300 * LDT support.
301 */
302 kmutex_t p_ldtlock; /* protects the following fields */
303 user_desc_t *p_ldt; /* Pointer to private LDT */
304 system_desc_t p_ldt_desc; /* segment descriptor for private LDT */
305 ushort_t p_ldtlimit; /* highest selector used */
306 #endif
307 size_t p_swrss; /* resident set size before last swap */
308 struct aio *p_aio; /* pointer to async I/O struct */
309 struct itimer **p_itimer; /* interval timers */
310 timeout_id_t p_alarmid; /* alarm's timeout id */
311 caddr_t p_usrstack; /* top of the process stack */
312 uint_t p_stkprot; /* stack memory protection */
313 uint_t p_datprot; /* data memory protection */
314 model_t p_model; /* data model determined at exec time */
315 struct lwpchan_data *p_lcp; /* lwpchan cache */
316 kmutex_t p_lcp_lock; /* protects assignments to p_lcp */
317 utrap_handler_t *p_utraps; /* pointer to user trap handlers */
318 struct corectl_path *p_corefile; /* pattern for core file */
319 struct task *p_task; /* our containing task */
320 struct proc *p_taskprev; /* ptr to previous process in task */
321 struct proc *p_tasknext; /* ptr to next process in task */
322 kmutex_t p_sc_lock; /* protects p_pagep */
323 struct sc_page_ctl *p_pagep; /* list of process's shared pages */
324 struct rctl_set *p_rctls; /* resource controls for this process */
|
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
24 * Copyright 2018 Joyent, Inc.
25 */
26
27 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
28 /* All Rights Reserved */
29
30 #ifndef _SYS_PROC_H
31 #define _SYS_PROC_H
32
33 #include <sys/time.h>
34 #include <sys/thread.h>
35 #include <sys/cred.h>
36 #include <sys/user.h>
37 #include <sys/watchpoint.h>
38 #include <sys/timer.h>
39 #if defined(__x86)
40 #include <sys/tss.h>
41 #include <sys/segments.h>
42 #endif
43 #include <sys/utrap.h>
44 #include <sys/model.h>
284 char p_unref_thread; /* unref thread created */
285
286 /*
287 * Kernel probes
288 */
289 uchar_t p_tnf_flags;
290
291 /*
292 * Solaris Audit
293 */
294 struct p_audit_data *p_audit_data; /* per process audit structure */
295
296 pctxop_t *p_pctx;
297
298 #if defined(__x86)
299 /*
300 * LDT support.
301 */
302 kmutex_t p_ldtlock; /* protects the following fields */
303 user_desc_t *p_ldt; /* Pointer to private LDT */
304 uint64_t p_unused1; /* no longer used */
305 uint64_t p_unused2; /* no longer used */
306 ushort_t p_ldtlimit; /* highest selector used */
307 #endif
308 size_t p_swrss; /* resident set size before last swap */
309 struct aio *p_aio; /* pointer to async I/O struct */
310 struct itimer **p_itimer; /* interval timers */
311 timeout_id_t p_alarmid; /* alarm's timeout id */
312 caddr_t p_usrstack; /* top of the process stack */
313 uint_t p_stkprot; /* stack memory protection */
314 uint_t p_datprot; /* data memory protection */
315 model_t p_model; /* data model determined at exec time */
316 struct lwpchan_data *p_lcp; /* lwpchan cache */
317 kmutex_t p_lcp_lock; /* protects assignments to p_lcp */
318 utrap_handler_t *p_utraps; /* pointer to user trap handlers */
319 struct corectl_path *p_corefile; /* pattern for core file */
320 struct task *p_task; /* our containing task */
321 struct proc *p_taskprev; /* ptr to previous process in task */
322 struct proc *p_tasknext; /* ptr to next process in task */
323 kmutex_t p_sc_lock; /* protects p_pagep */
324 struct sc_page_ctl *p_pagep; /* list of process's shared pages */
325 struct rctl_set *p_rctls; /* resource controls for this process */
|