/*********************************************************************** * * * This software is part of the ast package * * Copyright (c) 1985-2011 AT&T Intellectual Property * * and is licensed under the * * Eclipse Public License, Version 1.0 * * by AT&T Intellectual Property * * * * A copy of the License is available at * * http://www.eclipse.org/org/documents/epl-v10.html * * (with md5 checksum b35adb5213ca9657e911e9befb180842) * * * * Information and Software Systems Research * * AT&T Research * * Florham Park NJ * * * * Glenn Fowler * * David Korn * * Phong Vo * * * ***********************************************************************/ #pragma prototyped /* * fmtmsg interface definitions */ #ifndef _FMTMSG_H #define _FMTMSG_H #define MM_VERB_ENV "MSGVERB" /* keyword filter env var */ #define MM_SEVERITY_ENV "SEV_LEVEL" /* alternate severity env var */ /* max component length */ #define MM_LABEL_1_MAX 10 /* label field 1 length */ #define MM_LABEL_2_MAX 14 /* label field 2 length */ /* classification type */ #define MM_HARD 0x00000001L /* hardware */ #define MM_SOFT 0x00000002L /* software */ #define MM_FIRM 0x00000004L /* firmware */ /* classification source */ #define MM_APPL 0x00000010L /* application */ #define MM_UTIL 0x00000020L /* utility */ #define MM_OPSYS 0x00000040L /* kernel */ /* classification display */ #define MM_PRINT 0x00000100L /* stderr */ #define MM_CONSOLE 0x00000200L /* console */ /* classification status */ #define MM_RECOVER 0x00001000L /* recoverable */ #define MM_NRECOV 0x00002000L /* non-recoverable */ /* severity */ #define MM_NOSEV 0x0 /* no severity */ #define MM_HALT 0x1 /* severe fault */ #define MM_ERROR 0x2 /* fault */ #define MM_WARNING 0x4 /* could be a problem */ #define MM_INFO 0x8 /* not an error (noise?) */ /* fmtmsg return value */ #define MM_OK 0 /* succeeded */ #define MM_NOTOK 3 /* failed completely */ #define MM_NOMSG 1 /* stderr message failed */ #define MM_NOCON 2 /* console message failed */ /* null argument values -- 0 just doesn't get any respect */ #define MM_NULLLBL (char*)0 /* label */ #define MM_NULLSEV 0 /* severity */ #define MM_NULLMC 0L /* class */ #define MM_NULLTXT (char*)0 /* text */ #define MM_NULLACT (char*)0 /* action */ #define MM_NULLTAG (char*)0 /* tag */ #ifdef MM_TABLES /* encoding support */ typedef struct { const char* name; const char* display; unsigned int value; } MM_table_t; #define mm_class _mm_class #define mm_severity _mm_severity() #define mm_verb _mm_verb #define MM_all 0xff #define MM_action 0x01 #define MM_class 0x02 #define MM_label 0x04 #define MM_severity 0x08 #define MM_source 0x10 #define MM_status 0x20 #define MM_tag 0x40 #define MM_text 0x80 #define MM_default (MM_action|MM_label|MM_severity|MM_tag|MM_text) #if _BLD_ast && defined(__EXPORT__) #define extern __EXPORT__ #endif #if !_BLD_ast && defined(__IMPORT__) #define extern extern __IMPORT__ #endif extern const MM_table_t mm_class[]; extern const MM_table_t mm_verb[]; #undef extern #if _BLD_ast && defined(__EXPORT__) #define extern __EXPORT__ #endif extern const MM_table_t* mm_severity; #undef extern #endif #if _BLD_ast && defined(__EXPORT__) #define extern __EXPORT__ #endif extern int fmtmsg(long, const char*, int, const char*, const char*, const char*); #undef extern #endif