/* * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. */ #pragma ident "@(#)mkerrno.sh 1.2 08/07/31 SMI" #include #include static const struct { char *name; /* error name */ char *msg; /* error message */ } _smp_errstr[] = { { "ESMP_NONE", "no error" }, { "ESMP_NOMEM", "no memory" }, { "ESMP_ZERO_LENGTH","zero-length allocation requested" }, { "ESMP_VERSION", "library version mismatch" }, { "ESMP_BADTARGET", "invalid target specification" }, { "ESMP_BADFUNC", "invalid SMP function" }, { "ESMP_BADENGINE", "engine library corrupt" }, { "ESMP_NOENGINE", "engine library not found" }, { "ESMP_ENGINE_INIT","engine initialization failed" }, { "ESMP_ENGINE_VER","engine version mismatch" }, { "ESMP_ENGINE_BADPATH","engine path contains no usable components" }, { "ESMP_BADLENGTH", "buffer length overflow or size error" }, { "ESMP_NEEDBUF", "missing required buffer" }, { "ESMP_PLUGIN", "no plugins found" }, { "ESMP_IO", "I/O operation failed" }, { "ESMP_SYS", "system call failed" }, { "ESMP_PERM", "insufficient permissions" }, { "ESMP_RANGE", "parameter outside valid range" }, { "ESMP_NOTSUP", "operation not supported" }, { "ESMP_UNKNOWN", "error of unknown type" }, { "ESMP_REPGEN_FAILED","initial report general command failed" }, { "ESMP_MAX", "maximum libsmp errno value" }, }; static int _smp_nerrno = sizeof (_smp_errstr) / sizeof (_smp_errstr[0]); const char * smp_strerror(smp_errno_t err) { return (err < 0 || err >= _smp_nerrno ? "unknown error" : _smp_errstr[err].msg); } const char * smp_errname(smp_errno_t err) { return (err < 0 || err >= _smp_nerrno ? NULL : _smp_errstr[err].name); } smp_errno_t smp_errcode(const char *name) { smp_errno_t err; for (err = 0; err < _smp_nerrno; err++) { if (strcmp(name, _smp_errstr[err].name) == 0) return (err); } return (ESMP_UNKNOWN); }