xref: /illumos-gate/usr/src/cmd/listen/lserror.h (revision 55fea89d)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License, Version 1.0 only
6  * (the "License").  You may not use this file except in compliance
7  * with the License.
8  *
9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10  * or http://www.opensolaris.org/os/licensing.
11  * See the License for the specific language governing permissions
12  * and limitations under the License.
13  *
14  * When distributing Covered Code, include this CDDL HEADER in each
15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16  * If applicable, add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your own identifying
18  * information: Portions Copyright [yyyy] [name of copyright owner]
19  *
20  * CDDL HEADER END
21  */
22 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23 /*	  All Rights Reserved  	*/
24 
25 
26 #ident	"%Z%%M%	%I%	%E% SMI"	/* SVr4.0 1.7.1.1	*/
27 
28 /*
29  * lserror.h:	Network listener error exit codes.
30  *		The codes in the defines index the table below to
31  *		give the actual exit code. (The table is in lsdata.c)
32  *
33  *		An exit code of 1 means initialization problem
34  *			before logging is available
35  *
36  *		An exit code of 0 means the listener got past
37  *		it's initialization and made itself independent
38  *		of it's parent.
39  *
40  *		Not all of the errors listed below will cause error exits.
41  */
42 
43 #ifndef lserror_h	/* avoid multiple inclusions of lserror.h */
44 #define lserror_h
45 
46 /*
47  * parameters to error/exit routines
48  */
49 
50 #define EXIT		0x80		/* error routines will exit	*/
51 #define NOCORE		0x40
52 #define NORMAL		0x20		/* exit is a 'normal' exit	*/
53 #define NO_MSG		0x10		/* message already logged	*/
54 #define CONTINUE	0
55 
56 
57 #define E_CMDLINE	1		/* cmd line arguments		*/
58 #define E_CDHOME	2		/* can't chdir to home dir	*/
59 #define E_CREAT		3		/* can't create a file		*/
60 #define E_ACCESS	4		/* can't access/exec file	*/
61 #define E_OPEN		5		/* can't open a file		*/
62 #define E_LSFORK	6		/* can't fork myself		*/
63 #define E_PIDWRITE	7		/* error writing process id file */
64 
65 #define	E_FD1OPEN	8		/* fd 1 net device open		*/
66 #define	E_FD2OPEN	9		/* fd 2 net device open		*/
67 #define	E_FD3OPEN	10		/* fd 3 net device open		*/
68 #define E_UNAME		11		/* uname system call		*/
69 #define	E_SIGTERM	12		/* signal SIGTERM caught	*/
70 /*
71  * E_INCONSISTENT should only be seen by developers/integrators/etc.
72  * Cmd line/data base problem. Hopefully only a debug error.
73  * In the listener, in check_files(), where cmd line args
74  * and the data base file entries are merged, a pathname
75  * of a required file (e.g.: pidfile, logfile) was NULL.
76  * Make sure the data base/cmd line has all the required entries.
77  */
78 
79 #define E_INCONSISTENT	13
80 
81 
82 /*
83  * TLI errors.
84  *	E_T_ALLOC: probably couldn't malloc() (out of memory?)
85  *	E_T_BIND:  Couldn't bind nodename or netnodename!!!
86  *	E_BIND_REQ: TLI didn't bind the requested name!!!
87  *		    (someone else on the machine/net took it?)
88  *	E_T_FREE:  t_free failed -- listener/tli bug or reboot
89  *	E_IN_TLI:  System call failed in a TLI routine.
90  *
91  */
92 
93 #define E_T_ALLOC	14		/* TLI: t_alloc failed		*/
94 #define	E_T_BIND	15		/* TLI couldn't bind		*/
95 #define	E_BIND_REQ	16		/* tli bound a different name!	*/
96 #define E_T_FREE	17		/* tli couldn't free memory?	*/
97 #define E_IN_TLI	18		/* system call failed in tli	*/
98 #define E_T_LISTEN	19		/* t_listen error		*/
99 #define E_T_ACCEPT	20		/* t_accept			*/
100 #define	E_T_SNDDIS	21		/* t_snddis			*/
101 #define	E_T_RCV		22		/* t_rcv			*/
102 #define	E_T_SND		23		/* t_snd			*/
103 
104 /* miscellaneous errors 						*/
105 
106 #define E_CANT_HAPPEN	24		/* transport provider bug	*/
107 
108 #define E_NOINTERMEDIARY 25		/* login service requested, but
109 					   listener doesn't have an
110 					   intermediary to 'exec'	*/
111 
112 #define	E_FORK_SERVICE	26		/* error occurred when the listener
113 					   tried to fork itself to start
114 					   a service.			*/
115 
116 #define E_RCV_MSG	27		/* error in t_rcv		*/
117 #define E_RCV_TMO	28		/* t_rcv timed out		*/
118 
119 /*
120  * E_OPENBIND: problem during t_open in initialization
121  * actually means the driver ran out of minor devices or the
122  * system file table is full -- reboot or wait recommended
123  */
124 
125 #define E_OPENBIND	29		/* open/bind err during init	*/
126 
127 #define E_DBF_IO	30		/* data base file i/o error	*/
128 #define E_SCAN_DBF	E_DBF_IO
129 #define E_READ_DBF	E_DBF_IO
130 
131 #define	E_BAD_VERSION	31		/* attservice: bad version	*/
132 #define E_BAD_FORMAT	32		/* attservice: bad msg format	*/
133 
134 #define E_SYS_ERROR	33		/* sys call problem; i.e. in exec */
135 
136 #define E_DBF_ALLOC	34		/* calloc's for dbf failed	*/
137 #define E_POLL		35		/* poll call failed		*/
138 #define E_MALLOC	36		/* generic failed malloc	*/
139 #define E_T_RCVDIS	37		/* t_rcvdis (should be above but
140 					   renumbering is bad) */
141 #define E_T_LOOK	38		/* t_look (should be above but
142 					   renumbering is bad) */
143 #define E_DBF_CORRUPT	39		/* data base file corrupt */
144 #define E_BADVER	40		/* data base file at wrong version */
145 
146 #define E_FDNOMATCH	41		/* fd the call came in did not match
147 					   with fd in private_tab */
148 typedef struct {
149 	char	*err_msg;
150 	int	err_code;
151 } errlist;
152 
153 #ifndef	GLOBAL_DATA
154 extern char *Usage;
155 extern errlist err_list[];
156 #endif
157 
158 #endif	/* lserror_h */
159