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