/* * 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 (c) 1988 AT&T */ /* All Rights Reserved */ /* * Copyright 1996-2003 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _FMTMSG_H #define _FMTMSG_H #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.3 */ #include #ifdef __cplusplus extern "C" { #endif /* * fmtmsg.h * * The header file contains the definitions needed * to use the fmtmsg() function. This function writes messages * in a standard format to the standard error stream (stderr) * and to the system console. */ /* * Define the value "NULL" if it hasn't been defined already. * NULL breaks namespace so we define _NULL */ #if defined(_LP64) #define _NULL 0L #else #define _NULL 0 #endif #if !defined(_XPG4_2) || defined(__EXTENSIONS__) #ifndef NULL #define NULL _NULL #endif #endif /* !defined(_XPG4_2) || defined(__EXTENSIONS__) */ /* * Constraint definitions: * MM_MXLABELLN Maximum size of a "label" in a message * MM_MXTAGLN Maximum size of a "tag" in a message * MM_MXTXTLN Maximum size of a text string * MM_MXACTLN Maximum size of an action string */ #define MM_MXLABELLN 25 #define MM_MXTAGLN 32 #define MM_MXTXTLN 512 #define MM_MXACTLN 512 /* * Environment variable names used by fmtmsg(): * MSGVERB Tells fmtmsg() which components it is to write * to the standard error stream */ #if !defined(_XPG4_2) || defined(__EXTENSIONS__) #define MSGVERB "MSGVERB" #endif /* !defined(_XPG4_2) || defined(__EXTENSIONS__) */ /* * Classification information * - Definition of classifications * - Definition of recoverability * - Definition of source classifications */ /* * Definition of the "null" classification * MM_NULL Indicates that the classification has been omitted */ #define MM_NULL 0L /* * Definitions of type classifications: * MM_HARD Hardware * MM_SOFT Software * MM_FIRM Firmware */ #define MM_HARD 0x00000001L #define MM_SOFT 0x00000002L #define MM_FIRM 0x00000004L /* * Definitions of recoverability subclassification * MM_RECOVER Recoverable * MM_NRECOV Non-recoverable */ #define MM_RECOVER 0x00000100L #define MM_NRECOV 0x00000200L /* * Definitions of source subclassification * MM_APPL Application * MM_UTIL Utility * MM_OPSYS Kernel */ #define MM_APPL 0x00000008L #define MM_UTIL 0x00000010L #define MM_OPSYS 0x00000020L /* * Definitions for the action to take with the message: * MM_PRINT Write to the standard error stream * MM_CONSOLE Treat the message as a console message */ #define MM_PRINT 0x00000040L #define MM_CONSOLE 0x00000080L /* * Constants for severity values * * SEV_LEVEL Names the env variable that defines severities * * MM_NOSEV Message has no severity * MM_HALT Message describes a severe error condition * MM_ERROR Message describes an error condition * MM_WARNING Message tells of probable error condition * MM_INFO Message informs, not in error */ #if !defined(_XPG4_2) || defined(__EXTENSIONS__) #define SEV_LEVEL "SEV_LEVEL" #endif /* !defined(_XPG4_2) || defined(__EXTENSIONS__) */ #define MM_NOSEV 0 #define MM_HALT 1 #define MM_ERROR 2 #define MM_WARNING 3 #define MM_INFO 4 /* * Null values for message components * MM_NULLLBL Null value for the label-component * MM_NULLSEV Null value for the severity-component * MM_NULLMC Null value for the classification-component * MM_NULLTXT Null value for the text-component * MM_NULLACT Null value for the action-component * MM_NULLTAG Null value for the tag-component */ #define MM_NULLLBL ((char *)_NULL) #define MM_NULLSEV MM_NOSEV #define MM_NULLMC MM_NULL #define MM_NULLTXT ((char *)_NULL) #define MM_NULLACT ((char *)_NULL) #define MM_NULLTAG ((char *)_NULL) /* * Values returned by fmtmsg() * * MM_NOTOK None of the requested messages were generated * MM_NOMSG No message was written to stderr * MM_NOCON No console message was generated */ #define MM_NOTOK -1 #define MM_OK 0x00 #define MM_NOMSG 0x01 #define MM_NOCON 0x04 /* Function definition */ #if !defined(_XPG4_2) || defined(__EXTENSIONS__) #if defined(__STDC__) int addseverity(int, const char *); #else /* __STDC__ */ int addseverity(); #endif /* __STDC__ */ #endif /* !defined(_XPG4_2) || defined(__EXTENSIONS__) */ #if defined(__STDC__) int fmtmsg(long, const char *, int, const char *, const char *, const char *); #else /* __STDC__ */ int fmtmsg(); #endif /* __STDC__ */ #ifdef __cplusplus } #endif #endif /* _FMTMSG_H */