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