1#!/bin/sh 2# 3# CDDL HEADER START 4# 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. 9# 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. 14# 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] 20# 21# CDDL HEADER END 22# 23# 24# Copyright 2005 Sun Microsystems, Inc. All rights reserved. 25# Use is subject to license terms. 26# 27#ident "%Z%%M% %I% %E% SMI" 28 29#pragma ident "%Z%%M% %I% %E% SMI" 30 31input="`cat`" 32[ -z "$input" ] && exit 1 33 34echo "\ 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\ 45static const char *const _fmd_ereports[] = {" 46 47pattern='^[ ]*EFMD_\([A-Z0-9_]*\).*,*' 48replace=' "ereport.fm.fmd.\1",' 49 50echo "$input" | sed -n "s/$pattern/$replace/p" | tr '[A-Z]' '[a-z]' || exit 1 51 52echo "\ 53};\n\ 54\n\ 55static const char *const _fmd_errstrs[] = {" 56 57pattern='^[ ]*EFMD_[A-Z0-9_]*.*\* \(.*\) \*.*' 58replace=' "\1",' 59 60echo "$input" | sed -n "s/$pattern/$replace/p" || exit 1 61 62echo "\ 63};\n\ 64\n\ 65static const int _fmd_nereports =\n\ 66 sizeof (_fmd_ereports) / sizeof (_fmd_ereports[0]);\n\ 67\n\ 68static const int _fmd_nerrstrs =\n\ 69 sizeof (_fmd_errstrs) / sizeof (_fmd_errstrs[0]);\n\ 70\n\ 71const char * 72fmd_errclass(int err) 73{ 74 const char *c; 75 76 if (err >= EFMD_UNKNOWN && (err - EFMD_UNKNOWN) < _fmd_nereports) 77 c = _fmd_ereports[err - EFMD_UNKNOWN]; 78 else 79 c = _fmd_ereports[0]; 80 81 return (c); 82} 83 84const char * 85fmd_strerror(int err) 86{ 87 const char *s; 88 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]; 93 94 return (s); 95} 96 97int 98fmd_set_errno(int err) 99{ 100 errno = err; 101 return (-1); 102}" 103 104exit 0 105