fmtmsg.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* 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 <sys/feature_tests.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* fmtmsg.h
*
* The <fmtmsg.h> 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 */