xref: /illumos-gate/usr/src/lib/libdtrace/common/dt_errtags.h (revision 7c478bd95313f5f23a4c958a745db2134aa0324)
1*7c478bd9Sstevel@tonic-gate /*
2*7c478bd9Sstevel@tonic-gate  * CDDL HEADER START
3*7c478bd9Sstevel@tonic-gate  *
4*7c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*7c478bd9Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
6*7c478bd9Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
7*7c478bd9Sstevel@tonic-gate  * with the License.
8*7c478bd9Sstevel@tonic-gate  *
9*7c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*7c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
11*7c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
12*7c478bd9Sstevel@tonic-gate  * and limitations under the License.
13*7c478bd9Sstevel@tonic-gate  *
14*7c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
15*7c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*7c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
17*7c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
18*7c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
19*7c478bd9Sstevel@tonic-gate  *
20*7c478bd9Sstevel@tonic-gate  * CDDL HEADER END
21*7c478bd9Sstevel@tonic-gate  */
22*7c478bd9Sstevel@tonic-gate /*
23*7c478bd9Sstevel@tonic-gate  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
24*7c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
25*7c478bd9Sstevel@tonic-gate  */
26*7c478bd9Sstevel@tonic-gate 
27*7c478bd9Sstevel@tonic-gate #ifndef	_DT_ERRTAGS_H
28*7c478bd9Sstevel@tonic-gate #define	_DT_ERRTAGS_H
29*7c478bd9Sstevel@tonic-gate 
30*7c478bd9Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
31*7c478bd9Sstevel@tonic-gate 
32*7c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
33*7c478bd9Sstevel@tonic-gate extern "C" {
34*7c478bd9Sstevel@tonic-gate #endif
35*7c478bd9Sstevel@tonic-gate 
36*7c478bd9Sstevel@tonic-gate /*
37*7c478bd9Sstevel@tonic-gate  * This enum definition is used to define a set of error tags associated with
38*7c478bd9Sstevel@tonic-gate  * the D compiler's various error conditions.  The shell script mkerrtags.sh is
39*7c478bd9Sstevel@tonic-gate  * used to parse this file and create a corresponding dt_errtags.c source file.
40*7c478bd9Sstevel@tonic-gate  * If you do something other than add a new error tag here, you may need to
41*7c478bd9Sstevel@tonic-gate  * update the mkerrtags shell script as it is based upon simple regexps.
42*7c478bd9Sstevel@tonic-gate  */
43*7c478bd9Sstevel@tonic-gate typedef enum {
44*7c478bd9Sstevel@tonic-gate 	D_UNKNOWN,			/* unknown D compiler error */
45*7c478bd9Sstevel@tonic-gate 	D_SYNTAX,			/* syntax error in input stream */
46*7c478bd9Sstevel@tonic-gate 	D_EMPTY,			/* empty translation unit */
47*7c478bd9Sstevel@tonic-gate 	D_TYPE_ERR,			/* type definition missing */
48*7c478bd9Sstevel@tonic-gate 	D_TYPE_MEMBER,			/* type member not found */
49*7c478bd9Sstevel@tonic-gate 	D_ASRELO,			/* relocation remains against symbol */
50*7c478bd9Sstevel@tonic-gate 	D_CG_EXPR,			/* tracing function called from expr */
51*7c478bd9Sstevel@tonic-gate 	D_CG_DYN,			/* expression returns dynamic result */
52*7c478bd9Sstevel@tonic-gate 	D_ATTR_MIN,			/* attributes less than amin setting */
53*7c478bd9Sstevel@tonic-gate 	D_ID_OFLOW,			/* identifier space overflow */
54*7c478bd9Sstevel@tonic-gate 	D_PDESC_ZERO,			/* probedesc matches zero probes */
55*7c478bd9Sstevel@tonic-gate 	D_PDESC_INVAL,			/* probedesc is not valid */
56*7c478bd9Sstevel@tonic-gate 	D_PRED_SCALAR,			/* predicate must be of scalar type */
57*7c478bd9Sstevel@tonic-gate 	D_FUNC_IDENT,			/* function designator is not ident */
58*7c478bd9Sstevel@tonic-gate 	D_FUNC_UNDEF,			/* function ident is not defined */
59*7c478bd9Sstevel@tonic-gate 	D_FUNC_IDKIND,			/* function ident is of wrong idkind */
60*7c478bd9Sstevel@tonic-gate 	D_OFFSETOF_TYPE,		/* offsetof arg is not sou type */
61*7c478bd9Sstevel@tonic-gate 	D_OFFSETOF_BITFIELD,		/* offsetof applied to field member */
62*7c478bd9Sstevel@tonic-gate 	D_SIZEOF_TYPE,			/* invalid sizeof type */
63*7c478bd9Sstevel@tonic-gate 	D_SIZEOF_BITFIELD,		/* sizeof applied to field member */
64*7c478bd9Sstevel@tonic-gate 	D_STRINGOF_TYPE,		/* invalid stringof type */
65*7c478bd9Sstevel@tonic-gate 	D_OP_IDENT,			/* operand must be an identifier */
66*7c478bd9Sstevel@tonic-gate 	D_OP_INT,			/* operand must be integral type */
67*7c478bd9Sstevel@tonic-gate 	D_OP_SCALAR,			/* operand must be scalar type */
68*7c478bd9Sstevel@tonic-gate 	D_OP_ARITH,			/* operand must be arithmetic type */
69*7c478bd9Sstevel@tonic-gate 	D_OP_WRITE,			/* operand must be writable variable */
70*7c478bd9Sstevel@tonic-gate 	D_OP_LVAL,			/* operand must be lvalue */
71*7c478bd9Sstevel@tonic-gate 	D_OP_INCOMPAT,			/* operand types are not compatible */
72*7c478bd9Sstevel@tonic-gate 	D_OP_VFPTR,			/* operand cannot be void or func ptr */
73*7c478bd9Sstevel@tonic-gate 	D_OP_ARRFUN,			/* operand cannot be array or func */
74*7c478bd9Sstevel@tonic-gate 	D_OP_PTR,			/* operand must be a pointer */
75*7c478bd9Sstevel@tonic-gate 	D_OP_SOU,			/* operand must be struct or union */
76*7c478bd9Sstevel@tonic-gate 	D_OP_INCOMPLETE,		/* operand is an incomplete type */
77*7c478bd9Sstevel@tonic-gate 	D_OP_DYN,			/* operand cannot be of dynamic type */
78*7c478bd9Sstevel@tonic-gate 	D_OP_ACT,			/* operand cannot be action */
79*7c478bd9Sstevel@tonic-gate 	D_AGG_REDEF,			/* aggregation cannot be redefined */
80*7c478bd9Sstevel@tonic-gate 	D_AGG_FUNC,			/* aggregating function required */
81*7c478bd9Sstevel@tonic-gate 	D_AGG_MDIM,			/* aggregation used as multi-dim arr */
82*7c478bd9Sstevel@tonic-gate 	D_ARR_BADREF,			/* access non-array using tuple */
83*7c478bd9Sstevel@tonic-gate 	D_ARR_LOCAL,			/* cannot define local assc array */
84*7c478bd9Sstevel@tonic-gate 	D_DIV_ZERO,			/* division by zero detected */
85*7c478bd9Sstevel@tonic-gate 	D_DEREF_NONPTR,			/* dereference non-pointer type */
86*7c478bd9Sstevel@tonic-gate 	D_DEREF_VOID,			/* dereference void pointer */
87*7c478bd9Sstevel@tonic-gate 	D_DEREF_FUNC,			/* dereference function pointer */
88*7c478bd9Sstevel@tonic-gate 	D_ADDROF_LVAL,			/* unary & applied to non-lvalue */
89*7c478bd9Sstevel@tonic-gate 	D_ADDROF_VAR,			/* unary & applied to variable */
90*7c478bd9Sstevel@tonic-gate 	D_ADDROF_BITFIELD,		/* unary & applied to field member */
91*7c478bd9Sstevel@tonic-gate 	D_XLATE_REDECL,			/* translator redeclared */
92*7c478bd9Sstevel@tonic-gate 	D_XLATE_NOCONV,			/* no conversion for member defined */
93*7c478bd9Sstevel@tonic-gate 	D_XLATE_NONE,			/* no translator for type combo */
94*7c478bd9Sstevel@tonic-gate 	D_XLATE_SOU,			/* dst must be struct or union type */
95*7c478bd9Sstevel@tonic-gate 	D_XLATE_INCOMPAT,		/* translator member type incompat */
96*7c478bd9Sstevel@tonic-gate 	D_XLATE_MEMB,			/* translator member is not valid */
97*7c478bd9Sstevel@tonic-gate 	D_CAST_INVAL,			/* invalid cast expression */
98*7c478bd9Sstevel@tonic-gate 	D_PRAGERR,			/* #pragma error message */
99*7c478bd9Sstevel@tonic-gate 	D_PRAGCTL_INVAL,		/* invalid control directive */
100*7c478bd9Sstevel@tonic-gate 	D_PRAGMA_INVAL,			/* invalid compiler pragma */
101*7c478bd9Sstevel@tonic-gate 	D_PRAGMA_UNUSED,		/* unused compiler pragma */
102*7c478bd9Sstevel@tonic-gate 	D_PRAGMA_MALFORM,		/* malformed #pragma argument list */
103*7c478bd9Sstevel@tonic-gate 	D_PRAGMA_OPTSET,		/* failed to set #pragma option */
104*7c478bd9Sstevel@tonic-gate 	D_PRAGMA_SCOPE,			/* #pragma identifier scope error */
105*7c478bd9Sstevel@tonic-gate 	D_PRAGMA_DEPEND,		/* #pragma dependency not satisfied */
106*7c478bd9Sstevel@tonic-gate 	D_MACRO_UNDEF,			/* macro parameter is not defined */
107*7c478bd9Sstevel@tonic-gate 	D_MACRO_OFLOW,			/* macro parameter integer overflow */
108*7c478bd9Sstevel@tonic-gate 	D_MACRO_UNUSED,			/* macro parameter is never used */
109*7c478bd9Sstevel@tonic-gate 	D_INT_OFLOW,			/* integer constant overflow */
110*7c478bd9Sstevel@tonic-gate 	D_INT_DIGIT,			/* integer digit is not valid */
111*7c478bd9Sstevel@tonic-gate 	D_STR_NL,			/* newline in string literal */
112*7c478bd9Sstevel@tonic-gate 	D_CHR_NL,			/* newline in character constant */
113*7c478bd9Sstevel@tonic-gate 	D_CHR_NULL,			/* empty character constant */
114*7c478bd9Sstevel@tonic-gate 	D_CHR_OFLOW,			/* character constant is too long */
115*7c478bd9Sstevel@tonic-gate 	D_IDENT_BADREF,			/* identifier expected type mismatch */
116*7c478bd9Sstevel@tonic-gate 	D_IDENT_UNDEF,			/* identifier is not known/defined */
117*7c478bd9Sstevel@tonic-gate 	D_IDENT_AMBIG,			/* identifier is ambiguous (var/enum) */
118*7c478bd9Sstevel@tonic-gate 	D_SYM_BADREF,			/* kernel/user symbol ref mismatch */
119*7c478bd9Sstevel@tonic-gate 	D_SYM_NOTYPES,			/* no CTF data available for sym ref */
120*7c478bd9Sstevel@tonic-gate 	D_SYM_MODEL,			/* module/program data model mismatch */
121*7c478bd9Sstevel@tonic-gate 	D_VAR_UNDEF,			/* reference to undefined variable */
122*7c478bd9Sstevel@tonic-gate 	D_VAR_UNSUP,			/* unsupported variable specification */
123*7c478bd9Sstevel@tonic-gate 	D_PROTO_LEN,			/* prototype length mismatch */
124*7c478bd9Sstevel@tonic-gate 	D_PROTO_ARG,			/* prototype argument mismatch */
125*7c478bd9Sstevel@tonic-gate 	D_ARGS_MULTI,			/* description matches unstable set */
126*7c478bd9Sstevel@tonic-gate 	D_ARGS_XLATOR,			/* no args[] translator defined */
127*7c478bd9Sstevel@tonic-gate 	D_ARGS_NONE,			/* no args[] available */
128*7c478bd9Sstevel@tonic-gate 	D_ARGS_TYPE,			/* invalid args[] type */
129*7c478bd9Sstevel@tonic-gate 	D_ARGS_IDX,			/* invalid args[] index */
130*7c478bd9Sstevel@tonic-gate 	D_REGS_IDX,			/* invalid regs[] index */
131*7c478bd9Sstevel@tonic-gate 	D_KEY_TYPE,			/* invalid agg or array key type */
132*7c478bd9Sstevel@tonic-gate 	D_PRINTF_DYN_PROTO,		/* dynamic size argument missing */
133*7c478bd9Sstevel@tonic-gate 	D_PRINTF_DYN_TYPE,		/* dynamic size type mismatch */
134*7c478bd9Sstevel@tonic-gate 	D_PRINTF_AGG_CONV,		/* improper use of %@ conversion */
135*7c478bd9Sstevel@tonic-gate 	D_PRINTF_ARG_PROTO,		/* conversion missing value argument */
136*7c478bd9Sstevel@tonic-gate 	D_PRINTF_ARG_TYPE,		/* conversion arg has wrong type */
137*7c478bd9Sstevel@tonic-gate 	D_PRINTF_ARG_EXTRA,		/* extra arguments specified */
138*7c478bd9Sstevel@tonic-gate 	D_PRINTF_ARG_FMT,		/* format string is not a constant */
139*7c478bd9Sstevel@tonic-gate 	D_PRINTF_FMT_EMPTY,		/* format string is empty */
140*7c478bd9Sstevel@tonic-gate 	D_DECL_CHARATTR,		/* bad attributes for char decl */
141*7c478bd9Sstevel@tonic-gate 	D_DECL_VOIDATTR,		/* bad attributes for void decl */
142*7c478bd9Sstevel@tonic-gate 	D_DECL_SIGNINT,			/* sign/unsign with non-integer decl */
143*7c478bd9Sstevel@tonic-gate 	D_DECL_LONGINT,			/* long with non-arithmetic decl */
144*7c478bd9Sstevel@tonic-gate 	D_DECL_IDENT,			/* old-style declaration or bad type */
145*7c478bd9Sstevel@tonic-gate 	D_DECL_CLASS,			/* more than one storage class given */
146*7c478bd9Sstevel@tonic-gate 	D_DECL_BADCLASS,		/* decl class not supported in D */
147*7c478bd9Sstevel@tonic-gate 	D_DECL_PARMCLASS,		/* invalid class for parameter type */
148*7c478bd9Sstevel@tonic-gate 	D_DECL_COMBO, 			/* bad decl specifier combination */
149*7c478bd9Sstevel@tonic-gate 	D_DECL_ARRSUB,			/* const int required for array size */
150*7c478bd9Sstevel@tonic-gate 	D_DECL_ARRNULL,			/* array decl requires dim or tuple */
151*7c478bd9Sstevel@tonic-gate 	D_DECL_ARRBIG,			/* array size too big */
152*7c478bd9Sstevel@tonic-gate 	D_DECL_IDRED,			/* decl identifier redeclared */
153*7c478bd9Sstevel@tonic-gate 	D_DECL_TYPERED,			/* decl type redeclared */
154*7c478bd9Sstevel@tonic-gate 	D_DECL_MNAME,			/* member name missing */
155*7c478bd9Sstevel@tonic-gate 	D_DECL_SCOPE,			/* scoping operator used in decl */
156*7c478bd9Sstevel@tonic-gate 	D_DECL_BFCONST,			/* bit-field requires const size expr */
157*7c478bd9Sstevel@tonic-gate 	D_DECL_BFSIZE,			/* bit-field size too big for type */
158*7c478bd9Sstevel@tonic-gate 	D_DECL_BFTYPE,			/* bit-field type is not valid */
159*7c478bd9Sstevel@tonic-gate 	D_DECL_ENCONST,			/* enum tag requires const size expr */
160*7c478bd9Sstevel@tonic-gate 	D_DECL_ENOFLOW,			/* enumerator value overflows INT_MAX */
161*7c478bd9Sstevel@tonic-gate 	D_DECL_USELESS,			/* useless external declaration */
162*7c478bd9Sstevel@tonic-gate 	D_DECL_LOCASSC,			/* attempt to decl local assc array */
163*7c478bd9Sstevel@tonic-gate 	D_DECL_VOIDOBJ,			/* attempt to decl void object */
164*7c478bd9Sstevel@tonic-gate 	D_DECL_DYNOBJ,			/* attempt to decl dynamic object */
165*7c478bd9Sstevel@tonic-gate 	D_DECL_INCOMPLETE,		/* declaration uses incomplete type */
166*7c478bd9Sstevel@tonic-gate 	D_DECL_PROTO_VARARGS,		/* varargs not allowed in prototype */
167*7c478bd9Sstevel@tonic-gate 	D_DECL_PROTO_TYPE,		/* type not allowed in prototype */
168*7c478bd9Sstevel@tonic-gate 	D_DECL_PROTO_VOID,		/* void must be sole parameter */
169*7c478bd9Sstevel@tonic-gate 	D_DECL_PROTO_NAME,		/* void parameter may not have a name */
170*7c478bd9Sstevel@tonic-gate 	D_DECL_PROTO_FORM,		/* parameter name has no formal */
171*7c478bd9Sstevel@tonic-gate 	D_COMM_COMM,			/* commit() after commit() */
172*7c478bd9Sstevel@tonic-gate 	D_COMM_DREC,			/* commit() after data action */
173*7c478bd9Sstevel@tonic-gate 	D_SPEC_SPEC,			/* speculate() after speculate() */
174*7c478bd9Sstevel@tonic-gate 	D_SPEC_COMM,			/* speculate() after commit() */
175*7c478bd9Sstevel@tonic-gate 	D_SPEC_DREC,			/* speculate() after data action */
176*7c478bd9Sstevel@tonic-gate 	D_AGG_COMM,			/* aggregating act after commit() */
177*7c478bd9Sstevel@tonic-gate 	D_AGG_SPEC,			/* aggregating act after speculate() */
178*7c478bd9Sstevel@tonic-gate 	D_AGG_NULL,			/* aggregation stmt has null effect */
179*7c478bd9Sstevel@tonic-gate 	D_AGG_SCALAR,			/* aggregating function needs scalar */
180*7c478bd9Sstevel@tonic-gate 	D_ACT_SPEC,			/* destructive action after speculate */
181*7c478bd9Sstevel@tonic-gate 	D_EXIT_SPEC,			/* exit() action after speculate */
182*7c478bd9Sstevel@tonic-gate 	D_DREC_COMM,			/* data action after commit() */
183*7c478bd9Sstevel@tonic-gate 	D_PRINTA_PROTO,			/* printa() prototype mismatch */
184*7c478bd9Sstevel@tonic-gate 	D_PRINTA_AGGARG,		/* aggregation arg type mismatch */
185*7c478bd9Sstevel@tonic-gate 	D_PRINTA_AGGBAD,		/* printa() aggregation not defined */
186*7c478bd9Sstevel@tonic-gate 	D_TRACE_VOID,			/* trace() argument has void type */
187*7c478bd9Sstevel@tonic-gate 	D_TRACE_DYN,			/* trace() argument has dynamic type */
188*7c478bd9Sstevel@tonic-gate 	D_TRACEMEM_ADDR,		/* tracemem() address bad type */
189*7c478bd9Sstevel@tonic-gate 	D_TRACEMEM_SIZE,		/* tracemem() size bad type */
190*7c478bd9Sstevel@tonic-gate 	D_STACK_PROTO,			/* stack() prototype mismatch */
191*7c478bd9Sstevel@tonic-gate 	D_STACK_SIZE,			/* stack() size argument bad type */
192*7c478bd9Sstevel@tonic-gate 	D_USTACK_FRAMES,		/* ustack() frames arg bad type */
193*7c478bd9Sstevel@tonic-gate 	D_USTACK_STRSIZE,		/* ustack() strsize arg bad type */
194*7c478bd9Sstevel@tonic-gate 	D_USTACK_PROTO,			/* ustack() prototype mismatch */
195*7c478bd9Sstevel@tonic-gate 	D_LQUANT_BASETYPE,		/* lquantize() bad base type */
196*7c478bd9Sstevel@tonic-gate 	D_LQUANT_BASEVAL,		/* lquantize() bad base value */
197*7c478bd9Sstevel@tonic-gate 	D_LQUANT_LIMTYPE,		/* lquantize() bad limit type */
198*7c478bd9Sstevel@tonic-gate 	D_LQUANT_LIMVAL,		/* lquantize() bad limit value */
199*7c478bd9Sstevel@tonic-gate 	D_LQUANT_MISMATCH,		/* lquantize() limit < base */
200*7c478bd9Sstevel@tonic-gate 	D_LQUANT_STEPTYPE,		/* lquantize() bad step type */
201*7c478bd9Sstevel@tonic-gate 	D_LQUANT_STEPVAL,		/* lquantize() bad step value */
202*7c478bd9Sstevel@tonic-gate 	D_LQUANT_STEPLARGE,		/* lquantize() step too large */
203*7c478bd9Sstevel@tonic-gate 	D_LQUANT_STEPSMALL,		/* lquantize() step too small */
204*7c478bd9Sstevel@tonic-gate 	D_PROC_OFF,			/* byte offset exceeds function size */
205*7c478bd9Sstevel@tonic-gate 	D_PROC_ALIGN,			/* byte offset has invalid alignment */
206*7c478bd9Sstevel@tonic-gate 	D_PROC_NAME,			/* invalid process probe name */
207*7c478bd9Sstevel@tonic-gate 	D_PROC_GRAB,			/* failed to grab process */
208*7c478bd9Sstevel@tonic-gate 	D_PROC_DYN,			/* process is not dynamically linked */
209*7c478bd9Sstevel@tonic-gate 	D_PROC_LIB,			/* invalid process library name */
210*7c478bd9Sstevel@tonic-gate 	D_PROC_FUNC,			/* no such function in process */
211*7c478bd9Sstevel@tonic-gate 	D_PROC_CREATEFAIL,		/* pid probe creation failed */
212*7c478bd9Sstevel@tonic-gate 	D_PROC_NODEV,			/* fasttrap device is not installed */
213*7c478bd9Sstevel@tonic-gate 	D_PROC_BADPID,			/* user probe pid invalid */
214*7c478bd9Sstevel@tonic-gate 	D_PROC_BADPROV,			/* user probe provider invalid */
215*7c478bd9Sstevel@tonic-gate 	D_PROC_USDT,			/* problem initializing usdt */
216*7c478bd9Sstevel@tonic-gate 	D_CLEAR_PROTO,			/* clear() prototype mismatch */
217*7c478bd9Sstevel@tonic-gate 	D_CLEAR_AGGARG,			/* aggregation arg type mismatch */
218*7c478bd9Sstevel@tonic-gate 	D_CLEAR_AGGBAD,			/* clear() aggregation not defined */
219*7c478bd9Sstevel@tonic-gate 	D_NORMALIZE_PROTO,		/* normalize() prototype mismatch */
220*7c478bd9Sstevel@tonic-gate 	D_NORMALIZE_SCALAR,		/* normalize() value must be scalar */
221*7c478bd9Sstevel@tonic-gate 	D_NORMALIZE_AGGARG,		/* aggregation arg type mismatch */
222*7c478bd9Sstevel@tonic-gate 	D_NORMALIZE_AGGBAD,		/* normalize() aggregation not def. */
223*7c478bd9Sstevel@tonic-gate 	D_TRUNC_PROTO,			/* trunc() prototype mismatch */
224*7c478bd9Sstevel@tonic-gate 	D_TRUNC_SCALAR,			/* trunc() value must be scalar */
225*7c478bd9Sstevel@tonic-gate 	D_TRUNC_AGGARG,			/* aggregation arg type mismatch */
226*7c478bd9Sstevel@tonic-gate 	D_TRUNC_AGGBAD,			/* trunc() aggregation not def. */
227*7c478bd9Sstevel@tonic-gate 	D_PROV_BADNAME,			/* invalid provider name */
228*7c478bd9Sstevel@tonic-gate 	D_PROV_INCOMPAT,		/* provider/probe interface mismatch */
229*7c478bd9Sstevel@tonic-gate 	D_PROV_PRDUP,			/* duplicate probe declaration */
230*7c478bd9Sstevel@tonic-gate 	D_PROV_PRARGLEN,		/* probe argument list too long */
231*7c478bd9Sstevel@tonic-gate 	D_FREOPEN_INVALID		/* frename() filename is invalid */
232*7c478bd9Sstevel@tonic-gate } dt_errtag_t;
233*7c478bd9Sstevel@tonic-gate 
234*7c478bd9Sstevel@tonic-gate extern const char *dt_errtag(dt_errtag_t);
235*7c478bd9Sstevel@tonic-gate 
236*7c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
237*7c478bd9Sstevel@tonic-gate }
238*7c478bd9Sstevel@tonic-gate #endif
239*7c478bd9Sstevel@tonic-gate 
240*7c478bd9Sstevel@tonic-gate #endif	/* _DT_ERRTAGS_H */
241