1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _FMD_ERROR_H
#define _FMD_ERROR_H
#pragma ident "%Z%%M% %I% %E% SMI"
#include <errno.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* This enum definition is used to define a set of error tags associated with
* the fmd daemon's various error conditions. The shell script mkerror.sh is
* used to parse this file and create a corresponding fmd_error.c source file.
* If you do something other than add a new error tag here, you may need to
* update the mkerror shell script as it is based upon simple regexps.
*/
typedef enum fmd_errno {
EFMD_UNKNOWN = 1000, /* unknown fault management daemon error */
EFMD_PANIC, /* unrecoverable fatal error in daemon occurred */
EFMD_EXIT, /* failed to initialize fault management daemon */
EFMD_MODULE, /* fmd module detected or caused an error */
EFMD_CONF_OPEN, /* failed to open configuration file */
EFMD_CONF_KEYWORD, /* invalid configuration file keyword */
EFMD_CONF_NOPROP, /* invalid configuration file parameter name */
EFMD_CONF_NODEFER, /* deferred properties not permitted in this file */
EFMD_CONF_PROPDUP, /* duplicate configuration file parameter name */
EFMD_CONF_INVAL, /* invalid value for configuration file property */
EFMD_CONF_OVERFLOW, /* configuration value too large for data type */
EFMD_CONF_USAGE, /* syntax error in configuration file directive */
EFMD_CONF_DEFAULT, /* invalid default value for configuration property */
EFMD_CONF_ERRS, /* error(s) detected in configuration file */
EFMD_CONF_IO, /* i/o error prevented configuration file processing */
EFMD_CONF_PROPNAME, /* configuration property name is not an identifier */
EFMD_CONF_RDONLY, /* configuration property is read-only */
EFMD_CONF_DEFER, /* invalid deferred configuration file property */
EFMD_CONF_UNDEF, /* configuration property is not defined */
EFMD_MOD_INIT, /* failed to initialize module */
EFMD_MOD_FINI, /* failed to uninitialize module */
EFMD_MOD_THR, /* failed to create processing thread for module */
EFMD_MOD_JOIN, /* failed to join processing thread for module */
EFMD_MOD_CONF, /* error(s) detected in module configuration file */
EFMD_MOD_DICT, /* failed to open module's event code dictionary */
EFMD_MOD_LOADED, /* specified module is already loaded */
EFMD_MOD_NOMOD, /* specified module is not loaded */
EFMD_MOD_FAIL, /* module failed due to preceding error */
EFMD_MOD_TOPO, /* failed to obtain topology handle */
EFMD_RTLD_OPEN, /* rtld failed to open shared library plug-in */
EFMD_RTLD_INIT, /* shared library plug-in does not define _fmd_init */
EFMD_BLTIN_NAME, /* built-in plug-in name not found in definition list */
EFMD_BLTIN_INIT, /* built-in plug-in does not define init function */
EFMD_EVENT_INVAL, /* event interface programming error */
EFMD_XPRT_INVAL, /* transport interface programming error */
EFMD_XPRT_PAYLOAD, /* transport event has invalid payload */
EFMD_XPRT_OWNER, /* transport can only be manipulated by owner */
EFMD_XPRT_THR, /* failed to create thread for transport */
EFMD_XPRT_LIMIT, /* limit on number of open transports exceeded */
EFMD_TIME_GETTOD, /* failed to get current time-of-day */
EFMD_LOG_OPEN, /* failed to open and initialize log file */
EFMD_LOG_CLOSE, /* failed to close log file */
EFMD_LOG_EXACCT, /* failed to perform log exacct operation */
EFMD_LOG_APPEND, /* failed to append event to log */
EFMD_LOG_MINFREE, /* insufficient min fs space to append event to log */
EFMD_LOG_COMMIT, /* failed to commit event to log */
EFMD_LOG_INVAL, /* invalid log header information */
EFMD_LOG_VERSION, /* invalid log version information */
EFMD_LOG_UNPACK, /* failed to unpack data in log */
EFMD_LOG_REPLAY, /* failed to replay log content */
EFMD_LOG_UPDATE, /* failed to update log toc */
EFMD_LOG_ROTATE, /* failed to rotate log file */
EFMD_LOG_ROTBUSY, /* failed to rotate log file due to pending events */
EFMD_ASRU_NODIR, /* failed to open asru cache directory */
EFMD_ASRU_EVENT, /* failed to process asru event log */
EFMD_ASRU_FMRI, /* failed to convert asru fmri to string */
EFMD_ASRU_NOENT, /* failed to locate specified asru entry */
EFMD_ASRU_UNLINK, /* failed to delete asru cache entry */
EFMD_ASRU_DUP, /* asru log is a duplicate of an existing asru */
EFMD_FMRI_SCHEME, /* fmri scheme module is missing or failed to load */
EFMD_FMRI_OP, /* fmri scheme module operation failed */
EFMD_FMRI_INVAL, /* fmri nvlist is missing required element */
EFMD_FMRI_NOTSUP, /* fmri scheme module does not support operation */
EFMD_VER_OLD, /* plug-in is compiled using an obsolete fmd API */
EFMD_VER_NEW, /* plug-in is compiled using a newer fmd API */
EFMD_HDL_INIT, /* client handle wasn't initialized by _fmd_init */
EFMD_HDL_INFO, /* client info is missing required information */
EFMD_HDL_PROP, /* client info includes invalid property definition */
EFMD_HDL_NOTREG, /* client handle has never been registered */
EFMD_HDL_REG, /* client handle has already been registered */
EFMD_HDL_TID, /* client handle must be registered by owner */
EFMD_HDL_INVAL, /* client handle is corrupt or not owned by caller */
EFMD_HDL_ABORT, /* client requested that module execution abort */
EFMD_HDL_NOMEM, /* client memory limit exceeded */
EFMD_PROP_TYPE, /* property accessed using incompatible type */
EFMD_PROP_DEFN, /* property is not defined */
EFMD_STAT_FLAGS, /* invalid flags passed to fmd_stat_* function */
EFMD_STAT_TYPE, /* invalid operation for statistic type */
EFMD_STAT_BADTYPE, /* invalid type for statistic */
EFMD_STAT_BADNAME, /* invalid name for statistic */
EFMD_STAT_DUPNAME, /* statistic name is already defined in collection */
EFMD_STAT_NOMEM, /* failed to allocate memory for statistics snapshot */
EFMD_CASE_OWNER, /* case can only be manipulated or closed by owner */
EFMD_CASE_STATE, /* case is not in appropriate state for operation */
EFMD_CASE_EVENT, /* case operation failed due to invalid event */
EFMD_CASE_INVAL, /* case uuid does not match any known case */
EFMD_BUF_INVAL, /* buffer specification uses invalid name or size */
EFMD_BUF_LIMIT, /* client exceeded limit on total buffer space */
EFMD_BUF_NOENT, /* no such buffer is currently defined by client */
EFMD_BUF_OFLOW, /* write would overflow the size of this buffer */
EFMD_BUF_EXISTS, /* buffer with the specified name already exists */
EFMD_SERD_NAME, /* no serd engine with the specified name exists */
EFMD_SERD_EXISTS, /* serd engine with the specified name already exists */
EFMD_THR_CREATE, /* failed to create auxiliary module thread */
EFMD_THR_LIMIT, /* limit on module auxiliary threads exceeded */
EFMD_THR_INVAL, /* invalid thread id specified for thread call */
EFMD_THR_JOIN, /* failed to join with auxiliary thread */
EFMD_TIMER_INVAL, /* invalid time delta or id specified for timer call */
EFMD_TIMER_LIMIT, /* client exceeded limit on number of pending timers */
EFMD_CKPT_NOMEM, /* failed to allocate checkpoint buffer */
EFMD_CKPT_MKDIR, /* failed to create checkpoint directory */
EFMD_CKPT_CREATE, /* failed to create checkpoint file */
EFMD_CKPT_COMMIT, /* failed to commit checkpoint file */
EFMD_CKPT_DELETE, /* failed to delete checkpoint file */
EFMD_CKPT_OPEN, /* failed to open checkpoint file */
EFMD_CKPT_SHORT, /* checkpoint file has been truncated or corrupted */
EFMD_CKPT_INVAL, /* checkpoint file has invalid header or content */
EFMD_CKPT_RESTORE, /* failed to restore checkpoint file */
EFMD_RPC_REG, /* failed to register rpc service */
EFMD_RPC_BOUND, /* rpc program/version is already bound */
EFMD_NVL_INVAL, /* invalid nvlist function argument */
EFMD_CTL_INVAL, /* invalid fault manager control event */
EFMD_END /* end of custom errno list (to ease auto-merge) */
} fmd_errno_t;
extern const char *fmd_errclass(int);
extern const char *fmd_strerror(int);
extern int fmd_set_errno(int);
#ifdef __cplusplus
}
#endif
#endif /* _FMD_ERROR_H */
|