xref: /titanic_50/usr/src/lib/libtsol/common/labeld.h (revision 45916cd2fec6e79bca5dee0421bd39e3c2910d1e)
1*45916cd2Sjpk /*
2*45916cd2Sjpk  * CDDL HEADER START
3*45916cd2Sjpk  *
4*45916cd2Sjpk  * The contents of this file are subject to the terms of the
5*45916cd2Sjpk  * Common Development and Distribution License (the "License").
6*45916cd2Sjpk  * You may not use this file except in compliance with the License.
7*45916cd2Sjpk  *
8*45916cd2Sjpk  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*45916cd2Sjpk  * or http://www.opensolaris.org/os/licensing.
10*45916cd2Sjpk  * See the License for the specific language governing permissions
11*45916cd2Sjpk  * and limitations under the License.
12*45916cd2Sjpk  *
13*45916cd2Sjpk  * When distributing Covered Code, include this CDDL HEADER in each
14*45916cd2Sjpk  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*45916cd2Sjpk  * If applicable, add the following below this CDDL HEADER, with the
16*45916cd2Sjpk  * fields enclosed by brackets "[]" replaced with your own identifying
17*45916cd2Sjpk  * information: Portions Copyright [yyyy] [name of copyright owner]
18*45916cd2Sjpk  *
19*45916cd2Sjpk  * CDDL HEADER END
20*45916cd2Sjpk  */
21*45916cd2Sjpk /*
22*45916cd2Sjpk  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
23*45916cd2Sjpk  * Use is subject to license terms.
24*45916cd2Sjpk  */
25*45916cd2Sjpk 
26*45916cd2Sjpk #ifndef	_LABELD_H
27*45916cd2Sjpk #define	_LABELD_H
28*45916cd2Sjpk 
29*45916cd2Sjpk #pragma ident	"%Z%%M%	%I%	%E% SMI"
30*45916cd2Sjpk 
31*45916cd2Sjpk #include <sys/types.h>
32*45916cd2Sjpk #include <tsol/label.h>
33*45916cd2Sjpk #include <sys/tsol/label_macro.h>
34*45916cd2Sjpk 
35*45916cd2Sjpk #ifdef	__cplusplus
36*45916cd2Sjpk extern "C" {
37*45916cd2Sjpk #endif
38*45916cd2Sjpk 
39*45916cd2Sjpk /*
40*45916cd2Sjpk  *	Definitions for the call parameters for the door-based label
41*45916cd2Sjpk  * translation service.
42*45916cd2Sjpk  */
43*45916cd2Sjpk 
44*45916cd2Sjpk #define	BUFSIZE	4096
45*45916cd2Sjpk 
46*45916cd2Sjpk #define	DOOR_PATH	"/var/tsol/doors/"
47*45916cd2Sjpk #define	DOOR_NAME	"labeld"
48*45916cd2Sjpk #define	COOKIE		(void *)0x6c616264	/* "labd" */
49*45916cd2Sjpk 
50*45916cd2Sjpk /*	Op codes */
51*45916cd2Sjpk 
52*45916cd2Sjpk /*	Labeld Commands */
53*45916cd2Sjpk 
54*45916cd2Sjpk #define	LABELDNULL	1
55*45916cd2Sjpk 
56*45916cd2Sjpk /*	Miscellaneous */
57*45916cd2Sjpk 
58*45916cd2Sjpk #define	BLINSET		10
59*45916cd2Sjpk #define	BSLVALID	11
60*45916cd2Sjpk #define	BILVALID	12
61*45916cd2Sjpk #define	BCLEARVALID	13
62*45916cd2Sjpk #define	LABELINFO	14
63*45916cd2Sjpk #define	LABELVERS	15
64*45916cd2Sjpk #define	BLTOCOLOR	16
65*45916cd2Sjpk 
66*45916cd2Sjpk /*	Binary to String Label Translation */
67*45916cd2Sjpk 
68*45916cd2Sjpk #define	BSLTOS		23
69*45916cd2Sjpk #define	BCLEARTOS	25
70*45916cd2Sjpk 
71*45916cd2Sjpk /*	String to Binary Label Translation */
72*45916cd2Sjpk 
73*45916cd2Sjpk #define	STOBSL		31
74*45916cd2Sjpk #define	STOBCLEAR	33
75*45916cd2Sjpk 
76*45916cd2Sjpk /*
77*45916cd2Sjpk  *	Dimming List Routines
78*45916cd2Sjpk  *	Contract private for label builders
79*45916cd2Sjpk  */
80*45916cd2Sjpk 
81*45916cd2Sjpk #define	BSLCVT		40
82*45916cd2Sjpk #define	BCLEARCVT	42
83*45916cd2Sjpk #define	LABELFIELDS	43
84*45916cd2Sjpk #define	UDEFS		44
85*45916cd2Sjpk 
86*45916cd2Sjpk #define	GETFLABEL	45
87*45916cd2Sjpk #define	SETFLABEL	46
88*45916cd2Sjpk #define	ZCOPY		47
89*45916cd2Sjpk 
90*45916cd2Sjpk /* NEW LABELS */
91*45916cd2Sjpk /* DIA printer banner labels */
92*45916cd2Sjpk 
93*45916cd2Sjpk #define	PR_CAVEATS	101
94*45916cd2Sjpk #define	PR_CHANNELS	102
95*45916cd2Sjpk #define	PR_LABEL	103
96*45916cd2Sjpk #define	PR_TOP		104
97*45916cd2Sjpk 
98*45916cd2Sjpk /* DIA label to string  */
99*45916cd2Sjpk 
100*45916cd2Sjpk #define	LTOS		105
101*45916cd2Sjpk 
102*45916cd2Sjpk /* DIA string to label */
103*45916cd2Sjpk 
104*45916cd2Sjpk #define	STOL		106
105*45916cd2Sjpk 
106*45916cd2Sjpk /*	Structures */
107*45916cd2Sjpk 
108*45916cd2Sjpk typedef	uint_t	bufp_t;		/* offset into buf[] in/out string buffer */
109*45916cd2Sjpk 
110*45916cd2Sjpk /* Null call */
111*45916cd2Sjpk 
112*45916cd2Sjpk typedef	struct {
113*45916cd2Sjpk 	int	null;
114*45916cd2Sjpk } null_call_t;
115*45916cd2Sjpk 
116*45916cd2Sjpk typedef	struct {
117*45916cd2Sjpk 	int	null;
118*45916cd2Sjpk } null_ret_t;
119*45916cd2Sjpk 
120*45916cd2Sjpk /* Miscellaneous interfaces */
121*45916cd2Sjpk 
122*45916cd2Sjpk typedef	struct {
123*45916cd2Sjpk 	bslabel_t label;
124*45916cd2Sjpk 	int	type;
125*45916cd2Sjpk } inset_call_t;
126*45916cd2Sjpk 
127*45916cd2Sjpk typedef	struct {
128*45916cd2Sjpk 	int	inset;
129*45916cd2Sjpk } inset_ret_t;
130*45916cd2Sjpk 
131*45916cd2Sjpk typedef	struct {
132*45916cd2Sjpk 	bslabel_t label;
133*45916cd2Sjpk } slvalid_call_t;
134*45916cd2Sjpk 
135*45916cd2Sjpk typedef	struct {
136*45916cd2Sjpk 	int	valid;
137*45916cd2Sjpk } slvalid_ret_t;
138*45916cd2Sjpk 
139*45916cd2Sjpk typedef	struct {
140*45916cd2Sjpk 	bclear_t clear;
141*45916cd2Sjpk } clrvalid_call_t;
142*45916cd2Sjpk 
143*45916cd2Sjpk typedef	struct {
144*45916cd2Sjpk 	int	valid;
145*45916cd2Sjpk } clrvalid_ret_t;
146*45916cd2Sjpk 
147*45916cd2Sjpk typedef	struct {
148*45916cd2Sjpk 	int	null;
149*45916cd2Sjpk } info_call_t;
150*45916cd2Sjpk 
151*45916cd2Sjpk typedef	struct {
152*45916cd2Sjpk 	struct label_info info;
153*45916cd2Sjpk } info_ret_t;
154*45916cd2Sjpk 
155*45916cd2Sjpk typedef	struct {
156*45916cd2Sjpk 	int	null;
157*45916cd2Sjpk } vers_call_t;
158*45916cd2Sjpk 
159*45916cd2Sjpk typedef	struct {
160*45916cd2Sjpk 	char	vers[BUFSIZE];
161*45916cd2Sjpk } vers_ret_t;
162*45916cd2Sjpk 
163*45916cd2Sjpk typedef struct {
164*45916cd2Sjpk 	blevel_t label;
165*45916cd2Sjpk } color_call_t;
166*45916cd2Sjpk 
167*45916cd2Sjpk typedef struct {
168*45916cd2Sjpk 	char	color[BUFSIZE];
169*45916cd2Sjpk } color_ret_t;
170*45916cd2Sjpk 
171*45916cd2Sjpk /* Binary Label to String interfaces */
172*45916cd2Sjpk 
173*45916cd2Sjpk typedef	struct {
174*45916cd2Sjpk 	bslabel_t label;
175*45916cd2Sjpk 	uint_t	flags;
176*45916cd2Sjpk } bsltos_call_t;
177*45916cd2Sjpk 
178*45916cd2Sjpk typedef	struct {
179*45916cd2Sjpk 	char	slabel[BUFSIZE];
180*45916cd2Sjpk } bsltos_ret_t;
181*45916cd2Sjpk 
182*45916cd2Sjpk typedef	struct {
183*45916cd2Sjpk 	bclear_t clear;
184*45916cd2Sjpk 	uint_t	flags;
185*45916cd2Sjpk } bcleartos_call_t;
186*45916cd2Sjpk 
187*45916cd2Sjpk typedef	struct {
188*45916cd2Sjpk 	char	cslabel[BUFSIZE];
189*45916cd2Sjpk } bcleartos_ret_t;
190*45916cd2Sjpk 
191*45916cd2Sjpk /* String to Binary Label interfaces */
192*45916cd2Sjpk 
193*45916cd2Sjpk typedef	struct {
194*45916cd2Sjpk 	bslabel_t label;
195*45916cd2Sjpk 	uint_t	flags;
196*45916cd2Sjpk 	char	string[BUFSIZE];
197*45916cd2Sjpk } stobsl_call_t;
198*45916cd2Sjpk 
199*45916cd2Sjpk typedef	struct {
200*45916cd2Sjpk 	bslabel_t label;
201*45916cd2Sjpk } stobsl_ret_t;
202*45916cd2Sjpk 
203*45916cd2Sjpk typedef	struct {
204*45916cd2Sjpk 	bclear_t clear;
205*45916cd2Sjpk 	uint_t	flags;
206*45916cd2Sjpk 	char	string[BUFSIZE];
207*45916cd2Sjpk } stobclear_call_t;
208*45916cd2Sjpk 
209*45916cd2Sjpk typedef	struct {
210*45916cd2Sjpk 	bclear_t clear;
211*45916cd2Sjpk } stobclear_ret_t;
212*45916cd2Sjpk 
213*45916cd2Sjpk /*
214*45916cd2Sjpk  * The following Dimming List and Miscellaneous interfaces
215*45916cd2Sjpk  * implement contract private interfaces for the label builder
216*45916cd2Sjpk  * interfaces.
217*45916cd2Sjpk  */
218*45916cd2Sjpk 
219*45916cd2Sjpk /* Dimming List interfaces */
220*45916cd2Sjpk 
221*45916cd2Sjpk typedef	struct {
222*45916cd2Sjpk 	bslabel_t label;
223*45916cd2Sjpk 	brange_t bounds;
224*45916cd2Sjpk 	uint_t	flags;
225*45916cd2Sjpk } bslcvt_call_t;
226*45916cd2Sjpk 
227*45916cd2Sjpk typedef	struct {
228*45916cd2Sjpk 	bufp_t	string;
229*45916cd2Sjpk 	bufp_t	dim;
230*45916cd2Sjpk 	bufp_t	lwords;
231*45916cd2Sjpk 	bufp_t	swords;
232*45916cd2Sjpk 	size_t	d_len;
233*45916cd2Sjpk 	size_t	l_len;
234*45916cd2Sjpk 	size_t	s_len;
235*45916cd2Sjpk 	int	first_comp;
236*45916cd2Sjpk 	int	first_mark;
237*45916cd2Sjpk 	char	buf[BUFSIZE];
238*45916cd2Sjpk } cvt_ret_t;
239*45916cd2Sjpk 
240*45916cd2Sjpk typedef cvt_ret_t bslcvt_ret_t;
241*45916cd2Sjpk 
242*45916cd2Sjpk typedef	struct {
243*45916cd2Sjpk 	bclear_t clear;
244*45916cd2Sjpk 	brange_t bounds;
245*45916cd2Sjpk 	uint_t	flags;
246*45916cd2Sjpk } bclearcvt_call_t;
247*45916cd2Sjpk 
248*45916cd2Sjpk typedef cvt_ret_t bclearcvt_ret_t;
249*45916cd2Sjpk 
250*45916cd2Sjpk /* Miscellaneous interfaces */
251*45916cd2Sjpk 
252*45916cd2Sjpk typedef	struct {
253*45916cd2Sjpk 	int	null;
254*45916cd2Sjpk } fields_call_t;
255*45916cd2Sjpk 
256*45916cd2Sjpk typedef	struct {
257*45916cd2Sjpk 	bufp_t	classi;
258*45916cd2Sjpk 	bufp_t	compsi;
259*45916cd2Sjpk 	bufp_t	marksi;
260*45916cd2Sjpk 	char	buf[BUFSIZE];
261*45916cd2Sjpk } fields_ret_t;
262*45916cd2Sjpk 
263*45916cd2Sjpk typedef	struct {
264*45916cd2Sjpk 	int	null;
265*45916cd2Sjpk } udefs_call_t;
266*45916cd2Sjpk 
267*45916cd2Sjpk typedef	struct {
268*45916cd2Sjpk 	bslabel_t sl;
269*45916cd2Sjpk 	bclear_t  clear;
270*45916cd2Sjpk } udefs_ret_t;
271*45916cd2Sjpk 
272*45916cd2Sjpk typedef	struct {
273*45916cd2Sjpk 	bslabel_t  sl;
274*45916cd2Sjpk 	char	pathname[BUFSIZE];
275*45916cd2Sjpk } setfbcl_call_t;
276*45916cd2Sjpk 
277*45916cd2Sjpk typedef	struct {
278*45916cd2Sjpk 	int	status;
279*45916cd2Sjpk } setfbcl_ret_t;
280*45916cd2Sjpk 
281*45916cd2Sjpk typedef	struct {
282*45916cd2Sjpk 	bslabel_t  src_win_sl;
283*45916cd2Sjpk 	int	transfer_mode;
284*45916cd2Sjpk 	bufp_t  remote_dir;
285*45916cd2Sjpk 	bufp_t  filename;
286*45916cd2Sjpk 	bufp_t  local_dir;
287*45916cd2Sjpk 	bufp_t  display;
288*45916cd2Sjpk 	char    buf[BUFSIZE];
289*45916cd2Sjpk } zcopy_call_t;
290*45916cd2Sjpk 
291*45916cd2Sjpk typedef	struct {
292*45916cd2Sjpk 	int	status;
293*45916cd2Sjpk } zcopy_ret_t;
294*45916cd2Sjpk 
295*45916cd2Sjpk typedef	struct {
296*45916cd2Sjpk 	m_label_t label;
297*45916cd2Sjpk 	uint_t	flags;
298*45916cd2Sjpk } pr_call_t;
299*45916cd2Sjpk 
300*45916cd2Sjpk typedef	struct {
301*45916cd2Sjpk 	char	buf[BUFSIZE];
302*45916cd2Sjpk } pr_ret_t;
303*45916cd2Sjpk 
304*45916cd2Sjpk typedef	struct {
305*45916cd2Sjpk 	m_label_t label;
306*45916cd2Sjpk 	uint_t	flags;
307*45916cd2Sjpk } ls_call_t;
308*45916cd2Sjpk 
309*45916cd2Sjpk typedef	struct {
310*45916cd2Sjpk 	char	buf[BUFSIZE];
311*45916cd2Sjpk } ls_ret_t;
312*45916cd2Sjpk 
313*45916cd2Sjpk typedef	struct {
314*45916cd2Sjpk 	m_label_t label;
315*45916cd2Sjpk 	uint_t	flags;
316*45916cd2Sjpk 	char	string[BUFSIZE];
317*45916cd2Sjpk } sl_call_t;
318*45916cd2Sjpk 
319*45916cd2Sjpk typedef	struct {
320*45916cd2Sjpk 	m_label_t label;
321*45916cd2Sjpk } sl_ret_t;
322*45916cd2Sjpk 
323*45916cd2Sjpk /* Labeld operation call structure */
324*45916cd2Sjpk 
325*45916cd2Sjpk typedef	struct {
326*45916cd2Sjpk 	uint_t	op;
327*45916cd2Sjpk 	union	{
328*45916cd2Sjpk 		null_call_t	null_arg;
329*45916cd2Sjpk 
330*45916cd2Sjpk 		inset_call_t	inset_arg;
331*45916cd2Sjpk 		slvalid_call_t	slvalid_arg;
332*45916cd2Sjpk 		clrvalid_call_t	clrvalid_arg;
333*45916cd2Sjpk 		info_call_t	info_arg;
334*45916cd2Sjpk 		vers_call_t	vers_arg;
335*45916cd2Sjpk 		color_call_t	color_arg;
336*45916cd2Sjpk 
337*45916cd2Sjpk 		bsltos_call_t	bsltos_arg;
338*45916cd2Sjpk 		bcleartos_call_t	bcleartos_arg;
339*45916cd2Sjpk 
340*45916cd2Sjpk 		stobsl_call_t	stobsl_arg;
341*45916cd2Sjpk 		stobclear_call_t	stobclear_arg;
342*45916cd2Sjpk 
343*45916cd2Sjpk 		bslcvt_call_t	bslcvt_arg;
344*45916cd2Sjpk 		bclearcvt_call_t	bclearcvt_arg;
345*45916cd2Sjpk 		fields_call_t	fields_arg;
346*45916cd2Sjpk 		udefs_call_t	udefs_arg;
347*45916cd2Sjpk 		setfbcl_call_t	setfbcl_arg;
348*45916cd2Sjpk 		zcopy_call_t	zcopy_arg;
349*45916cd2Sjpk 		pr_call_t	pr_arg;
350*45916cd2Sjpk 		ls_call_t	ls_arg;
351*45916cd2Sjpk 		sl_call_t	sl_arg;
352*45916cd2Sjpk 	} cargs;
353*45916cd2Sjpk } labeld_call_t;
354*45916cd2Sjpk 
355*45916cd2Sjpk /* Labeld operation return structure */
356*45916cd2Sjpk 
357*45916cd2Sjpk typedef struct {
358*45916cd2Sjpk 	int	ret;		/* labeld return codes */
359*45916cd2Sjpk 	int	err;		/* function error codes */
360*45916cd2Sjpk 	union	{
361*45916cd2Sjpk 		null_ret_t	null_ret;
362*45916cd2Sjpk 
363*45916cd2Sjpk 		inset_ret_t	inset_ret;
364*45916cd2Sjpk 		slvalid_ret_t	slvalid_ret;
365*45916cd2Sjpk 		clrvalid_ret_t	clrvalid_ret;
366*45916cd2Sjpk 		info_ret_t	info_ret;
367*45916cd2Sjpk 		vers_ret_t	vers_ret;
368*45916cd2Sjpk 		color_ret_t	color_ret;
369*45916cd2Sjpk 
370*45916cd2Sjpk 		bsltos_ret_t	bsltos_ret;
371*45916cd2Sjpk 		bcleartos_ret_t	bcleartos_ret;
372*45916cd2Sjpk 
373*45916cd2Sjpk 		stobsl_ret_t	stobsl_ret;
374*45916cd2Sjpk 		stobclear_ret_t	stobclear_ret;
375*45916cd2Sjpk 
376*45916cd2Sjpk 		bslcvt_ret_t	bslcvt_ret;
377*45916cd2Sjpk 		bclearcvt_ret_t	bclearcvt_ret;
378*45916cd2Sjpk 		fields_ret_t	fields_ret;
379*45916cd2Sjpk 		udefs_ret_t	udefs_ret;
380*45916cd2Sjpk 		setfbcl_ret_t	setfbcl_ret;
381*45916cd2Sjpk 		zcopy_ret_t	zcopy_ret;
382*45916cd2Sjpk 		pr_ret_t	pr_ret;
383*45916cd2Sjpk 		ls_ret_t	ls_ret;
384*45916cd2Sjpk 		sl_ret_t	sl_ret;
385*45916cd2Sjpk 	} rvals;
386*45916cd2Sjpk } labeld_ret_t;
387*45916cd2Sjpk 
388*45916cd2Sjpk /* Labeld call/return structure */
389*45916cd2Sjpk 
390*45916cd2Sjpk typedef	struct {
391*45916cd2Sjpk 	union {
392*45916cd2Sjpk 		labeld_call_t	acall;
393*45916cd2Sjpk 		labeld_ret_t	aret;
394*45916cd2Sjpk 	} param;
395*45916cd2Sjpk } labeld_data_t;
396*45916cd2Sjpk 
397*45916cd2Sjpk #define	callop	param.acall.op
398*45916cd2Sjpk #define	retret	param.aret.ret
399*45916cd2Sjpk #define	reterr	param.aret.err
400*45916cd2Sjpk 
401*45916cd2Sjpk #define	CALL_SIZE(type, buf)	(size_t)(sizeof (type) + sizeof (int) + (buf))
402*45916cd2Sjpk #define	RET_SIZE(type, buf)	(size_t)(sizeof (type) + 2*sizeof (int) + (buf))
403*45916cd2Sjpk 
404*45916cd2Sjpk /* Labeld common client call function */
405*45916cd2Sjpk 
406*45916cd2Sjpk int
407*45916cd2Sjpk __call_labeld(labeld_data_t **dptr, size_t *ndata, size_t *adata);
408*45916cd2Sjpk 
409*45916cd2Sjpk /* Return Codes */
410*45916cd2Sjpk 
411*45916cd2Sjpk #define	SUCCESS		1	/* Call OK */
412*45916cd2Sjpk #define	NOTFOUND	-1	/* Function not found */
413*45916cd2Sjpk #define	SERVERFAULT	-2	/* Internal labeld error */
414*45916cd2Sjpk #define	NOSERVER	-3	/* No server thread available, try later */
415*45916cd2Sjpk 
416*45916cd2Sjpk /* Flag Translation Values */
417*45916cd2Sjpk 
418*45916cd2Sjpk #define	L_NEW_LABEL		0x10000000
419*45916cd2Sjpk 
420*45916cd2Sjpk /* GFI FLAGS */
421*45916cd2Sjpk 
422*45916cd2Sjpk #define	GFI_FLAG_MASK		 0x0000FFFF
423*45916cd2Sjpk #define	GFI_ACCESS_RELATED	 0x00000001
424*45916cd2Sjpk 
425*45916cd2Sjpk /* binary to ASCII */
426*45916cd2Sjpk 
427*45916cd2Sjpk #define	LABELS_NO_CLASS		 0x00010000
428*45916cd2Sjpk #define	LABELS_SHORT_CLASS	 0x00020000
429*45916cd2Sjpk #define	LABELS_SHORT_WORDS	 0x00040000
430*45916cd2Sjpk 
431*45916cd2Sjpk /* Label view */
432*45916cd2Sjpk 
433*45916cd2Sjpk #define	LABELS_VIEW_INTERNAL	 0x00100000
434*45916cd2Sjpk #define	LABELS_VIEW_EXTERNAL	 0x00200000
435*45916cd2Sjpk 
436*45916cd2Sjpk /* Dimming list (convert -- b*cvt* ) */
437*45916cd2Sjpk 
438*45916cd2Sjpk #define	LABELS_FULL_CONVERT	 0x00010000
439*45916cd2Sjpk 
440*45916cd2Sjpk /* ASCII to binary */
441*45916cd2Sjpk 
442*45916cd2Sjpk #define	LABELS_NEW_LABEL	 0x00010000
443*45916cd2Sjpk #define	LABELS_FULL_PARSE	 0x00020000
444*45916cd2Sjpk #define	LABELS_ONLY_INFO_LABEL	 0x00040000
445*45916cd2Sjpk 
446*45916cd2Sjpk #define	MOVE_FILE	0
447*45916cd2Sjpk #define	COPY_FILE	1
448*45916cd2Sjpk #define	LINK_FILE	2
449*45916cd2Sjpk 
450*45916cd2Sjpk #define	PIPEMSG_FILEOP_ERROR	1
451*45916cd2Sjpk #define	PIPEMSG_EXIST_ERROR	2
452*45916cd2Sjpk #define	PIPEMSG_DONE 		7
453*45916cd2Sjpk #define	PIPEMSG_PATH_ERROR	20
454*45916cd2Sjpk #define	PIPEMSG_ZONE_ERROR	21
455*45916cd2Sjpk #define	PIPEMSG_LABEL_ERROR	22
456*45916cd2Sjpk #define	PIPEMSG_READ_ERROR	23
457*45916cd2Sjpk #define	PIPEMSG_READONLY_ERROR  24
458*45916cd2Sjpk #define	PIPEMSG_WRITE_ERROR	25
459*45916cd2Sjpk #define	PIPEMSG_CREATE_ERROR	26
460*45916cd2Sjpk #define	PIPEMSG_DELETE_ERROR	27
461*45916cd2Sjpk #define	PIPEMSG_CANCEL		101
462*45916cd2Sjpk #define	PIPEMSG_PROCEED		102
463*45916cd2Sjpk #define	PIPEMSG_MERGE		103
464*45916cd2Sjpk #define	PIPEMSG_REPLACE_BUFFER	104
465*45916cd2Sjpk #define	PIPEMSG_RENAME_BUFFER	105
466*45916cd2Sjpk #define	PIPEMSG_MULTI_PROCEED	106
467*45916cd2Sjpk #define	PIPEMSG_RENAME_FILE	107
468*45916cd2Sjpk 
469*45916cd2Sjpk #ifdef	__cplusplus
470*45916cd2Sjpk }
471*45916cd2Sjpk #endif
472*45916cd2Sjpk 
473*45916cd2Sjpk #endif	/* _LABELD_H */
474