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 39 extern "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__) 201 int addseverity(int, const char *); 202 #else /* __STDC__ */ 203 int addseverity(); 204 #endif /* __STDC__ */ 205 #endif /* !defined(_XPG4_2) || defined(__EXTENSIONS__) */ 206 207 #if defined(__STDC__) 208 int fmtmsg(long, const char *, int, const char *, const char *, 209 const char *); 210 #else /* __STDC__ */ 211 int fmtmsg(); 212 #endif /* __STDC__ */ 213 214 #ifdef __cplusplus 215 } 216 #endif 217 218 #endif /* _FMTMSG_H */