8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / man / man2 / getpflags.2
blobb8eeb4ae2edd7c4345bfbd6b963b66f110c9d4bc
1 '\" te
2 .\" Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved.
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (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.
4 .\"  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
5 .\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH GETPFLAGS 2 "Jun 4, 2009"
7 .SH NAME
8 getpflags, setpflags \- get or set process flags
9 .SH SYNOPSIS
10 .LP
11 .nf
12 #include <sys/types.h>
13 #include <priv.h>
15 \fBuint_t\fR \fBgetpflags\fR(\fBuint_t\fR \fIflag\fR);
16 .fi
18 .LP
19 .nf
20 \fBint\fR \fBsetpflags\fR(\fBuint_t\fR \fIflag\fR, \fBuint_t\fR \fIvalue\fR);
21 .fi
23 .SH DESCRIPTION
24 .sp
25 .LP
26 The \fBgetpflags()\fR and \fBsetpflags()\fR functions obtain and modify the
27 current per-process flags.
28 .sp
29 .LP
30 The following values for \fIflag\fR are supported:
31 .sp
32 .ne 2
33 .na
34 \fB\fBPRIV_AWARE\fR\fR
35 .ad
36 .sp .6
37 .RS 4n
38 This one bit flag takes the value of 0 (unset) or 1 (set).  Only if this flag
39 is set is the current process privilege-aware. A process can attempt to unset
40 this flag but might fail silently if the observed set invariance condition
41 cannot be met. Setting this flag is always successful. See \fBprivileges\fR(5)
42 for a discussion of this flag.
43 .RE
45 .sp
46 .ne 2
47 .na
48 \fB\fBPRIV_AWARE_RESET\fR\fR
49 .ad
50 .sp .6
51 .RS 4n
52 This one bit flag takes the value of 0 (unset) or 1 (set). This causes a
53 process to pretend it is non- privilege aware. The effective and permitted
54 privilege set change on the change of the effective uid. When all the uid sets
55 become the same through \fBsetuid\fR(\fIuid\fR) or through
56 \fBsetreuid\fR(\fIuid\fR, \fIuid\fR), the effective and permitted set are set
57 to the intersection between the limit set and the inheritable set. At that
58 point, both \fBPRIV_AWARE\fR and \fBPRIV_AWARE_RESET\fR are unset.
59 .sp
60 This flag gets automatically reset when a file becomes privilege aware, either
61 through calling \fBsetppriv\fR(2) or by setting \fBPRIV_AWARE\fR to 1.
62 .RE
64 .sp
65 .ne 2
66 .na
67 \fB\fBPRIV_DEBUG\fR\fR
68 .ad
69 .sp .6
70 .RS 4n
71 This one bit flag takes the value of 0 (unset) or 1 (set).  Only if this flag
72 is set does the current process have privilege debugging enabled. Processes can
73 set and unset this flag at will.
74 .RE
76 .sp
77 .ne 2
78 .na
79 \fB\fBNET_MAC_AWARE\fR\fR
80 .ad
81 .br
82 .na
83 \fB\fBNET_MAC_AWARE_INHERIT\fR\fR
84 .ad
85 .sp .6
86 .RS 4n
87 These flags are available only if the system is configured with Trusted
88 Extensions. These one bit flags each take the value of 0 (unset) or 1 (set). If
89 the \fBNET_MAC_AWARE\fR flag is set then the current process is allowed to
90 communicate with peers at labels that are different than its own, subject to
91 MAC policy.
92 .sp
93 The \fBNET_MAC_AWARE_INHERIT\fR flag controls the propagation of the
94 \fBNET_MAC_AWARE\fR flag. When a process performs one of the \fBexec\fR(2)
95 functions, the \fBNET_MAC_AWARE\fR flag is unset unless the
96 \fBNET_MAC_AWARE_INHERIT\fR is set. \fBNET_MAC_AWARE_INHERIT\fR is always unset
97 on one of the \fBexec\fR functions. The \fBPRIV_NET_MAC_AWARE\fR privilege is
98 required to set either of these flags.
99 .RE
101 .SH RETURN VALUES
104 The \fBgetpflags()\fR returns the value associated with a given per-process
105 flag. If the \fIflag\fR argument is invalid, (\fBuint_t\fR)-1 is returned and
106 \fBerrno\fR is set to indicate the error.
109 Upon successful completion, \fBsetpflags()\fR returns 0. Otherwise, -1 is
110 returned and \fBerrno\fR is set to indicate the error.
111 .SH ERRORS
114 The \fBgetpflags()\fR and \fBsetpflags()\fR functions will fail if:
116 .ne 2
118 \fB\fBEINVAL\fR\fR
120 .RS 10n
121 The value of \fIflag\fR or the value to which the \fIflag\fR is set is out of
122 range.
127 The \fBsetpflags()\fR function will fail if:
129 .ne 2
131 \fB\fBEPERM\fR\fR
133 .RS 9n
134 An attempt was made to unset \fBPRIV_AWARE\fR but the observed set invariance
135 condition was not met.
138 .SH ATTRIBUTES
141 See \fBattributes\fR(5) for descriptions of the following attributes:
146 box;
147 c | c
148 l | l .
149 ATTRIBUTE TYPE  ATTRIBUTE VALUE
151 Interface Stability     Committed
153 MT-Level        Async-Signal-Safe
156 .SH SEE ALSO
159 \fBppriv\fR(1), \fBsetppriv\fR(2), \fBattributes\fR(5), \fBprivileges\fR(5)