2N/A#!/bin/sh
2N/A#
2N/A# CDDL HEADER START
2N/A#
2N/A# The contents of this file are subject to the terms of the
2N/A# Common Development and Distribution License (the "License").
2N/A# You may not use this file except in compliance with the License.
2N/A#
2N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2N/A# or http://www.opensolaris.org/os/licensing.
2N/A# See the License for the specific language governing permissions
2N/A# and limitations under the License.
2N/A#
2N/A# When distributing Covered Code, include this CDDL HEADER in each
2N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2N/A# If applicable, add the following below this CDDL HEADER, with the
2N/A# fields enclosed by brackets "[]" replaced with your own identifying
2N/A# information: Portions Copyright [yyyy] [name of copyright owner]
2N/A#
2N/A# CDDL HEADER END
2N/A#
2N/A
2N/A#
2N/A# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
2N/A# Use is subject to license terms.
2N/A#
2N/A#pragma ident "%Z%%M% %I% %E% SMI"
2N/A
2N/Aecho "/*
2N/A * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
2N/A * Use is subject to license terms.
2N/A */
2N/A
2N/A#pragma ident\t\"%Z%%M%\t%I%\t%E% SMI\"
2N/A
2N/A#include <strings.h>
2N/A#include <scsi/libses.h>
2N/A
2N/Astatic const struct {
2N/A\tchar *se_name;\t\t/* error name */
2N/A\tchar *se_msg;\t\t/* error message */
2N/A} _ses_errstr[] = {"
2N/A
2N/Apattern='^ \(ESES_[A-Z0-9_]*\),*'
2N/Areplace=' { "\1",'
2N/Aopen=' \/\* '
2N/Aopenrepl='"'
2N/Aclose=' \*\/$'
2N/Acloserepl='" },'
2N/A
2N/A( sed -n "s/$pattern/$replace/p" | sed -n "s/$open/$openrepl/p" |
2N/A sed -n "s/$close/$closerepl/p" ) || exit 1
2N/A
2N/Aecho "\
2N/A};\n\
2N/A\n\
2N/Astatic int _ses_nerrno = sizeof (_ses_errstr) / sizeof (_ses_errstr[0]);\n\
2N/A\n\
2N/Aconst char *
2N/Ases_strerror(ses_errno_t err)
2N/A{
2N/A return (err < 0 || err >= _ses_nerrno ? \"unknown error\" :
2N/A _ses_errstr[err].se_msg);
2N/A}
2N/A
2N/Aconst char *
2N/Ases_errname(ses_errno_t err)
2N/A{
2N/A return (err < 0 || err >= _ses_nerrno ? NULL :
2N/A _ses_errstr[err].se_name);
2N/A}
2N/A
2N/Ases_errno_t
2N/Ases_errcode(const char *name)
2N/A{
2N/A ses_errno_t err;
2N/A
2N/A for (err = 0; err < _ses_nerrno; err++) {
2N/A if (strcmp(name, _ses_errstr[err].se_name) == 0)
2N/A return (err);
2N/A }
2N/A
2N/A return (ESES_UNKNOWN);
2N/A}"
2N/A
2N/Aexit 0