1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22/* Copyright (c) 1988 AT&T */ 23/* All Rights Reserved */ 24 25 26/* 27 * Copyright 1996-2003 Sun Microsystems, Inc. All rights reserved. 28 * Use is subject to license terms. 29 */ 30 31#ifndef _FMTMSG_H 32#define _FMTMSG_H 33 34#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.3 */ 35 36#include <sys/feature_tests.h> 37 38#ifdef __cplusplus 39extern "C" { 40#endif 41 42/* 43 * fmtmsg.h 44 * 45 * The <fmtmsg.h> header file contains the definitions needed 46 * to use the fmtmsg() function. This function writes messages 47 * in a standard format to the standard error stream (stderr) 48 * and to the system console. 49 */ 50 51/* 52 * Define the value "NULL" if it hasn't been defined already. 53 * NULL breaks namespace so we define _NULL 54 */ 55#if defined(_LP64) 56#define _NULL 0L 57#else 58#define _NULL 0 59#endif 60 61#if !defined(_XPG4_2) || defined(__EXTENSIONS__) 62#ifndef NULL 63#define NULL _NULL 64#endif 65#endif /* !defined(_XPG4_2) || defined(__EXTENSIONS__) */ 66 67 68/* 69 * Constraint definitions: 70 * MM_MXLABELLN Maximum size of a "label" in a message 71 * MM_MXTAGLN Maximum size of a "tag" in a message 72 * MM_MXTXTLN Maximum size of a text string 73 * MM_MXACTLN Maximum size of an action string 74 */ 75 76#define MM_MXLABELLN 25 77#define MM_MXTAGLN 32 78#define MM_MXTXTLN 512 79#define MM_MXACTLN 512 80 81/* 82 * Environment variable names used by fmtmsg(): 83 * MSGVERB Tells fmtmsg() which components it is to write 84 * to the standard error stream 85 */ 86 87#if !defined(_XPG4_2) || defined(__EXTENSIONS__) 88#define MSGVERB "MSGVERB" 89#endif /* !defined(_XPG4_2) || defined(__EXTENSIONS__) */ 90 91/* 92 * Classification information 93 * - Definition of classifications 94 * - Definition of recoverability 95 * - Definition of source classifications 96 */ 97 98/* 99 * Definition of the "null" classification 100 * MM_NULL Indicates that the classification has been omitted 101 */ 102 103#define MM_NULL 0L 104 105/* 106 * Definitions of type classifications: 107 * MM_HARD Hardware 108 * MM_SOFT Software 109 * MM_FIRM Firmware 110 */ 111 112#define MM_HARD 0x00000001L 113#define MM_SOFT 0x00000002L 114#define MM_FIRM 0x00000004L 115 116/* 117 * Definitions of recoverability subclassification 118 * MM_RECOVER Recoverable 119 * MM_NRECOV Non-recoverable 120 */ 121 122#define MM_RECOVER 0x00000100L 123#define MM_NRECOV 0x00000200L 124 125/* 126 * Definitions of source subclassification 127 * MM_APPL Application 128 * MM_UTIL Utility 129 * MM_OPSYS Kernel 130 */ 131 132#define MM_APPL 0x00000008L 133#define MM_UTIL 0x00000010L 134#define MM_OPSYS 0x00000020L 135 136/* 137 * Definitions for the action to take with the message: 138 * MM_PRINT Write to the standard error stream 139 * MM_CONSOLE Treat the message as a console message 140 */ 141 142#define MM_PRINT 0x00000040L 143#define MM_CONSOLE 0x00000080L 144 145/* 146 * Constants for severity values 147 * 148 * SEV_LEVEL Names the env variable that defines severities 149 * 150 * MM_NOSEV Message has no severity 151 * MM_HALT Message describes a severe error condition 152 * MM_ERROR Message describes an error condition 153 * MM_WARNING Message tells of probable error condition 154 * MM_INFO Message informs, not in error 155 */ 156 157#if !defined(_XPG4_2) || defined(__EXTENSIONS__) 158#define SEV_LEVEL "SEV_LEVEL" 159#endif /* !defined(_XPG4_2) || defined(__EXTENSIONS__) */ 160 161#define MM_NOSEV 0 162#define MM_HALT 1 163#define MM_ERROR 2 164#define MM_WARNING 3 165#define MM_INFO 4 166 167/* 168 * Null values for message components 169 * MM_NULLLBL Null value for the label-component 170 * MM_NULLSEV Null value for the severity-component 171 * MM_NULLMC Null value for the classification-component 172 * MM_NULLTXT Null value for the text-component 173 * MM_NULLACT Null value for the action-component 174 * MM_NULLTAG Null value for the tag-component 175 */ 176 177#define MM_NULLLBL ((char *)_NULL) 178#define MM_NULLSEV MM_NOSEV 179#define MM_NULLMC MM_NULL 180#define MM_NULLTXT ((char *)_NULL) 181#define MM_NULLACT ((char *)_NULL) 182#define MM_NULLTAG ((char *)_NULL) 183 184/* 185 * Values returned by fmtmsg() 186 * 187 * MM_NOTOK None of the requested messages were generated 188 * MM_NOMSG No message was written to stderr 189 * MM_NOCON No console message was generated 190 */ 191 192#define MM_NOTOK -1 193#define MM_OK 0x00 194#define MM_NOMSG 0x01 195#define MM_NOCON 0x04 196 197/* Function definition */ 198 199#if !defined(_XPG4_2) || defined(__EXTENSIONS__) 200#if defined(__STDC__) 201int addseverity(int, const char *); 202#else /* __STDC__ */ 203int addseverity(); 204#endif /* __STDC__ */ 205#endif /* !defined(_XPG4_2) || defined(__EXTENSIONS__) */ 206 207#if defined(__STDC__) 208int fmtmsg(long, const char *, int, const char *, const char *, 209 const char *); 210#else /* __STDC__ */ 211int fmtmsg(); 212#endif /* __STDC__ */ 213 214#ifdef __cplusplus 215} 216#endif 217 218#endif /* _FMTMSG_H */ 219