8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / man / man3nsl / doconfig.3nsl
blobbe029453ec551174b54a34d5b69dfbb5fe96b1e3
1 '\" te
2 .\"  Copyright 1989 AT&T  Copyright (c) 1997, 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.
4 .\" 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.
5 .\" 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]
6 .TH DOCONFIG 3NSL "Dec 30, 1996"
7 .SH NAME
8 doconfig \- execute a configuration script
9 .SH SYNOPSIS
10 .LP
11 .nf
12 \fBcc\fR [ \fIflag\fR ... ] \fIfile\fR ... \fB-lnsl\fR [ \fIlibrary\fR ... ]
13 # include <sac.h>
17 \fBint\fR \fBdoconfig\fR(\fBint\fR \fIfildes\fR, \fBchar *\fR\fIscript\fR, \fBlong\fR \fIrflag\fR);
18 .fi
20 .SH DESCRIPTION
21 .sp
22 .LP
23 \fBdoconfig()\fR is a Service Access Facility library function that interprets
24 the configuration scripts contained in the files
25 \fB</etc/saf/\fR\fIpmtag\fR\fB/_config>\fR, \fB</etc/saf/_sysconfig>\fR, and
26 \fB</etc/saf/\fR\fIpmtag\fR/\fIsvctag>\fR, where  \fIpmtag\fR specifies the tag
27 associated with the port monitor, and \fIsvctag\fR specifies the service tag
28 associated with a given service.   See \fBpmadm\fR(1M) and \fBsacadm\fR(1M).
29 .sp
30 .LP
31 \fBscript\fR is the name of the configuration script; \fIfildes\fR is a file
32 descriptor that designates the stream to which stream manipulation operations
33 are to be applied; \fIrflag\fR is a bitmask that indicates the mode in which
34 \fBscript\fR is to be interpreted. If \fIrflag\fR is zero, all commands in the
35 configuration script are eligible to be interpreted. If \fIrflag\fR has the
36 \fBNOASSIGN\fR bit set, the \fBassign\fR command is considered illegal and will
37 generate an error return. If \fIrflag\fR has the \fBNORUN\fR bit set, the
38 \fBrun\fR and \fBrunwait\fR commands are considered illegal and will generate
39 error returns.
40 .sp
41 .LP
42 The configuration language in which \fBscript\fR is written consists of a
43 sequence of commands, each of which is interpreted separately. The following
44 reserved keywords are defined:  \fBassign\fR, \fBpush\fR, \fBpop\fR,
45 \fBrunwait\fR, and \fBrun\fR. The comment character is \fB#\fR; when a \fB#\fR
46 occurs on a line, everything from that point to the end of the line is ignored.
47 Blank lines are not significant. No line in a command script may exceed 1024
48 characters.
49 .sp
50 .ne 2
51 .na
52 \fB\fBassign\fR \fIvariable\fR=\fIvalue\fR\fR
53 .ad
54 .sp .6
55 .RS 4n
56 Used to define environment variables. \fIvariable\fR is the name of the
57 environment variable and \fIvalue\fR is the value to be assigned to it. The
58 value assigned must be a string constant; no form of parameter substitution is
59 available. \fIvalue\fR may be quoted. The quoting rules are those used by the
60 shell for defining environment variables. \fBassign\fR will fail if space
61 cannot be allocated for the new variable or if any part of the specification is
62 invalid.
63 .RE
65 .sp
66 .ne 2
67 .na
68 \fB\fBpush\fR \fImodule1\fR[, \fImodule2\fR, \fImodule3\fR, . . .]\fR
69 .ad
70 .sp .6
71 .RS 4n
72 Used to push STREAMS modules onto the stream designated by \fIfildes\fR.
73 \fImodule1\fR is the name of the first module to be pushed, \fImodule2\fR is
74 the name of the second module to be pushed, etc. The command will fail if any
75 of the named modules cannot be pushed. If a module cannot be pushed, the
76 subsequent modules on the same command line will be ignored and modules that
77 have already been pushed will be popped.
78 .RE
80 .sp
81 .ne 2
82 .na
83 \fB\fBpop\fR [\fImodule\fR]\fR
84 .ad
85 .sp .6
86 .RS 4n
87 Used to pop STREAMS modules off the designated stream. If \fBpop\fR is invoked
88 with no arguments, the top module on the  stream is popped. If an argument is
89 given, modules will be popped one at a time until the named module is at the
90 top of the stream. If the named module is not on the designated stream, the
91 stream is left as it was and the command fails. If \fImodule\fR is the special
92 keyword ALL, then all modules on the stream will be popped. Note that only
93 modules above the topmost driver are affected.
94 .RE
96 .sp
97 .ne 2
98 .na
99 \fB\fBrunwait\fR \fBcommand\fR\fR
101 .sp .6
102 .RS 4n
103 The \fBrunwait\fR command runs a command and waits for it to complete.
104 \fBcommand\fR is the pathname of the command to be run. The command is run with
105 \fB/usr/bin/sh \fR\fB-c \fR prepended to it; shell scripts may thus be executed
106 from configuration scripts. The \fBrunwait\fR command will fail if
107 \fBcommand\fR cannot be found or cannot be executed, or if \fBcommand\fR exits
108 with a non-zero status.
112 .ne 2
114 \fB\fBrun\fR \fBcommand\fR\fR
116 .sp .6
117 .RS 4n
118 The \fBrun\fR command is identical to \fBrunwait\fR except that it does not
119 wait for \fBcommand\fR to complete. \fBcommand\fR is the pathname of the
120 command to be run. \fBrun\fR will not fail unless it is unable to create a
121 child process to execute the command.
126 Although they are syntactically indistinguishable, some of the commands
127 available to \fBrun\fR and \fBrunwait\fR are interpreter built-in commands.
128 Interpreter built-ins are used when it is necessary to alter the state of a
129 process within the context of that process. The \fBdoconfig()\fR interpreter
130 built-in commands are similar to the shell special commands and, like these,
131 they do not spawn another process for execution. See \fBsh\fR(1). The built-in
132 commands are:
134 .in +2
136 \fBcd
137 ulimit
138 umask\fR
140 .in -2
142 .SH RETURN VALUES
145 \fBdoconfig()\fR returns \fB0\fR if the script was interpreted successfully. If
146 a command in the script fails, the interpretation of the script ceases at that
147 point and a positive number is returned; this number indicates which line in
148 the script failed. If a system error occurs, a value of \fB\(mi1\fR is
149 returned. When a script fails, the process whose environment was being
150 established should \fInot\fR be started.
151 .SH ATTRIBUTES
154 See \fBattributes\fR(5) for descriptions of the following attributes:
159 box;
160 c | c
161 l | l .
162 ATTRIBUTE TYPE  ATTRIBUTE VALUE
164 MT-Level        Unsafe
167 .SH SEE ALSO
170 \fBsh\fR(1), \fBpmadm\fR(1M), \fBsacadm\fR(1M), \fBattributes\fR(5)
171 .SH NOTES
174 This interface is unsafe in multithreaded applications.  Unsafe interfaces
175 should be called only from the main thread.