dmake: do not set MAKEFLAGS=k
[unleashed/tickless.git] / usr / src / cmd / fm / fmd / common / mkerror.sh
blob00f3d62259ef675f4b6d622ff3856710ec6cee33
1 #!/bin/sh
3 # CDDL HEADER START
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License, Version 1.0 only
7 # (the "License"). You may not use this file except in compliance
8 # with the License.
10 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11 # or http://www.opensolaris.org/os/licensing.
12 # See the License for the specific language governing permissions
13 # and limitations under the License.
15 # When distributing Covered Code, include this CDDL HEADER in each
16 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17 # If applicable, add the following below this CDDL HEADER, with the
18 # fields enclosed by brackets "[]" replaced with your own identifying
19 # information: Portions Copyright [yyyy] [name of copyright owner]
21 # CDDL HEADER END
24 # Copyright 2005 Sun Microsystems, Inc. All rights reserved.
25 # Use is subject to license terms.
27 #ident "%Z%%M% %I% %E% SMI"
29 #pragma ident "%Z%%M% %I% %E% SMI"
31 input="`cat`"
32 [ -z "$input" ] && exit 1
34 echo "\
35 /*\n\
36 * Copyright 2005 Sun Microsystems, Inc. All rights reserved.\n\
37 * Use is subject to license terms.\n\
38 */\n\
39 \n\
40 #pragma ident\t\"%Z%%M%\t%I%\t%E% SMI\"\n\
41 \n\
42 #include <strings.h>
43 #include <fmd_error.h>
44 \n\
45 static const char *const _fmd_ereports[] = {"
47 pattern='^[ ]*EFMD_\([A-Z0-9_]*\).*,*'
48 replace=' "ereport.fm.fmd.\1",'
50 echo "$input" | sed -n "s/$pattern/$replace/p" | tr '[A-Z]' '[a-z]' || exit 1
52 echo "\
53 };\n\
54 \n\
55 static const char *const _fmd_errstrs[] = {"
57 pattern='^[ ]*EFMD_[A-Z0-9_]*.*\* \(.*\) \*.*'
58 replace=' "\1",'
60 echo "$input" | sed -n "s/$pattern/$replace/p" || exit 1
62 echo "\
63 };\n\
64 \n\
65 static const int _fmd_nereports =\n\
66 sizeof (_fmd_ereports) / sizeof (_fmd_ereports[0]);\n\
67 \n\
68 static const int _fmd_nerrstrs =\n\
69 sizeof (_fmd_errstrs) / sizeof (_fmd_errstrs[0]);\n\
70 \n\
71 const char *
72 fmd_errclass(int err)
74 const char *c;
76 if (err >= EFMD_UNKNOWN && (err - EFMD_UNKNOWN) < _fmd_nereports)
77 c = _fmd_ereports[err - EFMD_UNKNOWN];
78 else
79 c = _fmd_ereports[0];
81 return (c);
84 const char *
85 fmd_strerror(int err)
87 const char *s;
89 if (err >= EFMD_UNKNOWN && (err - EFMD_UNKNOWN) < _fmd_nerrstrs)
90 s = _fmd_errstrs[err - EFMD_UNKNOWN];
91 else if (err < 0 || (s = strerror(err)) == NULL)
92 s = _fmd_errstrs[0];
94 return (s);
97 int
98 fmd_set_errno(int err)
100 errno = err;
101 return (-1);
104 exit 0